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.mzph.cn/news/241240.shtml

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

相关文章

Vue如何请求接口——axios请求

1、安装axios 在cmd或powershell打开文件后&#xff0c;输入下面的命令 npm install axios 可在项目框架中的package.json中查看是否&#xff1a; 二、引用axios import axios from axios 在需要使用的页面中引用 三、get方式使用 get请求使用params传参,本文只列举常用参数…

山西电力市场日前价格预测【2023-12-24】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-12-24&#xff09;山西电力市场全天平均日前电价为324.41元/MWh。其中&#xff0c;最高日前电价为456.41元/MWh&#xff0c;预计出现在18:00。最低日前电价为0.00元/MWh&#xff0c;预计出…

thinkphp+vue+mysql酒店客房管理系统 b1g8z

本系统包括前台界面、用户界面和管理员界面、员工界面。在前台界面里游客和用户可以浏览客房信息、公告信息等&#xff0c;用户可以预定客房&#xff0c;在用户中心界面里&#xff0c;用户可以管理预定信息&#xff0c;管理员负责用户预定的审核以及客房的发布、用户的入住等。…

PHP开发案例:用PHP写一个简单的蜘蛛统计代码

在前面的文章中我们已经学习了怎么来识别蜘蛛(搜素引擎的爬虫),现在我们来运用我们学习到的知识写一个简单的程序。当然你必须在你需要统计的页面引入spider.php,否则是无法统计到的哦! 一、spider.php <?php function spider(){ $spider=0;//首先定义蜘蛛的默认值为…

要参加微软官方 Copilot 智能编程训练营了

GitHub Copilot 是由 GitHub、OpenAI 和 Microsoft 联合开发的生成式 AI 模型驱动的。 GitHub Copilot 分析用户正在编辑的文件及相关文件的上下文&#xff0c;并在编写代码时提供自动补全式的建议。 刚好下周要参加微软官方组织的 GitHub Copilot 工作坊-智能编程训练营&…

操作系统——进程管理算法和例题

1、概述 1.1 进程调度 当进程的数量往往多于处理机的个数&#xff0c;出现进程争用处理机的现象&#xff0c;处理机调度是对处理机进行分配&#xff0c;就是从就绪队列中&#xff0c;按照一定的算法&#xff08;公平、髙效&#xff09;选择一个进程并将处理机分配给它运行&am…

图像识别中的 Vision Transformers (ViT)

引言 Vision Transformers (ViT) 最近已成为卷积神经网络(CNN) 的竞争替代品&#xff0c;而卷积神经网络 (CNN) 目前在不同的图像识别计算机视觉任务中处于最先进的水平。ViT 模型在计算效率和准确性方面比当前最先进的 (CNN) 模型高出近 4 倍。 Transformer 模型已成为自然语…

【Vulnhub 靶场】【Corrosion: 1】【简单】【20210731】

1、环境介绍 靶场介绍&#xff1a;https://www.vulnhub.com/entry/corrosion-1,730/ 靶场下载&#xff1a;https://download.vulnhub.com/corrosion/Corrosion.ova 靶场难度&#xff1a;简单 发布日期&#xff1a;2021年07月31日 文件大小&#xff1a;7.8 GB 靶场作者&#xf…

【C++】bind绑定包装器全解(代码演示,例题演示)

前言 大家好吖&#xff0c;欢迎来到 YY 滴C系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的《Linux》…

5.OpenResty系列之深入理解(一)

本文基于Centos8进行实践&#xff0c;请读者自行安装OpenResty。 1. 内部调用 进入默认安装路径 cd /usr/local/openresty/nginx/conf vim nginx.conflocation /sum {# 只允许内部调用internal;content_by_lua_block {local args ngx.req.get_uri_args()ngx.print(tonumber…

java进阶学习笔记

学习java深度学习&#xff0c;提升编程思维&#xff0c;适合掌握基础知识的工作者学习 1.反射和代理1.1 概念介绍1.2应用场景1.3 反射-reflect1.3.1 获得类-Class1.3.2 获得类的字段-Field1.3.3 动态访问和修改对象实例的字段1.3.4 获得类方法-Method1.3.5 调用方法.invoke1.3.…

评论回复功能数据库设计

1. 评论的场景 类似csdn博客评论 2. 建表sql CREATE TABLE comment (id varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT id,parent_id varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 父级评论id&#xff08;…

Kubernetes pod ip 暴露

1. k8s pod 和 service 网络暴露 借助 iptables 的路由转发功能&#xff0c;打通k8s集群内的pod和service网络&#xff0c;与外部网络联通 # 查看集群的 pod 网段和 service 网段 kubectl -n kube-system describe cm kubeadm-config networking:dnsDomain: cluster.localpod…

Vue2和Vue3组件间通信方式汇总(2)------$emit

组件间通信方式是前端必不可少的知识点&#xff0c;前端开发经常会遇到组件间通信的情况&#xff0c;而且也是前端开发面试常问的知识点之一。接下来开始组件间通信方式第二弹------$emit,并讲讲分别在Vue2、Vue3中的表现。 Vue2Vue3组件间通信方式汇总&#xff08;1&#xff0…

JavaEE进阶学习:Spring MVC 程序开发

1.什么是 Spring MVC Spring Web MVC 是基于Servlet API 构建的原始 Web 框架&#xff0c;从一开始就包含在Spring 框架中。它的正式名称 “Spring Web MVC” 来自其源模块的名称(Spring-webmvc)&#xff0c;但它通常被称为“Spring MVC”。 从上述定义我们可以得出两个关键信…

如何改善与 Next Paint (INP) 的交互

但谷歌也会关注访问者到达后你的网站体验有多好。 在过去的几年里&#xff0c;谷歌已经彻底改变了哪些页面体验信号被收集并用作排名因素。 在引入核心网络指标后&#xff0c;谷歌逐渐调整了它们的衡量方式&#xff0c;以便更好地反映真实的用户体验。 然而&#xff0c;随着…

Unity中获取时间戳、日期、时间、毫秒、秒以相互转换、自定义格式时间

Unity中获取时间戳、日期、时间、毫秒、秒以相互转换、自定义格式时间 介绍时间戳是什么什么时候用时间戳 获取时间获取当前时间获取时间戳日期转时间戳时间戳转日期将时间戳转换为多久之前星期自定义格式时间 总结 介绍 这里附带一个时间戳和时间转换的网址 时间戳是什么 时…

【Spring实战】01 配置单数据源

文章目录 1. 定义2. 准备3. 打印连接信息4. 实战1&#xff09;创建表2&#xff09;添加数据3&#xff09;查询数据3&#xff09;执行 5. 详细代码总结 在我们常见的应用程序中&#xff0c;与数据库的交互是不可避免的一部分。Spring 提供了简单而强大的数据访问抽象&#xff0c…

九州金榜|家庭教育幼小衔接家长如何做?

孩子从幼儿园升入小学&#xff0c;很多家长会非常忧虑&#xff0c;进入小学便是孩子学校生涯正式开始&#xff0c;这个阶段作为家长会非常焦虑&#xff0c;会考虑孩子能不能适应小学生活&#xff1f;学习跟不跟得上&#xff0c;一般这个时候&#xff0c;大部分家长就会考虑给孩…

数值分析期末复习

第一章 科学计算 误差 解题步骤 先求绝对误差: ∣ x − x ∗ ∣ |x - x^*| ∣x−x∗∣求相对误差限: ∣ x − x ∗ ∣ x ∗ \frac{|x\,\,-\,\,x^*|}{x^*} x∗∣x−x∗∣​求有效数字 ∣ x − x ∗ ∣ 需要小于它自身的半个单位 |x-x^*|\text{需要小于它自身的半个单位} ∣…