Docker网络前篇 veth-pair

目录

veth-pair

主网络命名空间的连通性

网络拓扑

自定义网络命名空间的连通性

网络拓扑


veth-pair

        在Linux中,veth(virtual ethernet)pair是一对虚拟网络接口,这两个接口是成对出现的,当数据包在一个接口上发送时,它会在另一个接口上被接收,好像它们是通过一个双向的管道连接在一起。类似一条网线的两端。

主网络命名空间的连通性
网络拓扑

# 1. 查看当前veth-pair类型的设备
> ip link show type veth

# 2. 创建veth-pair对, veth200 ~ veth2001
> ip link add veth200 type veth peer name veth201

# 3. 设置ip,并启动veth200 ~ veth201
> ip addr add 200.200.1.2/24 dev veth200
> ip addr add 200.200.1.3/24 dev veth201
> ip link set veth200 up
> ip link set veth201 up

# 4.
> ip link show type veth
81: veth201@veth200: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 72:31:b0:23:57:e0 brd ff:ff:ff:ff:ff:ff
82: veth200@veth201: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 76:8b:20:2a:95:a4 brd ff:ff:ff:ff:ff:ff


# 5. 检查网络的连通性
# 5.1 主网络直接ping 200.200.1.2, 可达
> ping 200.200.1.2 -c 1
PING 200.200.1.2 (200.200.1.2) 56(84) bytes of data.
64 bytes from 200.200.1.2: icmp_seq=1 ttl=64 time=0.028 ms

--- 200.200.1.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.028/0.028/0.028/0.000 ms

# 5.2 主网络直接ping 200.200.1.3, 可达
> ping 200.200.1.3 -c 1
PING 200.200.1.3 (200.200.1.3) 56(84) bytes of data.
64 bytes from 200.200.1.3: icmp_seq=1 ttl=64 time=0.029 ms

--- 200.200.1.3 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.029/0.029/0.029/0.000 ms
自定义网络命名空间的连通性
网络拓扑

# 1. 查看当前veth-pair类型的设备
> ip link show type veth

# 2. 创建veth-pair对, veth210 ~ veth211
> ip link add veth210 type veth peer name veth211

# 3. 创建network ns210
> ip netns add ns210

# 4. 把veth-pair的一端 veth211 放入 ns210中
> ip link set veth211 netns ns210

# 5. 设置ip,并启动主命名空间中的 veth210
> ip addr add 210.210.1.2/24 dev veth210
> ip link set veth210 up
> ip link show type veth

84: veth210@if83: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether de:9f:80:b6:61:aa brd ff:ff:ff:ff:ff:ff link-netnsid 3
    inet 210.210.1.2/24 scope global veth210
       valid_lft forever preferred_lft forever
    inet6 fe80::dc9f:80ff:feb6:61aa/64 scope link
       valid_lft forever preferred_lft forever

# 6. 设置ip,并启动 ns210 命名空间中的 veth211
> ip netns exec ns210 ip addr add 210.210.1.3/24 dev veth211
> ip netns exec ns210 ip link set veth211 up
> ip netns exec ns210 ip addr

1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
83: veth211@if84: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether f2:61:82:e5:63:35 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 210.210.1.3/24 scope global veth211
       valid_lft forever preferred_lft forever
    inet6 fe80::f061:82ff:fee5:6335/64 scope link
       valid_lft forever preferred_lft forever



# 7. 检查网络的连通性
# 7.1 主网络直接ping 210.210.1.3, 可达
> ping 210.210.1.3 -c 1
PING 210.210.1.3 (210.210.1.3) 56(84) bytes of data.
64 bytes from 210.210.1.3: icmp_seq=1 ttl=64 time=0.050 ms

--- 210.210.1.3 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.050/0.050/0.050/0.000 ms

# 7.2 ns210网络直接ping 210.210.1.2, 可达
> ip netns exec ns210 ping 210.210.1.2 -c 1
PING 210.210.1.2 (210.210.1.2) 56(84) bytes of data.
64 bytes from 210.210.1.2: icmp_seq=1 ttl=64 time=0.044 ms

--- 210.210.1.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.044/0.044/0.044/0.000 ms


# 7.3 ns210网络直接ping 10.0.4.95(宿主机器eth0的 ip), 默认不可达
# 7.3.1 
> ip netns exec ns210 ping 10.0.4.95 -c 1
connect: 网络不可达

# 10.0.4.95 网段并不是210.210.1.0/24 且无 路由,所以网络不可达,可路由信息,
> ip netns exec ns210 route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
210.210.1.0     0.0.0.0         255.255.255.0   U     0      0        0 veth211

#7.3.2 添加 10.0.4.0/24 子网路由
> ip netns exec ns210  ip route add 10.0.4.0/24 dev veth211

#7.3.2
> ip netns exec ns210 ping 10.0.4.95 -c 1
PING 10.0.4.95 (10.0.4.95) 56(84) bytes of data.
64 bytes from 10.0.4.95: icmp_seq=1 ttl=64 time=0.047 ms

--- 10.0.4.95 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.047/0.047/0.047/0.000 ms
  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值