天天看點

雲原生必備知識: Netns

所屬技術領域:

雲原生

| 名詞定義 |

netns是在linux中提供網絡虛拟化的一個項目,使用netns網絡空間虛拟化可以在本地虛拟化出多個網絡環境,目前netns在lxc容器中被用來為容器提供網絡。

使用netns建立的網絡空間獨立于目前系統的網絡空間,其中的網絡裝置以及iptables規則等都是獨立的,就好像進入了另外一個網絡一樣。

|相關名詞|

Ip netns相關指令

1.增加虛拟網絡命名空間

ipnetns add net0

2.顯示所有的虛拟網絡命名空間

EULER:~ # ipnetns list

net0

也可通過檢視/var/run/netns目錄下的檔案來list

EULER:~ # ls /var/run/netns/

3.進入虛拟機網絡環境

ipnetns exec net0

command

EULER:~ # ipnetns exec net0 bash #打開虛拟網絡環境net0的bash視窗

EULER:~ # ipaddr #顯示所有虛拟網絡環境的裝置

EULER:~ # exit #退出該網絡虛拟環境

exit

4.增加一對veth虛拟網卡

EULER:~ # ip link add type veth

5.将veth0添加到net0虛拟網絡環境

ip link set veth0 netns net0

6.将虛拟網卡veth1改名并添加到net1虛拟網絡環境中

ip link set dev veth1 name net1-bridge netns net1

7.設定虛拟網絡環境net0的veth0裝置處于激活狀态

ipnetns exec net0 ip link set veth0 up

8.為虛拟網絡環境net0的veth0裝置增加IP位址

ipnetns exec net0 ip address add 10.0.1.1/24 dev veth0

用法

ip [ OPTIONS ]netns { COMMAND | help }

ipnetns list - show all of the named network namespaces 列出所有名稱空間

ipnetns add NETNSNAME - create a new named network namespace 建立一個新的名稱空間

ipnetns delete NETNSNAME - delete the name of a network namespace 删除一個名稱空間

ipnetns exec NETNSNAME cmd ... - Run cmd in the named network namespace 在網絡名稱空間中執行系統指令

ip [-all] netns exec [ NAME ]cmd ... - Run cmd in the named network namespace.

If -all option was specified then cmd will be executed synchronously on the each named network namespace.

資料來源:

1、 阿裡雲大學

2、 百度百科

3、 CSDN

繼續閱讀