天天看點

虛拟網絡裝置及其在Linux網絡命名空間中的應用

Linux的網絡命名空間用以隔離Linux主機上的不同的網絡環境。但是有時候,我們又需要從一個網絡命名空間中通路另一個網絡命名空間中的網絡,這就需要用到虛拟網絡裝置。

虛拟網絡裝置(Virtual Network Device)是一種抽象的網絡裝置,類似網絡管道,用以在不同的網絡命名空間之間建立傳輸隧道,也可以用以建立網橋以連接配接到多個其他網絡命名空間。虛拟網絡裝置在Linux中的實作就是veth(Virtual Ethernet Device)。veth是一種虛拟的網絡裝置,總是被成對地建立,并且一對veth永遠是連通的,是以veth一般被稱之為veth pair。删除任何一個veth,則成對的另一個veth也會被同時自動删除。

通過veth pair就能夠把兩個互相隔離的網絡命名空間連接配接起來,進而實作兩個網絡命名空間之間的通信。相關的指令如下:

#在預設ns建立一對veth
ip link add veth_left type veth peer name veth_right
#設定一個veth所屬的ns,另一個留在預設ns
ip link set veth_right netns oam

#配置設定靜态IP并啟動
ip addr add 10.0.1.1/24 dev veth_left
ip link set dev veth_left up
ip netns exec oam ip addr add 10.0.1.2/24 dev veth_right
ip netns exec oam ip link set dev veth_right up

#至此,完成了預設ns與oam ns之間的連接配接。
#但是要能夠在兩個ns之間通信,還需要進行必要的配置,請繼續關注後續文章。
           

參考連結:

        https://yakking.branchable.com/posts/networking-4-namespaces-and-multi-host-routing/

        https://www.cnblogs.com/sparkdev/p/9462762.html

        https://cizixs.com/2017/02/10/network-virtualization-network-namespace/

        http://www.360doc.com/content/18/0829/07/44856983_782027344.shtml

繼續閱讀