参考
https://jpn.nec.com/univerge/ix/faq/ipsec-ike.html#Q1-8
数値は上記サイトを参照
- X + B + C + D + E = 出力回線MTUサイズ
- X = TunnelインターフェースMTU + A
- A = 2byte(固定値):パディング長(1byte) + 次ヘッダ番号(1byte)
- B = 認証データ:MD5/SHA1(12byte)
- :SHA256(16byte)
- :SHA384(24byte)
- :SHA512(32byte)
- C = Initial Vector:DES/3DES(8byte)、AES(16byte)
- D = ESPヘッダ:8byte固定
- E = IPヘッダ:IPv4(20byte)、IPv6(40byte)
①出力回線MTU=1500byte、認証データ=SHA512(32byte)、Initial Vector=AES(16byte)、IPヘッダ:ipv4(20byte)の場合、
X=1500-B-C-D-E=1500-32-16-8-20=1424
トンネルインターフェスMTU=(1424/16の整数部(少数点以下切り捨てした値))×16-2=89.0の整数部89×16-2=1424-2=1422byte になる。
②出力回線MTU=1454byte、認証データ=SHA512(32byte)、Initial Vector=AES(16byte)、IPヘッダ:ipv4(20byte)の場合、
X=1500-B-C-D-E=1454-32-16-8-20=1378
トンネルインターフェスMTU=(1378/16の整数部(少数点以下切り捨てした値))×16-2=86.125の整数部86×16-2=1376-2=1374byte になる。
なぜ16で割って整数部のみに再度16を書けているかというと、
AESのデータは、16byteの倍数である必要があるため、上記②でいうと1378の中で最大の16の倍数を計算する必要がある。
そのため、16で割って、その整数部に再度16をかけてあげる。