抱歉... 最近比較忙 , 上來不少次 , 但都因為太累..就放棄跑去睡了
(現在上班時間 , 不過剛剛不小心睡著 , 好像捅了一點摟子 ... 處理不來乾脆不理 :cry: )
不對... DNAT 會改變 destination socket ...
那封包就送錯地方了....
封包走哪一站,是 routing 決定的...
其實前幾天就已經找到答案了 , 不過不是 ppp 介面 (小弟只有一個 ppp IP)
不過感覺上 , 他的精神是差不多的
linux 防火牆(0.250) ------- linux client (0.1)
|--- M$ (0.2)
linux client 是架來玩的 , ssh 依然 22 port(內部觀) , 0.250 就不是 22 port
重點是 , 我希望從公司仍能直接 ssh 裡面的 linux
所以這時我真實 ip 的 60001 是防火牆 ssh , 60002 是 client ssh
若是 M$ 這台堅持與公司連回來的方式一樣 (ssh public IP : 分兩種 port)
iptables -t nat -A PREROUTING -s 192.168.0.1 -d 203.204.100.20 -i \
eth2 -p tcp -m tcp --dport 60002 -j DNAT --to-destination 192.168.0.2:22
這樣的 prerouting 設定 , 理當是 ok 的
在 M$ 0.2 執行 ssh -p 60002 203.204.100.20
但這是無法連上的 ... 雖然有 PREROUTING 設定 ok 的喔
需得再加上一行
iptables -t nat -A POSTROUTING -o eth2 -j SNAT --to-source 192.168.0.250
而加入第三台 linux client (0.3) 時 , 好像又有一點點不同 , 只是還沒著手去找不同處
(這也是一直沒回這篇的原因 .. 但到過年 , 恐怕也沒時間玩:oops: )
要做ECMP的話,有個首要條件,2個Device的網段不可相同(小弟的經驗)
小弟曾經做過
真實 ip ---> linux tc qdisc 分流 ---> ECMP 合併 ---> LAN
1網卡 a 2 + 2 網卡 b 1網卡+hub
其中 , 若 b 點四張網卡 , 皆使用同網段 ip , 是可行的喔 (route table 設 ok)
不過 (記憶中) tc qdisc 的那兩個私人 ip 無法由 lan ping 到 (但運作是正常的)
而曾經幫同學架過 5 個 seednet IP 全用的 ECMP + nat , 那就更沒是否同網段問題了
猜想 , 拿到同網段的 public IP , 也不一定是同網段的 "ISP 的對應私人 IP"