- 締切済み
パケットの流れが指定先と違う?
気になったのですが。 linuxサーバのeth0とeth1に異なるグローバルIPアドレスが振り、 iptablesで両方のsshへのアクセスを許可しているのですが、 sshの通信でどちらのIPアドレスを指定してもパケットがeth0側に流れるようなのです、これはなぜでしょうか? クライアントはteratermを使用しており、パケットの確認には、 tcpdump -i eth0又はeth1 port 22を使用しております。 GATEWAYDEVはファイルで明示的に指定しておりません。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kusa_mochi
- ベストアンサー率76% (1597/2087)
回答No.1
これは回答というよりアドバイスに近いのだが・・・ route print でルーティングテーブルをまず確認してみては。 個人的には、Default Gateway無しでどの様に相手側グローバルIPへパケットを送り返しているのか興味がある。 明示的に「このIPアドレスにはethxを使う」としていなければ、それ以外のパケットは原則としてDefault Gatewayに回されると思うのだが・・・ 相手がNICの繋がっている同一セグメント内ならルーティングテーブルのお世話にならなくても、パケットの送り先を判断できると思うが。 #GATEWAYDEVなのでDebianなのかな? 当方にはDebian環境が無いので知らないが、暗黙のルールみたいなものがあるのかも
お礼
返答が遅れてすみませんでした。 OSはRedhatのes4です。 routeコマンドではデフォルトゲートウェイがeth0になっています。 あえてeth1を指定し、routeコマンドや実通信で反映されたことを 確認した直後でも、該当記述を消去しnetworkをリスタートすると 再びeth0になります。 無指定のため、何かの送受信のタイミングで逆転することがあるの では? と確認していましたが今のところ確認できません。 何かルールが無いかとググってましたが、このてのことは見つけるのが 難しいですね。 このサーバは両nicのアドレスが同一ネットワークセグメント上にあり、 同じgatewayアドレスを指定しているのですが、 つい最近、iptablesでsmtpのみpostroutingしてeth1から送信する設定が 完全ではなかったことが発覚しました。 ルールの誤りではないようで、受信先で送信元のIPアドレスは意図通り になっていたのですが、sysctl.confでarpのパラメータを有効にし忘れて しまい、その結果arpテーブルの両nicのMACアドレスがeth0のものになって いたということで・・・ パラメータを有効にして反映後に通信することでarpテーブルは正常に なりましたが、これが原因でおかしくなっていたかどうかの検証は、 急な案件中のため保留しています。 一段落したら再開しようと思います。 以上です。 長文失礼しました。