問題は、 RFC 792の4ページから8バイトのヘッダーペイロードを引用していることですが、要件はRFC1812によって変更されました...
Time Exceeded Message (in RFC 792)
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| unused |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Internet Header + 64 bits of Original Data Datagram |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
RFC 1812、セクション4.3.2.3は、ICMPエラーメッセージの許容ペイロードを劇的に増加させます(私の強調):
4.3.2.3元のメッセージヘッダー
これまで、すべてのICMPエラーメッセージには、インターネットヘッダーと、エラーをトリガーしたデータグラムの少なくとも最初の8データバイトが含まれていました。IP-in-IPトンネリングやその他のテクノロジーが使用されているため、これはもはや適切ではありません。 したがって、ICMPデータグラムには、ICMPデータグラムの長さが576バイトを超えないように、できるだけ多くの元のデータグラムを含める必要があります。返されるIPヘッダー(およびユーザーデータ)は、受信したものと同じである必要があります。ただし、エラーが検出される前に実行された転送で通常実行されるIPヘッダーへの変更をルーターが元に戻す必要はありません(例: TTLをデクリメントするか、オプションを更新します)。
Scapyパケットから生成するICMPエラーには、元のパケットのIP層とTCP層からのすべての情報が含まれている必要があります。