WANなどで、どこかの経路がMTUが小さい場合に、MTUを設定してあげる必要があります。
MSS設定 Fa0/0 [端末]--->[NW機器]---internet--->[NW機器]----->[端末] Fa0/1 MTU設定
MTUはNW機器で調整しますが、MSSは端末同士で調整します。
イーサーネットのMTUは、デフォルトでMTU=1500バイト フレッツ網のMTUは、1454バイト
C:\>netsh interface ipv4 show interface Idx Met MTU 状態 名前 --- ---------- ---------- ------------ --------------------------- 6 25 1500 connected イーサネット 13 25 1500 disconnected ローカル エリア接続* 3 23 65 1500 disconnected Bluetooth ネットワーク接続 18 25 1500 disconnected Wi-Fi 2 1 75 4294967295 connected Loopback Pseudo-Interface 1 16 25 1500 connected VirtualBox Host-Only Network #2 9 25 1500 disconnected ローカル エリア接続* 4 15 35 1500 connected VMware Network Adapter VMnet1 21 35 1500 connected VMware Network Adapter VMnet8 26 25 1500 connected VirtualBox Host-Only Network #3
MSS = MTU - 40バイト(TCP/IPヘッダー) イーサネットの場合 MSS = 1500バイト - 40バイト(TCP/IPヘッダー) = 1460バイト
TCPの3way Handshakeのときに端末間でTCP MSS値の合意を取るのですが、
NW機器にMSSを指定することにより、NW機器がMSS値を書き換えることができます。
NW機器がMSS値を書き換えることにより、MTUを超えないようにします
DFは、Don't Fragmentの略で、
DF=0なら、パケットを断片化できる。
DF=1なら、パケットを断片化できない。
経路のどこかがMTUが小さくても、ルーターやファイアウォールが、パケットを断片化して送り出してくれるので、
特に問題はありません。
パケットを断片化できないので、断片化できるように処理をしてあげる必要があります。
一般的な方法です。
3ウェイハンドシェイクのTCPオプションヘッダーに含まれるMSS値を小さい値に書き換え、
セグメントサイズが出口のインターフェイスのMTUを超えないようにします。
pingが成功したping成功最大値 + 8(ICMPヘッダ)+ 20(IPヘッダ)
がMTUサイズになります。
1438まで成功し、1439でエラーになった場合、MTUサイズは、1466bytesです。
-l サイズ 送信バッファーのサイズです。 -f パケット内の Don't Fragment フラグを設定します (IPv4 のみ)。 -n 要求数 送信するエコー要求の数です。
ping -f -l 1472 -n 1 x.x.x.x #OK ping -f -l 1473 -n 1 x.x.x.x #NG MTUサイズは、1472 + 8 + 20 = 1500bytes 「1472(データ・サイズ)+8(ICMPヘッダ)+20(IPヘッダ)=1500bytes」
ping -f -l 1438 -n 1 x.x.x.x #OK ping -f -l 1439 -n 1 x.x.x.x #NG MTUサイズは、1438 + 8 + 20 = 1466bytes 「1438(データ・サイズ)+8(ICMPヘッダ)+20(IPヘッダ)=1466bytes」
http://www.atmarkit.co.jp/ait/articles/0512/17/news017.html
Router(config)#interface FastEthernet 0/0 Router(config-if)#ip tcp adjust-mss 1414
Router(config)#interface FastEthernet 0/1 Router(config-if)#ip mtu 1448
# set security flow tcp-mss ipsec-vpn mss 1350
- When the traffic uses the MPLS link, the SYN/ACK in the TCP handshake has the MSS value set to 1350, which matches the setting on SRX1 and SRX2
- When the traffic uses the internet-based VPN, the SYN/ACK in the TCP handshake keeps the original MSS value set by the app client of 1460
knowledge