VyOS の QoS / DSCP は、回線を速くするための魔法の設定ではありません。混雑時に、DNS、NTP、ルーティング、VPN、監視などの制御通信をどう扱うかを決めるための設計です。
vyos qos や vyos dscp で調べる時に重要なのは、DSCP 値そのものより、どの通信に印を付け、どのインターフェイスで、どの policy によって扱うかです。印を付ける場所と、実際に queue を適用する場所を分けて考えます。
この記事では、VyOS 1.5 系で読むことを前提に、DNS / NTP などの制御通信を例に、DSCP marking、QoS policy、適用インターフェイス、確認方法を確認します。細かなコマンド差分は利用している ISO と構成で確認してください。
書籍
QoS、ルーティング、トンネル、ネットワーク設計の基礎を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
この記事の結論
- 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
saveQoS 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
saveQoS は設定を入れれば常に良くなるものではありません。どの通信を優先するか、通常時と混雑時でどのように効くかを確認する必要があります。
インターフェイスへ適用する
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 の分類、インターフェイスへの適用、確認方法を分けて考えることです。設定を増やす前に、どの通信をなぜ優先したいのかを説明できる状態にしておきます。

