1.4.3 MTUとフラグメント
IPパケットを中継するとき,最大転送単位(MTU:Maximum Transfer Unit)に従い,それ以上大きなパケットは分割して送信します。これをフラグメント化といいます。MTUのサイズに収まるパケットはハードウェア処理で中継しますが,分割して送信する場合はソフトウェア処理で中継するため中継パフォーマンスが低下しますので注意が必要です。
(1) MTUの決定
-
VLANインタフェースのMTUの決定
VLANに所属するイーサネットインタフェースのMTU値,システムMTU情報,およびIP MTU情報のうち,最小のものをVLANインタフェースのMTU値とします。
本装置ではVLANインタフェースのMTU値をIPv4/IPv6通信で使用します。
VLANインタフェースのMTU決定マトリクスを次の表に示します。
表1‒7 VLANインタフェースMTU値決定マトリクス 設定パターン
1
2
3
4
5
6
7
8
システムMTU情報
設定あり
設定あり
設定あり
設定あり
省略
省略
省略
省略
IP MTU情報
設定あり
設定あり
省略
省略
設定あり
設定あり
省略
省略
ポートMTU情報
設定あり
省略
設定あり
省略
設定あり
省略
設定あり
省略
MTU値
A2
A1
A4
A1
A2
A3
A4
A5
- (凡例)
-
A1:システムMTU情報の設定値とIP MTU情報を比較し,小さい方
A2:IP MTU情報の設定値とポートMTU情報で指定したポート内の最小値を比較し,小さい方
A3:IP MTU情報と1500を比較し,小さい方
A4:ポートMTU情報で指定したポート内の最小値
A5:1500
注 回線種別が10BASE-Tの場合は,設定内容にかかわらずMTU値は1500になります。
図1‒10 VLANインタフェースの設定例
-
IP設定なしの場合
- [MTU決定値]
-
VLAN 100のMTU値・・・1600
VLAN 200のMTU値・・・1900
-
IP設定ありの場合
VLAN 100にip mtu 1000,VLAN 200にip mtu 3000を設定したとき
- [MTU決定値]
-
VLAN 100のMTU値・・・1000
VLAN 200のMTU値・・・1900
(2) MTUとフラグメント
ネットワークの中には異なるMTUのサブネットワークがある可能性があります。サイズの大きなIPパケットを,小さなMTUを持つネットワークを通る場合,IPパケットを分割し中継します。
フラグメント化モデルを次の図に示します。ネットワークAから送信したパケットをネットワークBへ中継するとき,MTUが1500から630に短くなるためにフラグメント化します。
|
(3) フラグメントの生成
MTUを超えるIPパケットは,IPヘッダを除くデータ部分を8の倍数長でフラグメント化します。
ネットワークBはMTUが630ですから,IPヘッダ長を除くと610となり,610での8の倍数長は608なので608バイトずつフラグメント化します。フラグメント化したパケットにはそれぞれIPヘッダを付加します。パケットのフラグメント化を次の図に示します。
|
MTUに収まるようにフラグメント化したIPパケットは,フラグメント化したことをIPヘッダ内のオフセットとmore fragmentsビットに書き込みます。また,同一のidentificationを設定してchecksumを再計算します。オフセットは,先頭からのデータ長を8で割った値を設定します。