続々・VyOS 1.4 と PPPoE と MSS clamp の設定と - ..たれろぐ..

続々・VyOS 1.4 と PPPoE と MSS clamp の設定と

VyOS 1.1.7 (続・VyOS と PPPoE と MSS clamp の設定と - ..たれろぐ.. )から VyOS 1.4 へ更新したので PPPoE と MSS clamp の設定を見直した。

要点
  • outbound は公式設定(adjust-mss)で設定できるようになった
  • inbound は変わらず policy 設定が必要
環境
  • NTT Flet's PPPoE の MTU 1454, MSS 1414 環境
  • VyOS 1.4-epa2
  • 2024/4/7 時点
やりかた

VyOS 1.1.7 時代の設定では PPPoE インタフェースからの outbound で MSS 値を再設定するスクリプトを仕込んでいましたが、VyOS 1.2 で adjust-mss という公式コマンドができたのでそちらで設定します。(VyOS 1.4 公式doc)

set interfaces pppoe <interfacename> ip adjust-mss '1414'

これだけで outbound パケットには MSS 1414 が設定されます。簡単になりましたね^^。

もう一方の inboud パケットについては上の設定は考慮してくれないので、こちらは従来通り policy 設定で対応します。
以下設定を対象の PPPoE インタフェースに付けてやります。 policy とインタフェースの紐付け設定が移動しているので注意。

    route PPPOE-IN {
        interface "<interfacename>"
        rule 10 {
            protocol "tcp"
            set {
                tcp-mss "1414"
            }
            tcp {
                flags {
                    syn
                }
            }
        }
    }


以上の設定を入れて wget https://hatenadiary.org/ したときのハンドシェイク部のパケットキャプチャが次の通り。

  • LAN側
$ monitor traffic interface eth0 filter "net 54.199.90.60"
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
[A] IP 192.168.0.17.54082 > 54.199.90.60.443: Flags [S], seq 2836625661, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
[B] IP 54.199.90.60.443 > 192.168.0.17.54082: Flags [S.], seq 3661481965, ack 2836625662, win 62727, options [mss 1414,nop,nop,sackOK,nop,wscale 7], length 0
[C] IP 192.168.0.17.54082 > 54.199.90.60.443: Flags [.], ack 1, win 1027, length 0
  • PPPoE 側
$ monitor traffic interface pppoe0 filter "net 54.199.90.60"
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on pppoe0, link-type LINUX_SLL (Linux cooked v1), snapshot length 262144 bytes
[A] IP 124.99.76.45.54062 > 54.199.90.60.443: Flags [S], seq 2461816294, win 64240, options [mss 1414,nop,wscale 8,nop,nop,sackOK], length 0
[B] IP 54.199.90.60.443 > 124.99.76.45.54062: Flags [S.], seq 205872300, ack 2461816295, win 62727, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
[C] IP 124.99.76.45.54062 > 54.199.90.60.443: Flags [.], ack 1, win 1027, length 0

パケットの流れは LAN 側 [A] -> PPPoE 側 [A] -> はてな -> PPPoE 側 [B] -> LAN側 [B] の通り。

LAN 側 [A] と PPPoE 側 [A] の比較で、 outbound で MSS 1460 -> 1414 に制限されていること、 PPPoE 側 [B] と LAN 側 [B] の比較で inbound で MSS 1460 -> 1414 に制限されていることがわかります。

公式で MSS 制限に対応してくれたので無理矢理なことをしなくてすむようになり、設定が簡単になりました。
同時に inbound 側も制限かけてほしいところではありますが。。


それではよい VyOS ライフを。