I got a Knife <TGI.bbs@bbs.ntu.edu.tw>
wrote in message
news:3d3DSE$6Tn@bbs.ntu.edu.tw...
>
> 小弟我目前的網路架構是利用 linux 當 firewall
>
> linux 上對外的網卡 設了三個實體 ip
>
> eth0 > xxx.xxx.xxx.aaa
> eth0:0 > xxx.xxx.xxx.bbb
> eth0:1 > xxx.xxx.xxx.ccc
>
> firewall 內的機器出去時都會偽裝成 xxx.xxx.xxx.aaa
>
> 如今,小弟想讓 firewall 內的機器 A 出去時偽裝成
xxx.xxx.xxx.aaa
>
B 出去時偉裝成 xxx.xxx.xxx.bbb
>
> 以此類堆.......
>
> 但 ipchains 好像無法設定 eth0:0 or eth0:1 ...
>
> 例如 :
>
> ipchains -A forward -s 10.100.100.1/32 -i eht0 -j MASQ
>
> 如果把上一行的 eth0 改成 eth0:0 是無法作用的
>
> 所以想請問高手,還有什麼方法可以達到嗎?
>
嗯﹐不知道是否我還不是很了解 ipchains
的運作﹐在我的實在中﹐似乎還不能提供
類似 masquerade as xxxx
的功能。只能換成那個出去界面的地址。
如果您確定出去的界面是 eth0:0
的話﹐應該是可以的。但在您上面的例子中﹐前面三
組都是用 xxx.xxx.xxx ﹐請問 mask 是多少﹖如果小於 24bit 而且
mask 是一樣的話
(或說 IP 在同一個 subnet裡面)﹐那出去的封包很難確定是走
eth0:0 ﹐我猜大都會
用 eth0 出去。既然這樣﹐偽裝後的地址就成了 eth0
的了﹐那對方回來的封包﹐當然
不會丟給 eth0:0 啦。
另外還有一個設定要小心﹐雖然看上去 eth0:0 和 eh0
是不同的地址﹐但其實物理界
面都相同的﹐如果您設定了 -s eth0 -j DENY 的話﹐那在 -s eth0:0
上面的設定也就
同樣會被擋下來。不過﹐這印象有點模糊了﹐不如找個機會實作一下看看﹖