A←–→B←–→Cマシンで物理ネットワークを設定しました。 IP およびイーサネット構成は以下に要約されます。
A(eth0: 10.10.10.2) ←—→ (eth0: 10.10.10.3)B(eth1: 192.168.0.3) ←—→ (eth1: 192.168.0.2)C
AからCにUDPパケットを送信したいです。tcpdump
パケットAは次のとおりです10.10.10.2:10000-->192.168.0.2:10001
(10000または10001はポート番号です).もちろん、パケットはBを通過し、eth0
Bから入り、転送する必要がありますeth1
。
Bのルーティングテーブルはサブネット192.168.0.0/24から構成されていますeth1
。そして/proc/sys/net/ipv4/ip_forward
1です。
tcpdump
BはUDPパケットを受信できることを確認しますeth0
。しかし、eth1
何も起こりません(Cも同じです)。これは、パケットが正しく転送されなかったことを意味します。 (iptables
Bilibiliにはドロップポリシーはありません。)
仮想マシンでトポロジを再生成しましたが、機能します。しかし、実際の物理マシンでは動作しません。また、netfilter
宛先ポートが10001の受信UDPパケット(前の例のように)が検出されるたびにこれを行う単純なカーネルモジュールを作成しようとしましたが、printk("some messages")
Linuxカーネルはまだ何も印刷しません。
PS。 BのオペレーティングシステムはDebian 6.0.10(squeeze)です。
誰もがこの問題について明らかにすることができればとても感謝します。