CentOS 7 は既にサポートが終了しています。このページは新規構築を推奨するものではなく、過去環境の保守、移行前調査、設定の読み解きに使うためのレガシー Linux 手順です。新規構築では、現在サポートされている Linux ディストリビューションを利用してください。
CentOS 7 で PPPoE を使った環境において、パケットキャプチャ上で Bad TCP checksum が多発したときの確認メモです。PPPoE、NIC オフロード、MSS、MTU が絡むため、見た目だけで異常と判断しない方がよいケースがあります。
特に tcpdump や Wireshark で checksum エラーが見える場合、実際に壊れているのか、NIC の checksum offload によって送信前の状態を見ているだけなのかを分けて確認します。
まず通信状態を確認する
ip address
ip route
ping -c 3 8.8.8.8
curl -I https://www.example.com/PPPoE インターフェースを確認する
ip link show
ip address show ppp0tcpdump で確認する
tcpdump -i ppp0 -nn tcpNIC オフロード状態を確認する
ethtool -k eth0切り分けとしてオフロードを無効化する
ethtool -K eth0 tx off rx off tso off gso off gro offMSS 調整を確認する
PPPoE では通常の Ethernet より MTU が小さくなるため、MSS 調整が必要になる場合があります。経路上で PMTUD が期待通り動かない場合、TCP の詰まりとして見えることがあります。
iptables -t mangle -A POSTROUTING -o ppp0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu確認するポイント
- checksum エラー表示が実通信の障害と一致しているか。
- オフロードを無効化した状態で表示が変わるか。
- PPPoE の MTU / MSS が適切か。
- ICMP を過度に遮断して PMTUD を壊していないか。
まとめ
Bad TCP checksum の表示は、必ずしもパケット破損を意味しません。CentOS 7 の PPPoE 環境では、checksum offload、MTU、MSS、実際の通信症状を分けて見ることが重要です。見た目のエラーに引っ張られず、通信できているか、どこで詰まっているかを順番に確認します。
関連する記事
- CentOS 7 サーバー管理ガイド
CentOS 7 系の記事をまとめたハブページです。
参考書籍
書籍
TCP/IP、Ethernet、VLAN、ルーティングなど、ネットワークの基礎を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。


