Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我不能在桥接模式下在两个兄弟姐妹之间切换?

为什么我不能在桥接模式下在两个兄弟姐妹之间切换?
EN

Unix & Linux用户
提问于 2020-08-01 06:42:50
回答 1查看 596关注 0票数 0

在一台连接到我家LAN的Ubuntu20.04机器上,我在以太网设备下创建了macvlan:

代码语言:javascript
运行
AI代码解释
复制
$ sudo ip link add macvlan1 link enp37s0 type macvlan mode bridge
$ sudo dhclient macvlan1
$ sudo ip link add macvlan2 link enp37s0 type macvlan mode bridge
$ sudo dhclient macvlan2

他们偶然从DHCP获得以下地址:

  • macvlan1: 192.168.0.40
  • macvlan2: 192.168.0.41

我可以把我的路由器从他们每一个:

代码语言:javascript
运行
AI代码解释
复制
$ ping 192.168.0.1 -I macvlan1
PING 192.168.0.1 (192.168.0.1) from 192.168.0.40 macvlan1: 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=0.713 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=1.25 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=1.20 ms
^C
--- 192.168.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2034ms
rtt min/avg/max/mdev = 0.713/1.052/1.245/0.240 ms

$ ping 192.168.0.1 -I macvlan2
PING 192.168.0.1 (192.168.0.1) from 192.168.0.41 macvlan2: 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=1.15 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=1.13 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=1.07 ms
64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=0.548 ms
64 bytes from 192.168.0.1: icmp_seq=5 ttl=64 time=0.619 ms
^C
--- 192.168.0.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4030ms
rtt min/avg/max/mdev = 0.548/0.903/1.148/0.263 ms

由于它们是在桥模式下创建的,因此虚拟设备应该相互连接。但我不能从另一个人中选择一个:

代码语言:javascript
运行
AI代码解释
复制
$ ping 192.168.0.40 -I macvlan2
PING 192.168.0.40 (192.168.0.40) from 192.168.0.41 macvlan2: 56(84) bytes of data.
^C
--- 192.168.0.40 ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4128ms

$ ping 192.168.0.41 -I macvlan1
PING 192.168.0.41 (192.168.0.41) from 192.168.0.40 macvlan1: 56(84) bytes of data.
^C
--- 192.168.0.41 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2039ms

为什么我不能从另一个人中选择一个?怎么解决这个问题?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-08-01 08:37:37

Linux内核检测带有本地源地址的传入数据包,认为它们是路由错误(特定计算机发送的数据包永远不会返回),并丢弃数据包以防止网络泛滥。

尝试将每个macvlan放到不同的网络命名空间中(毕竟,macvlan被设计用于从网络名称空间中使用)。那就应该管用了。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/602384

复制
相关文章

相似问题

使用jq在nth元素之前选择元素。

20

为什么在使用“插入之前()”时需要引用元素的父元素?

10

在文本选择之前/之后添加元素

25

在某些元素之前添加元素

30

在元素之前选择同级

114
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档