2017-05-04 120 views
1

我想在debian的同一個物理網卡上配置一個帶有多個ip地址(在同一子網中)的debian盒,而每個地址都應該使用它自己的地址網絡路由。在debian的同一個接口上有不同網絡路由的多個ip地址

我認爲它不能使用ip addr add,但它可能使用僞接口,如eth0:0?或者,linux TCP堆棧是否阻止了這個?如果可能的話,我如何將多個默認路由綁定到它們的(僞)接口或IP地址?它將能夠使用iptables的roules和哪些?

+0

如果你所有的地址都在同一個子網中,內核如何知道使用哪一個來獲得給定的目的IP? – rodrigo

+0

傳入軟件包將分配給虛擬網絡dev(例如,eth0:0)。這個作品 - 確認! 如果一個服務綁定到一個IP地址,流量將通過給定的虛擬網絡開發路由。這也可以 - 確認! 但是,如果它們在同一個子網上,我可以爲這些設備分配不同的路由嗎?它看起來像只有一個全局路由表。 它會通過設置標記與iptables的工作? –

+0

AIUI,虛擬網絡設備是'ipconfig'黑客,它們根本不存在於內核中。如果使用新的'ip',則不存在虛擬設備,而是單個設備可以具有多個地址。而使用'ip route'創建的路由條目有一個'src'參數,它是源IP,可能有助於...... – rodrigo

回答

1

別名不需要做這個,你可以做到這一點與iproute2的

ip addr add <ip> dev eth0 

你再添加路由到特定IP路由表

ip route add subnet dev eth0 table <tableid> 
ip route add default via <GATEWAY> table <tableid> 

然後添加規則,IP匹配等等它使用的具體表

ip rule add from any to <ip> lookup <tableid> 
ip route add from <ip> to any lookup <tableid> 

這可能會非常困惑,因爲路由是n ow多個路由表

相關問題