QoS

QoS(CBQ)による帯域制御の設定例。

このタスクについて

拠点間VPN終端、リモートアクセスVPN、およびインターネットゲートウェイを兼ねる装置において、目的ごとに送信帯域を割り振り、また、特定の通信の送出優先度を高くする設定例を紹介します。

始める前に

右図のようなネットワーク環境で左図のよう帯域制御を行うものとします。

  • GE0インタフェースをWAN側とします。(インターネット接続方式がIPoE(DHCP/RA)やPPPoEの場合を含みます)
  • 実効帯域として500Mbps利用可能であるものとします。
  • QoS以外のネットワーク設定は完了しているものとします。
1. トラフィックごとの割り当てと目的
制御するトラフィック 割り当て 目的
リモートアクセス(L2TP/IPsec) 120Mbps
  • 合わせて250Mbps内で余剰帯域を相互に借り受ける。これを超える帯域は使用しない
  • リモートアクセスVPNはリモートデスクトップの利用を想定し送出優先度を他より高くする
  • 混雑時のIKEセッション確立性を確保する
拠点間VPN(IPsec) 120Mbps
IKE 10Mbps
Webサイトやファイルダウンロードサービス 150Mbps
  • 他のクラスに余剰帯域があれば最大限(500Mbpsまで)利用可能とする
その他のインターネットアクセス 100Mbps
  • クライアント端末のインターネットアクセス等を含む上記以外のトラフィックは100Mbpsを上限とする
2. クラスの設計と振り分け条件
定義するクラス 親クラス 割り当て 借り受け 他の設定 クラス分けフィルタの条件
class0 root 500 無効化 なし(子クラスを持つクラスには直接振り分けない)
class1 class0 250 無効化 なし(子クラスを持つクラスには直接振り分けない)
class4 class1 120 有効化 優先的に送出 送信先がリモートアクセスクライアントのネットワークセグメント
class5 class1 120 有効化 送信先が対向拠点のネットワークセグメント
class6 class1 10 有効化 自身が送信元、かつ、送信元ポートが500/UDP(IKE)
class2 class0 150 有効化 送信元がWebサーバ等のネットワークセグメント
class3 class0 100 無効化 デフォルトクラス なし(他の条件に一致しない)

手順

設計に基づき次のコンフィグを追加します。
qos.service:                  enable
qos.interface.0.interface:     ge0
qos.interface.0.default-class: class3

qos.interface.0.class.class0.label:     "TOP"
qos.interface.0.class.class0.parent:    root
qos.interface.0.class.class0.bandwidth: 500
qos.interface.0.class.class0.borrow:    disable

qos.interface.0.class.class1.label:     "VPN"
qos.interface.0.class.class1.parent:    class0
qos.interface.0.class.class1.bandwidth: 250
qos.interface.0.class.class1.borrow:    disable

qos.interface.0.class.class2.label:     "Service"
qos.interface.0.class.class2.parent:    class0
qos.interface.0.class.class2.bandwidth: 150

qos.interface.0.class.class3.label:     "InternetETC"
qos.interface.0.class.class3.parent:    class0
qos.interface.0.class.class3.bandwidth: 100
qos.interface.0.class.class3.borrow:    disable

qos.interface.0.class.class4.label:     "RemoteAccess"
qos.interface.0.class.class4.parent:    class1
qos.interface.0.class.class4.bandwidth: 120
qos.interface.0.class.class4.priority:  2

qos.interface.0.class.class5.label:     "IPsecVPN"
qos.interface.0.class.class5.parent:    class1
qos.interface.0.class.class5.bandwidth: 120

qos.interface.0.class.class6.label:     "IKE"
qos.interface.0.class.class6.parent:    class1
qos.interface.0.class.class6.bandwidth: 10

qos.filter.ipv4.100.label:               "RAS_address_pool"
qos.filter.ipv4.100.marking.qos-class:   class4
qos.filter.ipv4.100.interface:           any
qos.filter.ipv4.100.direction:           out
qos.filter.ipv4.100.destination.address: 192.168.0.0/24

qos.filter.ipv4.200.label:               "IPsec_edge"
qos.filter.ipv4.200.marking.qos-class:   class5
qos.filter.ipv4.200.interface:           any
qos.filter.ipv4.200.direction:           out
qos.filter.ipv4.200.destination.address: 172.0.0.0/12

qos.filter.ipv4.300.label:               "IKE"
qos.filter.ipv4.300.marking.qos-class:   class6
qos.filter.ipv4.300.interface:           any
qos.filter.ipv4.300.direction:           out
qos.filter.ipv4.300.source.address:      self
qos.filter.ipv4.300.destination.port:    500
qos.filter.ipv4.300.protocol:            udp

qos.filter.ipv4.400.label:               "DMZ"
qos.filter.ipv4.400.marking.qos-class:   class2
qos.filter.ipv4.400.interface:           any
qos.filter.ipv4.400.direction:           out
qos.filter.ipv4.400.source.address:      203.0.113.0/29