被 Linux Bridge Networking 的工作原理困扰了

2020-02-24 22:53:32 +08:00
 fancy2020

当我们在 Linux 上创建一个 bridge 连接的虚拟机的时候,按照官方的文档,我们需要创建一个 bridge interface,然后给这个 bridge 分配 ip 地址。 我不理解的是为什么要给 bridge 分配 ip 地址。

我理解的在 Linux 中创建一个 bridge interface 就相当于创建了一个虚拟的交换机,真实的物理交换机是不需要有 ip 地址的,为什么在虚拟交换机(bridge)上就需要给它分配 IP 地址呢?

下面这个问题和我想问的东西一致,但答案并没有解决我的困扰: https://unix.stackexchange.com/questions/319979/why-assign-mac-and-ip-addresses-on-bridge-interface

我想我需要深入研究一下 Linux 内核中 bridge 到底是如何工作的

4790 次点击
所在节点    Linux
11 条回复
Yien
2020-02-24 22:58:32 +08:00
我这边在 Proxmox 下建立网桥,不分配 IP 也是可以的。
就当作交换机用。
hiplon
2020-02-24 23:00:52 +08:00
bridge 应该是相当于交换机+接口;类比一般交换机有 vlan 接口,有物理接口,给 bridge 分配地址想当于给交换机的接口分配地址。
Buges
2020-02-24 23:10:05 +08:00
你那篇回答讲的很清楚了:
A bridge device is a software switch, and each of its slave devices and the bridge itself are ports of the switch.

bridge 设备是一个虚拟的 interface,它是一个插到某个虚拟交换机上的接口,这个虚拟交换机上还插了其他你桥接到一起的设备。
关于 Linux 虚拟网卡原理介绍推荐这篇文章
https://fuckcloudnative.io/posts/netwnetwork-virtualization-macvlan/
feather12315
2020-02-24 23:37:04 +08:00
把它当成三层交换机
Enya
2020-02-24 23:43:13 +08:00
官方建议这么做,因为网卡的接入模式,除了作为 bridge 桥接,你同时还可以选择使用 NAT(在 virt-manager 的界面有的选),这样就会涉及到 ip 层的问题了,所以需要 ip 地址。如果你确实只是需要做为 bridge,没有 ip 也可以的,就直接当作插到大交换的一个小交换(但是 mac 地址一定要有)。
你提到的“真实的物理交换机是不需要有 ip 地址”,这个.。。。是有三层交换机这个概念啊,还有 7 层交换机呢。。。
doumeki
2020-02-25 00:09:44 +08:00
lc7029
2020-02-25 00:16:31 +08:00
网桥是一种虚拟设备,相当于具备弱三层功能的二层交换机,似乎说三层交换机也没错。你说的交换机不需要配置 IP 地址,是因为交换机是存储转发原理,上网的话 IP 在路由器上,交换机只管转发。
而网桥是不同的网段,这里就要引入广播域,通过三层设备连接不同的广播域,说白了是路由。
izoabr
2020-02-25 00:17:27 +08:00
你也可以不分配 IP 的呀
yingo
2020-02-25 12:31:46 +08:00
并不需要 ip 地址,但是 linux bridge 会自动获取被桥接设备(一般是网卡设备,也被称为 uplink)的 ip 地址.
julyclyde
2020-02-25 14:51:24 +08:00
bridge 的成员,其二层处理过程,首先判断自己是不是成员,如果是成员,就转交给 bridge 处理,不再进行本设备自己的三层处理
buddha
2020-03-03 16:53:26 +08:00
@yingo 如果一个 bridge 下有多个网卡 (每个网卡一个地址)这 bridge ip 地址获取谁的?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/647239

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX