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模式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/223389.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谷粒商城-商品服务-新增商品功能开发(商品图片无法展示问题没有解决)

在网关配置路由 - id: member_routeuri: lb://gulimemberpredicates:- Path/api/gulimember/**filters:- RewritePath/api/(?<segment>.*),/$\{segment}并将所有逆向生成的工程调式出来 获取分类关联的品牌 例如&#xff1a;手机&#xff08;分类&#xff09;-> 品…

采用SpringBoot框架+原生HTML、JS前后端分离模式开发和部署的电子病历编辑器源码(电子病历评级4级)

概述&#xff1a; 电子病历是指医务人员在医疗活动过程中,使用医疗机构信息系统生成的文字、符号、图表、图形、数据、影像等数字化信息,并能实现存储、管理、传输和重现的医疗记录,是病历的一种记录形式。 医院通过电子病历以电子化方式记录患者就诊的信息&#xff0c;包括&…

【智慧办公】如何让智能会议室的电子标签实现远程、批量更新信息?东胜物联网硬件网关让解决方案更具竞争力

近年来&#xff0c;为了减少办公耗能、节能环保、降本增效&#xff0c;越来越多的企业开始从传统的办公模式转向智慧办公。 以智能会议室为例&#xff0c;会议是企业业务中不可或缺的一部分&#xff0c;但在传统办公模式下&#xff0c;一来会议前行政人员需要提前准备会议材料…

助力打造清洁环境,基于YOLOv4开发构建公共场景下垃圾堆放垃圾桶溢出检测识别系统

公共社区环境生活垃圾基本上是我们每个人每天几乎都无法避免的一个问题&#xff0c;公共环境下垃圾投放点都会有固定的值班时间&#xff0c;但是考虑到实际扔垃圾的无规律性&#xff0c;往往会出现在无人值守的时段内垃圾堆放垃圾桶溢出等问题&#xff0c;有些容易扩散的垃圾比…

【数据结构入门精讲 | 第十篇】考研408排序算法专项练习(二)

在上文中我们进行了排序算法的判断题、选择题的专项练习&#xff0c;在这一篇中我们将进行排序算法中编程题的练习。 目录 编程题R7-1 字符串的冒泡排序R7-1 抢红包R7-1 PAT排名汇总R7-2 统计工龄R7-1 插入排序还是堆排序R7-2 龙龙送外卖R7-3 家谱处理 编程题 R7-1 字符串的冒…

SpringSecurity深度解析与实践(3)

这里写自定义目录标题 引言SpringSecurity之授权授权介绍java权限集成 登录失败三次用户上锁 引言 SpringSecurity深度解析与实践&#xff08;2&#xff09;的网址 SpringSecurity之授权 授权介绍 Spring Security 中的授权分为两种类型&#xff1a; 基于角色的授权&#…

LV.13 D6 Linux内核安装及交叉编译 学习笔记

一、tftp加载Linux内核及rootfs 1.1 uboot内核启动命令 bootm 启动指定内存地址上的Linux内核并为内核传递参数 bootm kernel-addr ramdisk-addr dtb-addr 注: kernel-addr: 内核的下载地址 ramdisk-addr: 根文件系统的下载地址 …

.Net 访问电子邮箱-LumiSoft.Net,好用

序言&#xff1a; 网上找了很多关于.Net如何访问电子邮箱的方法&#xff0c;但是大多数都达不到想要的需求&#xff0c;只有一些 收发邮件。因此 花了很大功夫去看 LumiSoft.Net.dll 的源码&#xff0c;总算做出自己想要的结果了&#xff0c;果然学习诗人进步。 介绍&#xff…

使用@jiaminghi/data-view实现一个数据大屏

<template><div class"content bg"><!-- 全局容器 --><!-- <dv-full-screen-container> --><!-- 第二行 --><div class"module-box" style"align-items: start; margin-top: 10px"><!-- 左 -->…

redis基本用法学习(C#调用CSRedisCore操作redis)

除了NRedisStack包&#xff0c;csredis也是常用的redis操作模块&#xff08;从EasyCaching提供的常用redis操作包来看&#xff0c;CSRedis、freeredis、StackExchange.Redis应该都属于常用redis操作模块&#xff09;&#xff0c;本文学习使用C#调用CSRedis包操作redis的基本方式…

C# WPF上位机开发(从demo编写到项目开发)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 C# WPF编程&#xff0c;特别是控件部分&#xff0c;其实学起来特别快。只是后面多了多线程、锁、数据库、网络这部分稍微复杂一点&#xff0c;不过…

交通流预测 | Matlab基于KNN-BiLSTM的交通流预测(对比SVR、LSTM、GRU、KNN-LSTM)

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 交通流预测 | Matlab基于KNN-BiLSTM的交通流预测&#xff08;对比SVR、LSTM、GRU、KNN-LSTM&#xff09; 程序设计 完整程序和数据获取方式&#xff1a;私信博主回复Matlab基于KNN-BiLSTM的交通流预测&#xff08;对…

oracle即时客户端(Instant Client)安装与配置

之前的文章记录了oracle客户端和服务端的下载与安装&#xff0c;内容参见&#xff1a; 在Windows中安装Oracle_windows安装oracle 如果不想安装oracle客户端&#xff08;或者是电脑因为某些原因无法安装oracle客户端&#xff09;&#xff0c;还想能够连接oracle远程服务&#…

网络安全行业术语

病毒 是在计算机程序中插入的破坏计算机功能或者数据的代码&#xff0c;能影响计算机使用&#xff0c;能自我复制的一组计算机指令或者程序代码。 抓鸡 利用使用大量的程序的漏洞&#xff0c;使用自动化方式获取肉鸡的行为&#xff0c;即设法控制电脑&#xff0c;将其沦为肉…

【银行测试】银行金融测试+金融项目测试点汇总...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、银行金融测试是…

OpenCV | 霍夫变换:以车道线检测为例

霍夫变换 霍夫变换只能灰度图&#xff0c;彩色图会报错 lines cv2.HoughLinesP(edge_img,1,np.pi/180,15,minLineLength40,maxLineGap20) 参数1&#xff1a;要检测的图片矩阵参数2&#xff1a;距离r的精度&#xff0c;值越大&#xff0c;考虑越多的线参数3&#xff1a;距离…

制造行业定制软件解决方案——工业信息采集平台

摘要&#xff1a;针对目前企业在线检测数据信号种类繁多&#xff0c;缺乏统一监控人员和及时处置措施等问题。蓝鹏测控开发针对企业工业生产的在线数据的集中采集分析平台&#xff0c;通过该工业信息采集平台可将企业日常各种仪表设备能够得到数据进行集中分析处理存储&#xf…

操作系统 day17(读者-写者问题、哲学家进餐问题)

读者-写者问题 分析 读者优先的代码实现 若不对count采用互斥操作&#xff0c;那么会导致读者进程之间存在&#xff1a;某个读者进程阻塞在P(rw)中&#xff0c;且它需要等到最后一个读者进程解锁V(rw)才能被唤醒&#xff0c;这很影响系统效率&#xff0c;如果我们对count进行…

STM32软硬件CRC测速对比

硬件CRC配置 以及软硬件CRC速度对比 使用CUBEMX配置默认使用的是CRC32&#xff0c;从库中可以看出这一点 HAL库提供了以下两个计算函数 HAL_CRC_Accumulate(CRC_HandleTypeDef *hcrc, uint32_t pBuffer[], uint32_t BufferLength); 这个函数用于在已有的CRC校验结果的基础上累积…

案例149:基于微信小程序的家庭财务管理系统的设计与实现

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…