Linux创建macvlan 测试bridge、private和vepa模式

2023-12-24 14:15

本文主要是介绍Linux创建macvlan 测试bridge、private和vepa模式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Linux创建macvlan,测试bridge、private和vepa模式
最近在看Docker的网络,看到关于macvlan网络的介绍。查阅了相关资料,记录如下。

参考

1.Linux Macvlan
2.图解几个与Linux网络虚拟化相关的虚拟网卡-VETH/MACVLAN/MACVTAP/IPVLAN

环境

操作系统

Centos7.9

MACVALN 介绍

本章节内容引自参考链接2.图解几个与Linux网络虚拟化相关的虚拟网卡-VETH/MACVLAN/MACVTAP/IPVLAN

MACVLAN虚拟网卡技术

MACVLAN技术可谓是提出一种将一块以太网卡虚拟成多块以太网卡的极简单的方案。一块以太网卡需要有一个MAC地址,这就是以太网卡的核心中的核心。
以往,我们只能为一块以太网卡添加多个IP地址,却不能添加多个MAC地址,因为MAC地址正是通过其全球唯一性来标识一块以太网卡的,即便你使用了创建ethx:y这样的方式,你会发现所有这些“网卡”的MAC地址和ethx都是一样的,本质上,它们还是一块网卡,这将限制你做很多二层的操作。有了MACVLAN技术,你可以这么做了。
我们先来看一下MACVLAN技术的流程示意图:
在这里插入图片描述
在具体的执行上,通过下面的命令,你可以创建一个MACVLAN网卡,它是基于eth0虚拟出来的:
ip link add link eth0 name macv1 type macvlan
你可以认为有人将双绞线“物理上”每根一分为二,接了两个水晶头,从而连接了两块网卡,其中一块是虚拟的MACVLAN网卡。但是既然共享介质,难道不用运行CSMA/CD吗?当然不用,因为事实上,最终的数据是通过eth0发出的,而现代的以太网卡工作的全双工模式,只要是交换式全双工(某些标准而言,这是必须的),eth0自己能做好。
现在可以说一下MACVLAN技术构建的虚拟网卡的模式了。之所以MACVLAN拥有所谓的模式,是因为相比VETH,它更是将复杂性建立在了一个已经容不下什么的以太网概念上,因此相互交互的元素就会太多,它们之间的关系不同,导致最终MACVLAN的行为不同。还是图解的方式:

1.bridge模式

在这里插入图片描述

这个bridge只是针对同属于一块宿主以太网卡的MACVLAN网卡以及宿主网卡之间的通信行为的,与外部通信无关。所谓的bridge指的是在这些网卡之间,数据流可以实现直接转发,不需要外部的协助,这有点类似于Linux BOX内建了一个bridge,即用brctl命令所做的那一切。

2.VEPA模式

在这里插入图片描述

VEPA模式我后面会专门讲。现在要知道的是,在VEPA模式下,即使是MACVLANeth1和MACVLANeth2同时配在在eth0上,它们两者之间的通信也不能直接进行,而必须通过与eth0相连的外部的交换机协助,这通常是一个支持“发夹弯”转发的交换机。

3.private模式

在这里插入图片描述
这种private模式的隔离强度比VEPA更强。在private模式下,即使是MACVLANeth1和MACVLANeth2同时配在在eth0上,eth0连接了外部交换机S,S支持“发夹弯”转发模式,即便这样,MACVLANeth1的广播/多播流量也无法到达MACVLANeth2,反之亦然,之所以隔离广播流量,是因为以太网是基于广播的,隔离了广播,以太网将失去了依托。

MACVALN 测试

通过Linux 命令创建两个macvlan子网卡,分别加入两个网络命名空间(namespace),测试同一父网卡的两个子macvlan网卡在bridge、private和vepa模式下的网络通讯。

在这里插入图片描述

1. 安装包

安装测试环境需要的包

[root@centos7-10 ~]# yum install -y net-tools iputils telnet traceroute iproute bridge-utils NetworkManager 
  • net-tools:netstat命令
  • iputils:ping命令
  • telnet:telnet命令
  • traceroute:traceroute命令
  • iproute:ip命令
  • bridge-utils:brctl命令
  • NetworkManager 网络管理命令

如果是ubuntu 命令如下:

apt install -y net-tools inetutils-ping telnet traceroute iproute2 bridge-utils network-manager

2. 配置网卡混杂模式(promisc)

macvlan网络需要打开网卡的混杂模式

  • 物理网卡:enp0s5
[root@centos7-18 ~]# ip link set enp0s5 promisc on
[root@centos7-18 ~]# 
[root@centos7-18 ~]# ip a | grep  "enp0s5"
2: enp0s5: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000inet 10.211.55.18/24 brd 10.211.55.255 scope global enp0s5

3. 创建namespace

创建两个网络命名空间(namespace)用于隔离两块macvlan子网卡

3.1 创建namespace

// 创建namespace ns1和ns2
[root@centos7-18 ~]# ip netns add ns1
[root@centos7-18 ~]# ip netns add ns2
[root@centos7-18 ~]# 
[root@centos7-18 ~]# ip netns list
ns2
ns1
[root@centos7-18 ~]# 

4. 测试macvlan网络通讯

测试macvlan的bridge、private和vepa模式。

4.1 测试macvlan bridege模式

4.1.1 创建macvlan(bridge)

  • 创建macvlan
    • enp0s5.101 macvlan mode 是bridge
    • enp0s5.102 macvlan mode 是bridge
// 创建两个macvlan网卡,模式bridge
[root@centos7-18 ~]# ip link add link enp0s5 name enp0s5.101 type macvlan mode bridge
[root@centos7-18 ~]# ip link add link enp0s5 name enp0s5.102 type macvlan mode bridge
  • 查看创建结果
[root@centos7-18 ~]# ip a | grep -A2 "enp0s5\."
8: enp0s5.101@enp0s5: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether ba:9e:8b:60:84:ea brd ff:ff:ff:ff:ff:ff
9: enp0s5.102@enp0s5: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether 1a:97:08:af:84:b2 brd ff:ff:ff:ff:ff:ff

4.1.2 将两个macvlan bridege 网卡加入不同namespace

[root@centos7-18 ~]# ip link set enp0s5.101 netns ns1
[root@centos7-18 ~]# 
[root@centos7-18 ~]# ip link set enp0s5.102 netns ns2
[root@centos7-18 ~]# 

4.1.3 分别配置IP、promisc 并启用网卡

  • 配置ns1下的 enp0s5.101(macvlan bridge)
    • 配置网卡IP 10.211.55.101
    • 配置网卡混杂模式 promisc
    • 配置网卡 up
// 配置网卡IP 10.211.55.101
[root@centos7-18 ~]# ip netns exec ns1 ip address add 10.211.55.101/24 dev enp0s5.101
// 配置网卡混杂模式 promisc
[root@centos7-18 ~]# ip netns exec ns1 ip link set enp0s5.101 promisc on
// 配置网卡 up
[root@centos7-18 ~]# ip netns exec ns1 ip link set enp0s5.101 up
[root@centos7-18 ~]# 
// 查看网卡信息
[root@centos7-18 ~]# ip netns exec ns1 ip a
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
12: enp0s5.101@if2: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether c6:83:c9:d6:6a:b4 brd ff:ff:ff:ff:ff:ff link-netnsid 0inet 10.211.55.101/24 scope global enp0s5.101valid_lft forever preferred_lft foreverinet6 fe80::c483:c9ff:fed6:6ab4/64 scope link valid_lft forever preferred_lft forever
  • 配置ns2下的 enp0s5.102(macvlan bridge)
    • 配置网卡IP 10.211.55.102
    • 配置网卡混杂模式 promisc
    • 配置网卡 up
// 配置网卡IP 10.211.55.102
[root@centos7-18 ~]# ip netns exec ns2 ip address add 10.211.55.102/24 dev enp0s5.102
// 配置网卡混杂模式 promisc
[root@centos7-18 ~]# ip netns exec ns2 ip link set enp0s5.102 promisc on
// 配置网卡 up
[root@centos7-18 ~]# ip netns exec ns2 ip link set enp0s5.102 up
[root@centos7-18 ~]# 
// 查看网卡信息
[root@centos7-18 ~]# ip netns exec ns2 ip a
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
13: enp0s5.102@if2: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether 52:c6:89:d2:87:73 brd ff:ff:ff:ff:ff:ff link-netnsid 0inet 10.211.55.102/24 scope global enp0s5.102valid_lft forever preferred_lft foreverinet6 fdb2:2c26:f4e4:0:50c6:89ff:fed2:8773/64 scope global mngtmpaddr dynamic valid_lft 2591994sec preferred_lft 604794secinet6 fe80::50c6:89ff:fed2:8773/64 scope link valid_lft forever preferred_lft forever
[root@centos7-18 ~]# 

4.1.4 测试macvlan birdge下网络联通

在这里插入图片描述

  • 测试 ns1下enp0s5.101网络
    • Ping ns2下10.211.55.102(enp0s5.102),通
    • Ping 网络网关10.211.55.1,通
    • Ping 网络其他IP 10.211.55.10,通
    • Ping 父网卡10.211.55.18,不通
[root@centos7-18 ~]# ip netns exec ns1 ping -c2 10.211.55.102
PING 10.211.55.102 (10.211.55.102) 56(84) bytes of data.
64 bytes from 10.211.55.102: icmp_seq=1 ttl=64 time=0.045 ms
64 bytes from 10.211.55.102: icmp_seq=2 ttl=64 time=0.066 ms--- 10.211.55.102 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.045/0.055/0.066/0.012 ms
[root@centos7-18 ~]# ip netns exec ns1 ping -c2 10.211.55.1
PING 10.211.55.1 (10.211.55.1) 56(84) bytes of data.
64 bytes from 10.211.55.1: icmp_seq=1 ttl=128 time=0.156 ms
64 bytes from 10.211.55.1: icmp_seq=2 ttl=128 time=0.181 ms--- 10.211.55.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.156/0.168/0.181/0.018 ms
[root@centos7-18 ~]# ip netns exec ns1 ping -c2 10.211.55.10
PING 10.211.55.10 (10.211.55.10) 56(84) bytes of data.
64 bytes from 10.211.55.10: icmp_seq=1 ttl=64 time=0.276 ms
64 bytes from 10.211.55.10: icmp_seq=2 ttl=64 time=0.509 ms--- 10.211.55.10 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.276/0.392/0.509/0.118 ms
[root@centos7-18 ~]# ip netns exec ns1 ping -c2 10.211.55.18
PING 10.211.55.18 (10.211.55.18) 56(84) bytes of data.--- 10.211.55.18 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 999ms

4.2 测试macvlan private模式

4.2.1 创建macvlan(private)

  • 创建macvlan
    • enp0s5.111 macvlan mode 是private
    • enp0s5.112 macvlan mode 是private
// 删掉之前的配置,以免影响测试
[root@centos7-18 ~]# ip netns exec ns1 ip link del enp0s5.101
[root@centos7-18 ~]# ip netns exec ns2 ip link del enp0s5.102
// 创建两个macvlan网卡,模式private
[root@centos7-18 ~]# ip link add link enp0s5 name enp0s5.111 type macvlan mode private
[root@centos7-18 ~]# ip link add link enp0s5 name enp0s5.112 type macvlan mode private
  • 查看创建结果
[root@centos7-18 ~]# ip a | grep -A2 "enp0s5\."
16: enp0s5.111@enp0s5: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether ae:7d:a9:97:13:e1 brd ff:ff:ff:ff:ff:ff
17: enp0s5.112@enp0s5: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether ee:2e:82:69:b5:66 brd ff:ff:ff:ff:ff:ff
[root@centos7-18 ~]# 

4.2.2 将两个macvlan private 网卡加入不同namespace

[root@centos7-18 ~]# ip link set enp0s5.111 netns ns1
[root@centos7-18 ~]# 
[root@centos7-18 ~]# ip link set enp0s5.112 netns ns2
[root@centos7-18 ~]# 

4.2.3 分别配置IP、promisc 并启用网卡

  • 配置ns1下的 enp0s5.111(macvlan priviate)
    • 配置网卡IP 10.211.55.111
    • 配置网卡混杂模式 promisc
    • 配置网卡 up
// 配置网卡IP 10.211.55.111
[root@centos7-18 ~]# ip netns exec ns1 ip address add 10.211.55.111/24 dev enp0s5.111
// 配置网卡混杂模式 promisc
[root@centos7-18 ~]# ip netns exec ns1 ip link set enp0s5.111 promisc on
// 配置网卡 up
[root@centos7-18 ~]# ip netns exec ns1 ip link set enp0s5.111 up
[root@centos7-18 ~]# 
// 查看网卡信息
[root@centos7-18 ~]# ip netns exec ns1 ip a | grep -A5 enp0s5.111
16: enp0s5.111@if2: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether ae:7d:a9:97:13:e1 brd ff:ff:ff:ff:ff:ff link-netnsid 0inet 10.211.55.111/24 scope global enp0s5.111valid_lft forever preferred_lft foreverinet6 fdb2:2c26:f4e4:0:ac7d:a9ff:fe97:13e1/64 scope global mngtmpaddr dynamic valid_lft 2591930sec preferred_lft 604730secinet6 fe80::ac7d:a9ff:fe97:13e1/64 scope link valid_lft forever preferred_lft forever
[root@centos7-18 ~]# 
  • 配置ns2下的 enp0s5.112(macvlan private)
    • 配置网卡IP 10.211.55.112
    • 配置网卡混杂模式 promisc
    • 配置网卡 up
// 配置网卡IP 10.211.55.112
[root@centos7-18 ~]# ip netns exec ns2 ip address add 10.211.55.112/24 dev enp0s5.112
// 配置网卡混杂模式 promisc
[root@centos7-18 ~]# ip netns exec ns2 ip link set enp0s5.112 promisc on
// 配置网卡 up
[root@centos7-18 ~]# ip netns exec ns2 ip link set enp0s5.112 up
[root@centos7-18 ~]# 
// 查看网卡信息
[root@centos7-18 ~]# ip netns exec ns2 ip a | grep -A5 enp0s5.112
17: enp0s5.112@if2: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether ee:2e:82:69:b5:66 brd ff:ff:ff:ff:ff:ff link-netnsid 0inet 10.211.55.112/24 scope global enp0s5.112valid_lft forever preferred_lft foreverinet6 fdb2:2c26:f4e4:0:ec2e:82ff:fe69:b566/64 scope global mngtmpaddr dynamic valid_lft 2591822sec preferred_lft 604622secinet6 fe80::ec2e:82ff:fe69:b566/64 scope link valid_lft forever preferred_lft forever
[root@centos7-18 ~]# 

4.2.4 测试macvlan private下网络联通

在这里插入图片描述

  • 测试 ns2下enp0s5.112网络
    • Ping ns1下10.211.55.111(enp0s5.111),不通
    • Ping 网络网关10.211.55.1,通
    • Ping 网络其他IP 10.211.55.10,通
    • Ping 父网卡10.211.55.18,不通
// Ping ns1下10.211.55.111,不通
[root@centos7-18 ~]# ip netns exec ns2 ping -c2 10.211.55.111
PING 10.211.55.111 (10.211.55.111) 56(84) bytes of data.--- 10.211.55.111 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1000ms
// Ping 网络网关10.211.55.1,通
[root@centos7-18 ~]# ip netns exec ns2 ping -c2 10.211.55.1
PING 10.211.55.1 (10.211.55.1) 56(84) bytes of data.
64 bytes from 10.211.55.1: icmp_seq=1 ttl=128 time=0.165 ms
64 bytes from 10.211.55.1: icmp_seq=2 ttl=128 time=0.315 ms--- 10.211.55.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.165/0.240/0.315/0.075 ms
// Ping 网络其他IP 10.211.55.10,通
[root@centos7-18 ~]# ip netns exec ns2 ping -c2 10.211.55.10
PING 10.211.55.10 (10.211.55.10) 56(84) bytes of data.
64 bytes from 10.211.55.10: icmp_seq=1 ttl=64 time=0.289 ms
64 bytes from 10.211.55.10: icmp_seq=2 ttl=64 time=0.525 ms--- 10.211.55.10 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.289/0.407/0.525/0.118 ms
// Ping 父网卡10.211.55.18,不通
[root@centos7-18 ~]# ip netns exec ns2 ping -c2 10.211.55.18
PING 10.211.55.18 (10.211.55.18) 56(84) bytes of data.--- 10.211.55.18 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1000ms[root@centos7-18 ~]# 

4.3 测试macvlan vepa模式

4.3.1 创建macvlan(vepa)

  • 创建macvlan
    • enp0s5.121 macvlan mode 是vepa
    • enp0s5.122 macvlan mode 是vepa
// 删掉之前的配置,以免影响测试
[root@centos7-18 ~]# ip netns exec ns1 ip link del enp0s5.111
[root@centos7-18 ~]# ip netns exec ns2 ip link del enp0s5.112
// 创建两个macvlan网卡,模式vepa
[root@centos7-18 ~]# ip link add link enp0s5 name enp0s5.121 type macvlan mode vepa
[root@centos7-18 ~]# ip link add link enp0s5 name enp0s5.122 type macvlan mode vepa
  • 查看创建结果
[root@centos7-18 ~]# ip a | grep -A5 "enp0s5\."
18: enp0s5.121@enp0s5: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether 5a:3a:26:f1:72:c5 brd ff:ff:ff:ff:ff:ff
19: enp0s5.122@enp0s5: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether f6:16:e0:70:79:99 brd ff:ff:ff:ff:ff:ff
[root@centos7-18 ~]# 

4.3.2 将两个macvlan vepa 网卡加入不同namespace

[root@centos7-18 ~]# ip link set enp0s5.121 netns ns1
[root@centos7-18 ~]# ip link set enp0s5.122 netns ns2
[root@centos7-18 ~]# 

4.3.3 分别配置IP、promisc 并启用网卡

  • 配置ns1下的 enp0s5.121(macvlan vepa)
    • 配置网卡IP 10.211.55.121
    • 配置网卡混杂模式 promisc
    • 配置网卡 up
// 配置网卡IP 10.211.55.121
[root@centos7-18 ~]# ip netns exec ns1 ip address add 10.211.55.121/24 dev enp0s5.121
// 配置网卡混杂模式 promisc
[root@centos7-18 ~]# ip netns exec ns1 ip link set enp0s5.121 promisc on
// 配置网卡 up
[root@centos7-18 ~]# ip netns exec ns1 ip link set enp0s5.121 up
[root@centos7-18 ~]# 
// 查看网卡信息
[root@centos7-18 ~]# ip netns exec ns1 ip a | grep -A5 enp0s5.121
18: enp0s5.121@if2: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether 5a:3a:26:f1:72:c5 brd ff:ff:ff:ff:ff:ff link-netnsid 0inet 10.211.55.121/24 scope global enp0s5.121valid_lft forever preferred_lft foreverinet6 fdb2:2c26:f4e4:0:583a:26ff:fef1:72c5/64 scope global mngtmpaddr dynamic valid_lft 2591839sec preferred_lft 604639secinet6 fe80::583a:26ff:fef1:72c5/64 scope link valid_lft forever preferred_lft forever
[root@centos7-18 ~]# 
  • 配置ns2下的 enp0s5.122(macvlan vepa)
    • 配置网卡IP 10.211.55.122
    • 配置网卡混杂模式 promisc
    • 配置网卡 up
// 配置网卡IP 10.211.55.112
[root@centos7-18 ~]# ip netns exec ns2 ip address add 10.211.55.122/24 dev enp0s5.122
// 配置网卡混杂模式 promisc
[root@centos7-18 ~]# ip netns exec ns2 ip link set enp0s5.122 promisc on
// 配置网卡 up
[root@centos7-18 ~]# ip netns exec ns2 ip link set enp0s5.122 up
[root@centos7-18 ~]# 
// 查看网卡信息
[root@centos7-18 ~]# ip netns exec ns2 ip a | grep -A5 enp0s5.122
19: enp0s5.122@if2: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether f6:16:e0:70:79:99 brd ff:ff:ff:ff:ff:ff link-netnsid 0inet 10.211.55.122/24 scope global enp0s5.122valid_lft forever preferred_lft foreverinet6 fdb2:2c26:f4e4:0:f416:e0ff:fe70:7999/64 scope global mngtmpaddr dynamic valid_lft 2591925sec preferred_lft 604725secinet6 fe80::f416:e0ff:fe70:7999/64 scope link valid_lft forever preferred_lft forever
[root@centos7-18 ~]# 

4.3.4 测试macvlan vepa下网络联通

在这里插入图片描述

  • 测试 ns2下enp0s5.122网络
    • Ping ns1下10.211.55.121(enp0s5.121),原理是可以通,但我的网卡或交换不支持802.1q协议,造成测试不通(如想模拟测试,可以参考本文4.4章节)。
    • Ping 网络网关10.211.55.1,通
    • Ping 网络其他IP 10.211.55.10,通
    • Ping 父网卡10.211.55.18,不通
// Ping ns1下10.211.55.121,
// 原理是可以通,但我的网卡或交换不支持802.1q协议,造成测试不通
[root@centos7-18 ~]# ip netns exec ns2 ping -c2 10.211.55.121
PING 10.211.55.121 (10.211.55.121) 56(84) bytes of data.--- 10.211.55.121 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1000ms
// Ping 网络网关10.211.55.1,通
[root@centos7-18 ~]# ip netns exec ns2 ping -c2 10.211.55.1
PING 10.211.55.1 (10.211.55.1) 56(84) bytes of data.
64 bytes from 10.211.55.1: icmp_seq=1 ttl=128 time=0.280 ms
64 bytes from 10.211.55.1: icmp_seq=2 ttl=128 time=0.184 ms--- 10.211.55.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.184/0.232/0.280/0.048 ms
// Ping 网络其他IP 10.211.55.10,通
[root@centos7-18 ~]# ip netns exec ns2 ping -c2 10.211.55.10
PING 10.211.55.10 (10.211.55.10) 56(84) bytes of data.
64 bytes from 10.211.55.10: icmp_seq=1 ttl=64 time=0.504 ms
64 bytes from 10.211.55.10: icmp_seq=2 ttl=64 time=0.507 ms--- 10.211.55.10 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.504/0.505/0.507/0.022 ms
// Ping 父网卡10.211.55.18,不通
[root@centos7-18 ~]# ip netns exec ns2 ping -c2 10.211.55.18
PING 10.211.55.18 (10.211.55.18) 56(84) bytes of data.--- 10.211.55.18 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 999ms[root@centos7-18 ~]# 

4.4 Linux bridge 开启hairpin模拟测试macvlan vepa网络

因为交换不支持802.1q,可以采用Linux bridge开启hairpin方式,模拟测试macvlan vepa模式,方法详见我的另一篇文章,链接如下:

链接: Linux bridge开启hairpin模拟测试macvlan vepa模式

这篇关于Linux创建macvlan 测试bridge、private和vepa模式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/532041

相关文章

使用Python创建一个功能完整的Windows风格计算器程序

《使用Python创建一个功能完整的Windows风格计算器程序》:本文主要介绍如何使用Python和Tkinter创建一个功能完整的Windows风格计算器程序,包括基本运算、高级科学计算(如三... 目录python实现Windows系统计算器程序(含高级功能)1. 使用Tkinter实现基础计算器2.

windows和Linux使用命令行计算文件的MD5值

《windows和Linux使用命令行计算文件的MD5值》在Windows和Linux系统中,您可以使用命令行(终端或命令提示符)来计算文件的MD5值,文章介绍了在Windows和Linux/macO... 目录在Windows上:在linux或MACOS上:总结在Windows上:可以使用certuti

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

Linux之systemV共享内存方式

《Linux之systemV共享内存方式》:本文主要介绍Linux之systemV共享内存方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、工作原理二、系统调用接口1、申请共享内存(一)key的获取(二)共享内存的申请2、将共享内存段连接到进程地址空间3、将

使用Python和Pyecharts创建交互式地图

《使用Python和Pyecharts创建交互式地图》在数据可视化领域,创建交互式地图是一种强大的方式,可以使受众能够以引人入胜且信息丰富的方式探索地理数据,下面我们看看如何使用Python和Pyec... 目录简介Pyecharts 简介创建上海地图代码说明运行结果总结简介在数据可视化领域,创建交互式地

快速修复一个Panic的Linux内核的技巧

《快速修复一个Panic的Linux内核的技巧》Linux系统中运行了不当的mkinitcpio操作导致内核文件不能正常工作,重启的时候,内核启动中止于Panic状态,该怎么解决这个问题呢?下面我们就... 感谢China编程(www.chinasem.cn)网友 鸢一雨音 的投稿写这篇文章是有原因的。为了配置完

Nginx location匹配模式与规则详解

《Nginxlocation匹配模式与规则详解》:本文主要介绍Nginxlocation匹配模式与规则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、环境二、匹配模式1. 精准模式2. 前缀模式(不继续匹配正则)3. 前缀模式(继续匹配正则)4. 正则模式(大

Linux命令之firewalld的用法

《Linux命令之firewalld的用法》:本文主要介绍Linux命令之firewalld的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux命令之firewalld1、程序包2、启动firewalld3、配置文件4、firewalld规则定义的九大

Linux之计划任务和调度命令at/cron详解

《Linux之计划任务和调度命令at/cron详解》:本文主要介绍Linux之计划任务和调度命令at/cron的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux计划任务和调度命令at/cron一、计划任务二、命令{at}介绍三、命令语法及功能 :at

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文