
あるサブネットから 1 ホップ以上離れた別のサブネットにパケットを送信したいと考えています。例:
[ 192.168.0.4 ] - - - > [ 192.168.10.11 ] - - - > [ 172.23.100.13 ]
192.168.0.4 を 172.23.100.13 に接続したいのですが、問題は次のとおりです:
# ip route add 172.23.100.13/32 via 192.168.10.11
Error: Nexthop has invalid gateway.
私の理解では、Error: Nexthop has invalid gateway.
これは「192.168.10.11 は、現在使用しているネットワークである 192.168.0.0/24 ネットワーク上にないため、これを行うことはできません」という意味です。
私の質問は、これが iptables ルールで可能かどうかです。可能だとは思いますが、まだうまく動作させることができていません。いくつか読んだ後、172.23.100.13 に送信されるパケットを 192.168.10.11 に送信する PREROUTING nat ルールを設定しようとしました。
# iptables -t nat -A PREROUTING -d 172.23.100.13 -j DNAT --to-destination 192.168.10.11
残念ながら、何も起こりません。デバッグの進め方さえわかりません。試したことは:
# iptables -t nat -A PREROUTING -d 172.23.100.13 -j LOG
しかしログには何も表示されない
tcpdumpも試してみました:
tcpdump -i <interface> -vv | egrep '(172.23.109.13|192.168.10.11)’ &
ただし、次の繰り返し行のみが表示されます。
192.168.0.4.43898 > 172.23.100.13.8000: Flags [S], cksum 0x2374 (incorrect -> 0xa00f), seq 573960788, win 62727, options [mss 8961,sackOK,TS val 1537225626 ecr 0,nop,wscale 7], length 0
これは正しいアプローチでしょうか? 何をチェックすればよいかの手がかりはありますか?
ありがとう!
答え1
私はこのパズルの欠けているピースを発見しました。マシンが192.168.10.11
パケットを送信できるのは172.23.100.13
、ネットワーク用の VXLAN インターフェイスが存在するためです172.23.100.0/24
。つまり、2 つのネットワークをルーティングするには、マシン上で 2 つのネットワークを接続する必要があるという基本的な要件に戻ります。