路由和資料包修改

路由和資料包修改

我希望將資料包從一個子網路傳送到另一個子網,距離超過一跳;舉個例子:

[ 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 規則是否可以實現這一點?我認為這是可能的,但我還無法讓事情正常運作。經過一番閱讀後,我嘗試設定 PREROUTING nat 規則,將前往 172.23.100.13 的封包發送到 192.168.10.11:

# 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;因此回到基本要求,兩個網路必須在一台機器上連接才能路由到它們。

相關內容