これは私が実行したときに表示される出力です。dmesg
[1373335.656608] device eth0 entered promiscuous mode
[1373364.891962] device eth1 entered promiscuous mode
[1374537.599978] IPv4: martian source 10.5.0.2 from 203.115.192.116, on dev eth0
[1374562.256536] device eth1 left promiscuous mode
[1375229.342282] device eth1 entered promiscuous mode
[1376178.967446] device eth0 left promiscuous mode
[1376182.455498] device eth0 entered promiscuous mode
- Q1)火星パケットの送信元アドレスがルーティング不可能なIPを使用していることがわかっています。ホストは、一時公開 IP を使用する Google Compute インスタンスです。 「203.115.192.116の火星源10.5.0.2」とはどういう意味ですか?
- Q2)iptablesはそれをフィルタリングする必要がありますか(セキュリティ上の理由から)?
答え1
仮想応答パケットが別のインターフェイスを介してルーティングされる場合、そのインターフェイスに到着するパケットは「火星」と見なされます。あなたの場合、203.115.192.116は、eth0インターフェイスに到着する10.5.0.2にパケットを送信します。 10.5.0.2があなたのアドレスであり、ip route get 203.115.192.116
eth0と他のインターフェースを正しく報告し、実際にそのような非対称ルーティングを実行したい場合は、これらの火星ログを無効にする必要があります。例:
echo 0 > /proc/sys/net/ipv4/conf/eth0/log_martians
また、rp_filter
無効にする必要があります。そうでなければ(そしてこれがより可能性が高いようです)、どこかに解決すべきルーティングの問題があります。変更できない場合(主にホストされているクラウド環境では)、上記のようにロギングを完全に無効にするか、より選択的に削除できますiptables
(フィルターしかし、チェーンに比べて遅すぎる可能性があります。)
答え2
Martianパケットは、そのインターフェイスに予想されるローカルアドレスが表示される場合です(たとえば、パケットはパケットが送信されたネットワークとは異なるローカルネットワーク用です)。
これは推奨されるネットワーク設計ではありませんが、一部のネットワークは「mars」パケットを持つように設計できます(たとえば、複数の論理ネットワークを持つVLAN /物理ネットワーク)。
サーバーでそれを使用している場合は、表示しiptables
ないパケットをフィルタリングするのはおそらく悪い考えではありません。
ただし、プリプロダクション設定でMartianロギングを実行している間、Martianは通常多くのログを生成し、I / O操作に税金を課すため、Martianロギングは実行されません。