我有一台 Linux 機器,有一個連接到互聯網的實際介面;假設 eth0 192.168.1.108
我需要建立一個虛擬接口,透過 [eth0] 路由流量,但根據某些存取控制清單顯示不同的 IP 位址 [10.10.0.1]。
我需要建立一個新的虛擬設備,其 IP 位址為 10.10.0.1,用於存取控制目的。
我創建了一個虛擬設備
ip link add name acl0 type dummy
ip addr add 10.10.0.1
ip link set dev acl0 up
這會建立接口,但實際上並不會路由任何流量。
如何建立具有特定 IP 位址的虛擬設備來實際路由流量?
答案1
請編輯您的問題並提供詳細信息,為什麼您需要第二個 IP,以及您計劃如何將其用於訪問目的。
一個介面不“路由流量”。核心路由流量。
虛擬介面的唯一好處是作為沒有功能的 IP 的佔位符,以便應用程式可以綁定到它。很多人都錯誤地認為它能以某種方式做某事,但事實並非如此。
您可以將多個 IP 位址指派給同一個接口,但是您需要確保所有應用程式綁定到特定的地址,否則您將享受調試隨機效果的樂趣。
根據您需要哪種“存取控制”,為不同應用程式分離網路的簡單方法是使用網路命名空間。將“特殊”應用程式放入網路命名空間內,然後如果它在網路方面的不同電腦上運行,它就會起作用,因此您可以給它不同的設定。
要么使用 amacvlan
讓它eth0
使用具有不同 IP 位址的相同介面(或使用 DHCP 為其提供 IP),或者在新命名空間和主網路命名空間之間創建一個 veth-pair,然後執行正常路由。