1. 清除物理網卡ip地址(192.168.1.22),使其工作在鏈路層接收所有數據包
1
2
|
ip addr del 192.168.1.22/24 dev eth0 ip addr add 0.0.0.0 dev eth0 |
2. 創建網橋br0并把接口eth0加入br0
1
2
3
|
ip link add br0 type bridge # ip link delete br0 ip link set br0 up # ip link set br0 down ip link set eth0 master br0 # ip link set eth0 nomaster |
3. 啟動容器
1
|
docker run -it --name testns centos |
容器啟動后已經配置了一塊網卡eth0
結下了我們用ip命令向容器添加另一塊網卡
4. 為ip netns準備環境(參考 man ip-netns):
1
2
|
nspid=$(docker inspect -f '{{.State.Pid}}' testns) ln -s /proc/ ${nspid} /ns/net /var/run/netns/ ${nspid} |
5. 創建一對網口tt0和tt1
1
|
ip link add tt0 type veth peer name tt1 |
或者直接ip link add type veth peer創建veth0,veth1
6. 添加一網口至br0
1
2
|
ip link set dev tt1 master br0 ip link set dev tt1 up |
7. 添加另外一網口至容器 testns , 并命名為eth1配置ip
1
2
3
4
|
ip link set dev tt0 name eth1 netns ${nspid} ip netns exec ${nspid} ip link set dev eth1 up ip netns exec ${nspid} ip addr add 10.65.120.48/16 dev eth1 ip netns exec ${nspid} ip addr add 10.65.120.49/16 label eth1:1 dev eth1 |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/cenziboy/article/details/46315355