Linux Ubuntu veth path网络连接实验

■创建两个namespace

root@lzl-vm:~# ip netns add ns1
root@lzl-vm:~# ip netns add ns2
root@lzl-vm:~# ip netns
ns2
ns1
root@lzl-vm:~#

■创建两个tap设备,tap1、tap2 互为peer关系

root@lzl-vm:~# ip link add tap1 type veth peer name tap2
root@lzl-vm:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:b1:9e:06 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.131/24 brd 192.168.10.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:feb1:9e06/64 scope link 
       valid_lft forever preferred_lft forever
3: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1
    link/ether 4e:c0:78:5b:11:86 brd ff:ff:ff:ff:ff:ff
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether fa:54:cd:7a:3e:ed brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
6: tap2@tap1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 32:56:28:0b:ac:ec brd ff:ff:ff:ff:ff:ff
    inet6 fe80::3056:28ff:fe0b:acec/64 scope link 
       valid_lft forever preferred_lft forever
7: tap1@tap2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 66:c1:eb:28:25:2f brd ff:ff:ff:ff:ff:ff
    inet6 fe80::64c1:ebff:fe28:252f/64 scope link 
       valid_lft forever preferred_lft forever

■设置tap1、tap2 的命名空间

root@lzl-vm:~# ip link set tap1 netns ns1
root@lzl-vm:~# ip link set tap2 netns ns2
root@lzl-vm:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:b1:9e:06 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.131/24 brd 192.168.10.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:feb1:9e06/64 scope link 
       valid_lft forever preferred_lft forever
3: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1
    link/ether 4e:c0:78:5b:11:86 brd ff:ff:ff:ff:ff:ff
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether fa:54:cd:7a:3e:ed brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever

■查看各命名空间中的网络设备

root@lzl-vm:~# ip netns exec ns1 ip a
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
7: tap1@if6: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 66:c1:eb:28:25:2f brd ff:ff:ff:ff:ff:ff

root@lzl-vm:~# ip netns exec ns2 ip a
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
6: tap2@if7: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 32:56:28:0b:ac:ec brd ff:ff:ff:ff:ff:ff
root@lzl-vm:~# 

■启动tap1、tap2

(进入ns1命名空间)
root@lzl-vm:~# ip netns exec ns1 bash
root@lzl-vm:~# 
root@lzl-vm:~# ip a
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
7: tap1@if6: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 66:c1:eb:28:25:2f brd ff:ff:ff:ff:ff:ff

root@lzl-vm:~# ip link set dev tap1 up
root@lzl-vm:~# ip a
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
7: tap1@if6: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state LOWERLAYERDOWN group default qlen 1000
    link/ether 66:c1:eb:28:25:2f brd ff:ff:ff:ff:ff:ff
root@lzl-vm:/home/lizhilun# exit

(进入ns2命名空间)
root@lzl-vm:~# ip netns exec ns2 bash
root@lzl-vm:~# ip link set dev tap2 up
root@lzl-vm:~# ip a
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
6: tap2@if7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 32:56:28:0b:ac:ec brd ff:ff:ff:ff:ff:ff
    inet6 fe80::3056:28ff:fe0b:acec/64 scope link 
       valid_lft forever preferred_lft forever
root@lzl-vm:~# exit

■测试tap1、tap2的连通性

(tap1设置ip为1.1.1.10/24)
root@lzl-vm:~# ip netns exec ns1 ip addr add 1.1.1.10/24 dev tap1
root@lzl-vm:~# ip netns exec ns1 ip a
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
7: tap1@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 66:c1:eb:28:25:2f brd ff:ff:ff:ff:ff:ff
    inet 1.1.1.10/24 scope global tap1
       valid_lft forever preferred_lft forever
    inet6 fe80::64c1:ebff:fe28:252f/64 scope link 
       valid_lft forever preferred_lft forever
root@lzl-vm:~#

(tap2设置ip为1.1.1.20/24,同网段)
root@lzl-vm:~# ip netns exec ns2 ip addr add 1.1.1.20/24 dev tap2
root@lzl-vm:~# ip netns exec ns2 ip a
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
6: tap2@if7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 32:56:28:0b:ac:ec brd ff:ff:ff:ff:ff:ff
    inet 1.1.1.20/24 scope global tap2
       valid_lft forever preferred_lft forever
    inet6 fe80::3056:28ff:fe0b:acec/64 scope link 
       valid_lft forever preferred_lft forever

(测试tap1和tap2的连接)
root@lzl-vm:~#ip netns exec ns1 bash
root@lzl-vm:~# ip a
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
7: tap1@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 66:c1:eb:28:25:2f brd ff:ff:ff:ff:ff:ff
    inet 1.1.1.10/24 scope global tap1
       valid_lft forever preferred_lft forever
    inet6 fe80::64c1:ebff:fe28:252f/64 scope link 
       valid_lft forever preferred_lft forever
root@lzl-vm:~# ping 1.1.1.20
PING 1.1.1.20 (1.1.1.20) 56(84) bytes of data.
64 bytes from 1.1.1.20: icmp_seq=1 ttl=64 time=0.271 ms
64 bytes from 1.1.1.20: icmp_seq=2 ttl=64 time=0.045 ms
64 bytes from 1.1.1.20: icmp_seq=3 ttl=64 time=0.046 ms
64 bytes from 1.1.1.20: icmp_seq=4 ttl=64 time=0.049 ms

(查看ns1的路由表)
root@lzl-vm:~# ip ro
1.1.1.0/24 dev tap1  proto kernel  scope link  src 1.1.1.10 
root@lzl-vm:~# 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值