まえおき
少し前の障害で思うところがあったので、パケットの復習
その際のエラー文字列は、次の通り。
2025/11/22 08:32:29: Illegal length of IP packet(len = 283/46) received from 192.168.xxx.yyy
イーサネットフレーム
| - | 名称 | バイト数 | 解説 |
|---|---|---|---|
| 1 | プリアンブル (Preamble) |
7 | フレームの開始を示す同期信号 |
| 2 | SFD (Start Frame Delimiter) |
1 | フレーム開始デリミタ |
| 3 | 宛先MACアドレス | 6 | 宛先MACアドレス |
| 4 | 送信元MACアドレス | 6 | 送信元MACアドレス |
| 5 | タイプ/長さ | 2 | 上位層のプロトコルを示す |
| 6 | ペイロード | 46-1500 | データ本体 |
| 7 | FCS (Frame Check Sequence) |
4 | エラー検出用チェックサム |
イーサネットフレームだと FCSのタイミングでパケット長が分かるけれど、それが正しいかどうか比較できない。
IPヘッダの一部
ヘッダの最初の方
| - | 名称 | バイト数 | 解説 |
|---|---|---|---|
| 1 | バージョン | 0.5 (4ビット) |
IPのバージョン番号 |
| 2 | ヘッダ長 | 0.5 (4ビット) |
IPヘッダの長さを32ビット単位で示す |
| 3 | サービスタイプ | 1 | パケットの優先度やQoSを示す |
| 4 | 全長 | 2 | IPパケット全体の長さ(ヘッダ+データ) |
あとがき
公式サイトでは、このエラーの記述を見つけることはできませんでした。
IPヘッダの4番目にパケットサイズが書かれているので、これと比較して不正だとエラーをだしているのかなと。