手当たり次第に書くんだ

飽きっぽいのは本能

VyOS QoS / DSCP 設定 – 制御通信を混雑時に守る設計

VyOS の QoS / DSCP は、回線を速くするための魔法の設定ではありません。混雑時に、DNS、NTP、ルーティング、VPN、監視などの制御通信をどう扱うかを決めるための設計です。

vyos qosvyos dscp で調べる時に重要なのは、DSCP 値そのものより、どの通信に印を付け、どのインターフェイスで、どの policy によって扱うかです。印を付ける場所と、実際に queue を適用する場所を分けて考えます。

この記事では、VyOS 1.5 系で読むことを前提に、DNS / NTP などの制御通信を例に、DSCP marking、QoS policy、適用インターフェイス、確認方法を確認します。細かなコマンド差分は利用している ISO と構成で確認してください。

この記事の結論

  • QoS は帯域を増やす機能ではなく、混雑時の扱いを決める仕組みである
  • DSCP は通信へ印を付けるための値であり、それだけでは優先制御にならない
  • DSCP marking、QoS policy、interface への適用を分けて確認する
  • DNS、NTP、VPN、routing protocol、監視などの制御通信を優先候補として考える
  • QoS は効いているかが見えにくいため、設定、interface、traffic counter を分けて見る

QoS は帯域を増やす機能ではない

QoS は、回線帯域そのものを増やす機能ではありません。混雑時に、どの通信を優先し、どの通信を通常扱いにするかを決めるための仕組みです。

誤解実際の考え方
QoS を入れると速くなる帯域は増えない。混雑時の扱いが変わる
DSCP を付ければ優先されるDSCP は印であり、QoS policy が見て初めて意味を持つ
全部を高優先にすればよい優先する通信を増やしすぎると優先の意味がなくなる
設定すれば常に効く適用インターフェイスと通信方向が合わないと効かない

優先したい通信を決める

最初に、どの通信をなぜ優先したいのかを決めます。DNS や NTP は小さな通信ですが、障害時の切り分けやサービス品質に影響します。VPN やルーティング制御も、混雑時に落ちると影響が大きくなります。

通信優先を考える理由注意点
DNS名前解決が遅いと利用者には全体が遅く見える上流 DNS と内部 DNS を分ける
NTP時刻差は証明書やログ調査に影響する過剰に優先する必要は少ない
Routing protocol経路制御の安定性に影響する隣接先と interface を限定する
VPN controlトンネル維持に関わるデータ通信と制御通信を分けて見る
Monitoring障害時に観測できる状態を守る監視が帯域を圧迫しないようにする

DSCP で制御通信に印を付ける

DSCP は IP ヘッダ内で通信の扱いを示すための値です。VyOS では Firewall の raw table などで、特定の通信に DSCP を設定できます。ここでは DNS と NTP に DSCP 10 を付ける例です。

configure
set firewall ipv4 prerouting raw rule 2000 action 'accept'
set firewall ipv4 prerouting raw rule 2000 destination port '53'
set firewall ipv4 prerouting raw rule 2000 protocol 'tcp_udp'
set firewall ipv4 prerouting raw rule 2000 set dscp '10'
set firewall ipv4 prerouting raw rule 2010 action 'accept'
set firewall ipv4 prerouting raw rule 2010 destination port '123'
set firewall ipv4 prerouting raw rule 2010 protocol 'udp'
set firewall ipv4 prerouting raw rule 2010 set dscp '10'
commit
save

ここでは例として DSCP 10 を使っています。値そのものより、どの通信にどの印を付けるかを環境内で一貫させることが重要です。

IPv6 側も同じ方針で扱う

デュアルスタック環境では、IPv4 側だけに DSCP を設定しても、IPv6 側の制御通信は別扱いになります。IPv6 でも同じ方針で設定を用意します。

configure
set firewall ipv6 prerouting raw rule 2000 action 'accept'
set firewall ipv6 prerouting raw rule 2000 destination port '53'
set firewall ipv6 prerouting raw rule 2000 protocol 'tcp_udp'
set firewall ipv6 prerouting raw rule 2000 set dscp '10'
set firewall ipv6 prerouting raw rule 2010 action 'accept'
set firewall ipv6 prerouting raw rule 2010 destination port '123'
set firewall ipv6 prerouting raw rule 2010 protocol 'udp'
set firewall ipv6 prerouting raw rule 2010 set dscp '10'
commit
save

QoS policy で扱いを決める

DSCP で印を付けた通信は、QoS policy 側で扱いを決めます。DSCP marking と queue policy は別の段階です。

configure
set qos traffic-match-group qos-af11 match af11 ip dscp '10'
set qos policy priority-queue qos class 3 match-group 'qos-af11'
set qos policy priority-queue qos class 3 queue-type 'fq-codel'
set qos policy priority-queue qos class 3 queue-limit '1000'
set qos policy priority-queue qos default queue-type 'fq-codel'
set qos policy priority-queue qos default queue-limit '1000'
commit
save

QoS は設定を入れれば常に良くなるものではありません。どの通信を優先するか、通常時と混雑時でどのように効くかを確認する必要があります。

インターフェイスへ適用する

QoS policy は定義しただけでは効果がありません。対象インターフェイスに適用します。egress で効かせるのか、トンネルの外側で効かせるのか、LAN 側で分類するのかを通信の流れに合わせます。

configure
set qos interface eth1 egress 'qos'
set qos interface tun1000 egress 'qos'
commit
save

どのインターフェイスに egress QoS を適用するかは、通信の流れによって変わります。トンネル、LAN、WAN のどこで優先制御するかを誤ると、期待した場所で効きません。

確認する

QoS は効いているかが見えにくい設定です。まず、どの通信に DSCP を付けているか、どの QoS policy が定義されているか、どのインターフェイスへ適用しているかを確認します。

show configuration commands | match 'qos'
show configuration commands | match 'set dscp'
show interfaces
show interfaces detail

よくあるつまずき

症状見る場所考え方
DSCP を付けたのに効かないQoS policy と interface 適用印と扱いは別段階である
IPv4 だけ効くIPv6 側の raw ruleデュアルスタックでは両方を見る
トンネル内で効かない適用する interface と方向外側と内側のどちらで制御するか決める
全部を優先にした分類設計優先対象を絞らないと意味が薄くなる
障害時に分からない設定、interface、ログ、監視確認コマンドを運用手順に入れる

まとめ

VyOS の QoS / DSCP は、通信を魔法のように速くするものではありません。DNS、NTP、ルーティング、VPN、監視などの制御通信をどう識別し、混雑時にどう扱うかを設計として表現するための仕組みです。

重要なのは、DSCP を付ける場所、QoS policy の分類、インターフェイスへの適用、確認方法を分けて考えることです。設定を増やす前に、どの通信をなぜ優先したいのかを説明できる状態にしておきます。

関連する記事
VyOS QoS / DSCP 設定 – 制御通信を混雑時に守る設計

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る