dmesg+UDP: チェックサムエラー。 + RHEL 7.x

dmesg+UDP: チェックサムエラー。 + RHEL 7.x

dmesgでは、私たちは非常に奇妙な行を取得します。

[6484420.812643] raid6: using avx2x2 recovery algorithm
[6484420.859086] Btrfs loaded
[6484426.278636] nr_pdflush_threads exported in /proc is scheduled for removal
[6484708.776239] ixgbe 0000:04:00.0: invalid short VPD tag 06 at offset 4
[6900952.098901] perf: interrupt took too long (6247 > 6167), lowering kernel.perf_event_max_sample_rate to 32000
[7372848.819396] Peer 0000:0000:0000:0000:0000:ffff:0a15:f030:1054/8042 unexpectedly shrunk window 3002395993:3002395997 (repaired)
[8139485.039423] Turbo disabled by BIOS or unavailable on processor
[8380300.891343] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380320.890541] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380440.896206] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380460.895001] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380463.207397] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380467.316531] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380468.363352] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380469.332044] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380489.330943] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380509.329849] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380529.328678] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380549.468256] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380569.326474] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380589.340946] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380609.339969] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380619.870472] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380620.964216] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380621.979847] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380641.869255] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380661.883737] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380681.867153] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380701.881531] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380721.864752] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380741.879282] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380761.878160] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380781.876977] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380801.875853] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380821.874754] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380841.873636] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380861.872533] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380881.871408] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380901.870340] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380921.884773] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380956.392645] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380957.392566] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380958.517530] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380978.384846] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8380998.383622] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8381018.387820] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8381038.390564] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8381058.395931] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8381060.052209] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8381061.114504] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8381062.115355] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69
[8381082.053988] UDP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69

その行は次のとおりです。

DP: bad checksum. From 73.2.33.11:5353 to 82.2.33.1:5353 ulen 69

深刻な問題を示していますか?

答え1

これらの「UDPエラー」はUDPチェックサムオフロードです。 NIC はチェックサムを担当するため、CPU リソースを節約するために CPU レベルで実行されません。 VMWareがこれを行い、KVMもそれを行うと思います(それだけでなく)。したがって、tcpdumpシステムログを使用または表示すると、OS / VMレベルで正しいチェックサムを確認できません。

バラより分割とチェックサムのオフロード:ethtoolを使用してオフにする

残念ながら、Wiresharkで見たものは、私たちが期待するものとは異なる場合があります。これが発生する1つの方法は、オペレーティングシステムがTCP / IP操作をネットワークインターフェイスカード(NIC)にオフロードすることです。オフロードの一般的な作業は、分割とチェックサムの計算です。つまり、オペレーティングシステムがCPUを使用してTCPパケットを断片化するのではなく、NICは独自のプロセッサを使用して断片化を実行できます。これにより、CPUリソースが節約され、NICへのバス通信が大幅に削減されます。

また、見ることができますLinuxネットワーキング:オフロード機能、RX / TXチェックサム、分散、収集などを無効にする/有効にする方法

tcpdump出力のUDP / TCPチェックサムエラー

オフロードが有効になっていて、パケットエラーなしでtcpdump出力に誤ったcksumが表示され、ネットワークが正しく機能している場合、チェックサムは実際にネットワークアダプタで計算され、tcpdumpが計算された値を表示するので、心配する必要はありません。カーネルレベルのチェックサム。

~からtcpdumpおよびNICハードウェアオフロードによるUDP/TCPチェックサムエラー

アクティブなNICハードウェアオフロードオプションを確認したら、明確な結果を確認できます。

$ sudo ethtool -k eth0 | $ sudo ethtool -k eth0 | grep on
rx-checksumming
: on
分散
- 収集: on
generic-receive-offload :
rx-vlan-offload から:
tx-vlan-offload から: オン

NICでTX / RXのTCPオフロード(TCO)を無効にした後、問題は消えました。

$ sudo ethtool -K eth0 tx オフ rx オフ

最適化をオフにするとパフォーマンスがわずかに影響を受けるため、ネットワークの問題のデバッグが完了したら、最適化を再びオンにします。

TLDR これらの「バグ」はLinux仮想マシンでよく発生するので、心配する必要はありません。一度知ったら、それらはベースラインの一部です。また、ログを表示したり、ネットワークの問題をデバッグするときにカーネルレベルで表示することが必ずしもラインレベルで表示されるわけではないことに注意してください。

答え2

MDNSまたはマルチキャストDNSのポート5353のパケットで無効なチェックサムを受け取りました。これは、ルーター、スイッチ、ネットワークカード、またはパケットを損傷するその他のデバイスなどの障害のあるデバイスがあるか、またはどこかに中間者攻撃があるためです。

アドレス 73.2.33.11 は Comcast、アドレス 82.2.33.1 は Virgin Media です。あなたのための最良の方法は、TcpdumpまたはWiresharkを使用してパケットを調べて、何が起こっているのかを確認することです。また、ネットワークの他のシステムでも同じことが起こるかどうかを確認したいと思います。これはそれが何であるかを理解するのに役立ちます。

答え3

これはtcpdump出力されませんが、wiresharkリストの一部です。dmesg

これらのメッセージは、カーネル、__udp4_lib_rcv()Linuxカーネルソースコードの関数から直接提供されます。net/ipv4/udp.cこの機能は、ハードウェアのオフロード機能を理解します。

私が知っている限り、チェックサムがハードウェアで処理されている場合、このメッセージはハードウェアが実際に受信したUDPパケットで誤ったチェックサムを検出したことを意味します。

UDP / 5353は、MDNS(ポイントツーポイントホスト名解決およびサービス検索プロトコルであるマルチキャストDNS)で一般的に使用されます。通常、単一の組織内でのみ使用されます。通常、インバウンドまたはアウトバウンドのいずれかの組織の境界ファイアウォールを介してUDP / 5353トラフィックを許可する必要はありません。

IPアドレスが実際の場合、誤ったパケットは他のインターネットサービスプロバイダのネットワークからのものです。これについてできることはあまりありません。せいぜいトラフィックを調べて、パケットが既知の攻撃と一致していることを確認し、必要に応じて送信元ISPの濫用報告アドレスに報告することができます。

しかし、あなたのサーバーが明らかにインターネットからUDP / 5353トラフィックを受信して​​いるという事実自体が心配です。これは、ファイアウォールが漏洩し、インターネットからMDNSサービスに不必要にアクセスできることを意味します。サーバーを外部ハードウェアファイアウォールで保護する必要がある場合は、構成を再確認してください。

サーバーをiptables独自のファイアウォールでのみ保護する必要がある場合は、組織独自のネットワークからのMDNSトラフィックのみを許可するようにファイアウォール設定を調整し、必要でない場合はMDNSサービスを完全に無効にする必要があります。

関連情報