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 1000
    inet 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 1000
    link/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 1000
    link/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 1000
    link/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 1000
    link/ether c6:83:c9:d6:6a:b4 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.211.55.101/24 scope global enp0s5.101
       valid_lft forever preferred_lft forever
    inet6 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 1000
    link/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 1000
    link/ether 52:c6:89:d2:87:73 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.211.55.102/24 scope global enp0s5.102
       valid_lft forever preferred_lft forever
    inet6 fdb2:2c26:f4e4:0:50c6:89ff:fed2:8773/64 scope global mngtmpaddr dynamic 
       valid_lft 2591994sec preferred_lft 604794sec
    inet6 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 1000
    link/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 1000
    link/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 1000
    link/ether ae:7d:a9:97:13:e1 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.211.55.111/24 scope global enp0s5.111
       valid_lft forever preferred_lft forever
    inet6 fdb2:2c26:f4e4:0:ac7d:a9ff:fe97:13e1/64 scope global mngtmpaddr dynamic 
       valid_lft 2591930sec preferred_lft 604730sec
    inet6 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 1000
    link/ether ee:2e:82:69:b5:66 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.211.55.112/24 scope global enp0s5.112
       valid_lft forever preferred_lft forever
    inet6 fdb2:2c26:f4e4:0:ec2e:82ff:fe69:b566/64 scope global mngtmpaddr dynamic 
       valid_lft 2591822sec preferred_lft 604622sec
    inet6 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 1000
    link/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 1000
    link/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 1000
    link/ether 5a:3a:26:f1:72:c5 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.211.55.121/24 scope global enp0s5.121
       valid_lft forever preferred_lft forever
    inet6 fdb2:2c26:f4e4:0:583a:26ff:fef1:72c5/64 scope global mngtmpaddr dynamic 
       valid_lft 2591839sec preferred_lft 604639sec
    inet6 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 1000
    link/ether f6:16:e0:70:79:99 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.211.55.122/24 scope global enp0s5.122
       valid_lft forever preferred_lft forever
    inet6 fdb2:2c26:f4e4:0:f416:e0ff:fe70:7999/64 scope global mngtmpaddr dynamic 
       valid_lft 2591925sec preferred_lft 604725sec
    inet6 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.mfbz.cn/a/266580.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python遥感影像深度学习指南(1)-使用卷积神经网络(CNN、U-Net)和 FastAI进行简单云层检测

【遥感影像深度学习】系列的第一章,Python遥感影像深度学习的入门课程,介绍如何使用卷积神经网络(CNN)从卫星图像中分割云层 1、数据集 在本项目中,我们将使用 Kaggle 提供的 38-Cloud Segmentation in Satellite Images数据集。 该数据集由裁剪成 384x384 (适用…

十八、本地配置Hive

1、配置MYSQL mysql> alter user rootlocalhost identified by Yang3135989009; Query OK, 0 rows affected (0.00 sec)mysql> grant all on *.* to root%; Query OK, 0 rows affected (0.00 sec)mysql> flush privileges; Query OK, 0 rows affected (0.01 sec)2、…

Web前端 ---- 【Vue】vue路由守卫(全局前置路由守卫、全局后置路由守卫、局部路由path守卫、局部路由component守卫)

目录 前言 全局前置路由守卫 全局后置路由守卫 局部路由守卫之path守卫 局部路由守卫之component守卫 前言 本文介绍Vue2最后的知识点&#xff0c;关于vue的路由守卫。也就是鉴权&#xff0c;不是所有的组件任何人都可以访问到的&#xff0c;需要权限&#xff0c;而根据权限…

深度学习 | 梯度下降算法及其变体

一、最优化与深度学习 1.1、训练误差与泛化误差 1.2、经验风险 1.3、优化中的挑战 1.3.1、局部最小值 1.3.2、 鞍点 经常是由于模型复杂度过高或者训练样本数据过少造成的 —— Overfitting 1.3.3、悬崖 1.3.4、长期依赖问题 二、损失函数 2.1、损失函数的起源 损失函数(loss…

【prompt一】Domain Adaptation via Prompt Learning

1.Motivation 当前的UDA方法通过对齐源和目标特征空间来学习域不变特征。这种对齐是由诸如统计差异最小化或对抗性训练等约束施加的。然而&#xff0c;这些约束可能导致语义特征结构的扭曲和类可辨别性的丧失。 在本文中&#xff0c;引入了一种新的UDA提示学习范式&#xff0…

蓝牙物联网在汽车领域的应用

I、蓝牙的技术特点 ​ 1998 年 5 月&#xff0c;瑞典爱立信、芬兰诺基亚、日本东芝、美国IBM 和英特尔公司五家著名厂商&#xff0c;在联合拓展短离线通信技术的标准化活动时提出了蓝牙技术的概念。蓝牙工作在无需许可的 2.4GHz 工业频段 (SIM)之上(我国的频段范围为2400.0~248…

计算机毕业设计 基于SpringBoot的房屋租赁管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

flutter 实战 之 dio小实践

我们要对dio进行封装 class HttpRequest {static Future request(String url,{String method "get",Map<String,dynamic>? params})async{// 创建dio实例BaseOptions baseOptions BaseOptions(baseUrl: base_url,connectTimeout: Duration(seconds: 1));fi…

STM32软硬件CRC测速对比

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

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

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

【线性代数】决定张成空间的最少向量线性无关吗?

答1&#xff1a; 是的&#xff0c;张成空间的最少向量是线性无关的。 在数学中&#xff0c;张成空间&#xff08;span space&#xff09;是一个向量空间&#xff0c;它由一组向量通过线性组合&#xff08;即每个向量乘以一个标量&#xff09;生成。如果这组向量是线性无关的&…

HP笔记本电脑进入BIOS的方法主要有两种,它们使用场合不同

BIOS&#xff08;基本输入输出系统&#xff09;是一种实用程序&#xff0c;它在你按下电源按钮后启动并加载操作系统。无论是要更新HP笔记本电脑的BIOS系统&#xff0c;还是清除前一个系统中的错误&#xff0c;第一步都是进入BIOS实用程序。 在按键输入BIOS设置并对其进行修改…

react中使用redux最简单最方便的方式,配合rematch简化操作,5分钟学会

react中使用状态管理的方式也很多&#xff0c;比如redux和mobx等&#xff0c;今天这一片就讲一下redux的入门到熟练使用&#xff0c;主要是要理解它redux的组成有哪些&#xff0c;到怎么创建&#xff0c;和组建中怎么使用三个问题。这里先放上官网文档&#xff0c;不理解的地方…

电子病历编辑器源码,提供电子病历在线制作、管理和使用的一体化电子病历解决方案

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

Pytest测试中的临时目录与文件管理!

在Pytest测试框架中&#xff0c;使用临时目录与文件是一种有效的测试管理方式&#xff0c;它能够确保测试的独立性和可重复性。在本文中&#xff0c;我们将深入探讨如何在Pytest中利用临时目录与文件进行测试&#xff0c;并通过案例演示实际应用。 为什么需要临时目录与文件&am…

蓝牙物联网室内定位系统解决方案

目前国内外室内定位技术较多&#xff0c;常见的有无线局域网(Wireless Fidelity,WiFi)、射频识别(Radio FrequencyIdentification,RFID)、蓝牙低功耗(Bletooth Low EnergyBLE)、超宽带(Ultra Wide BandUWB)技术等。近几年智能设备的迅速发展和蓝牙设备的生产制造成本越来越低&a…

Hadoop入门学习笔记——六、连接到Hive

视频课程地址&#xff1a;https://www.bilibili.com/video/BV1WY4y197g7 课程资料链接&#xff1a;https://pan.baidu.com/s/15KpnWeKpvExpKmOC8xjmtQ?pwd5ay8 Hadoop入门学习笔记&#xff08;汇总&#xff09; 目录 六、连接到Hive6.1. 使用Hive的Shell客户端6.2. 使用Beel…

ABC334 A-F

打的很懒的一场B卡了D看不懂题卡了F没看完题目理解错题意了&#xff0c;状态好差XD UNIQUE VISION Programming Contest 2023 Christmas (AtCoder Beginner Contest 334) - AtCoder A - Christmas Present 题意&#xff1a; 给出两个数B, G问哪个大 题解&#xff1a; 凑数…

nodejs微信小程序+python+PHP计算机网络在线考试系统-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

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

前面几篇文章介绍的是排序算法&#xff0c;现在让我们开始排序算法的专项练习。 目录 判断题选择题填空题1.插入排序2.另类选择排序3.冒泡排序4.快速查找第K大元 判断题 1.希尔排序是稳定的算法。&#xff08;错&#xff09; 解析&#xff1a;稳定性是指如果两个元素在排序前后…
最新文章