为什么要给网桥分配IP地址

您所在的位置:网站首页 虚拟ip有什么作用吗 为什么要给网桥分配IP地址

为什么要给网桥分配IP地址

2024-07-01 12:42| 来源: 网络整理| 查看: 265

[问题1] 为什么要给网桥分配MAC和IP地址?

https://unix.stackexchange.com/questions/319979/why-assign-mac-and-ip-addresses-on-bridge-interface

我在Linux上创建了一个网桥接口br0, 然后给它添加了一些接口eth0,tap0等等. 我的理解是网桥接口就像带着接口(端口)的虚拟交换机.

给网桥接口分配MAC和IP地址是什么意思? 该接口是否充当交换机/网桥上的附加端口, 允许其他端口访问主机?

我已经看了一些页面在讨论将IP地址分配给网桥, MAC地址的分配是自动的?

[答案1]

由于网桥是以太网设备, 因此需要MAC地址. Linux网桥能发起一些东西, 例如STP(生成树协议)帧, 类似的流量需要源MAC.

网桥的IP地址不是必须的, 有许多情况下都不需要. 但是在某些情况下需要IP, 例如:

网桥用作一组容器或虚拟机的默认网关(因为路由发生在IP层)主网卡是网桥的一个成员. 此时网桥是用户与外界的连接, 此时无需将IP分配给主网卡eth0, 而是分配给桥接设备

如果网桥不需要IP路由, 那就不需要IP地址. 例如以下情况:

网桥用来创建一个私有网络, 不与外界连接, 或通过网桥以外的设备提供外部连接 [答案2]

网桥是软件交换机, 每个从设备和桥接器本身都是交换机的端口.

[答案3]

与其他网络设备一起列出来的不代表虚拟网桥, 代表的是连接到网桥的虚拟网卡. 如果你有一个物理设备连接的物理网桥, 你也不会在网络设备中看到物理网桥——但是你会看到连接到该网桥的网卡, 既然是网卡自然就有自己的IP地址.

为网桥设备分配IP地址(实际上是连接到网桥的网卡), 可以使你的主机上的设备将网络包路由给网桥创建的子网和网桥连接的所有设备.

尽管有iproute2之类的工具可以让您看到网桥的虚拟网卡, 但你也可以通过自带的brctl程序查看. brctl show命令会列出所有的网桥和网桥上面的接口. 下面是用iproute和brctl查看Linux网桥和tun tap设备的例子:

$ ip link add br0 type bridge $ ip tuntap add dev tap0 mode tap $ ip tuntap add dev tap1 mode tap $ ip addr add 10.0.0.1/24 broadcast 10.0.0.255 dev br0 $ ip addr add 10.0.0.2/24 broadcast 10.0.0.255 dev tap0 $ ip addr add 10.0.0.3/24 broadcast 10.0.0.255 dev tap1 $ brctl addif br0 tap0 $ brctl addif br0 tap1 $ brctl show bridge name bridge id STP enabled interfaces br0 8000.2e22e593fe8c no tap0 tap1 $ ip addr show to 10.0.0.0/24 11: br0: mtu 1500 qdisc noqueue state DOWN group default qlen 1000 inet 10.0.0.1/24 brd 10.0.0.255 scope global br0 valid_lft forever preferred_lft forever 12: tap0: mtu 1500 qdisc pfifo_fast master br0 state DOWN group default qlen 1000 inet 10.0.0.2/24 brd 10.0.0.255 scope global tap0 valid_lft forever preferred_lft forever 13: tap1: mtu 1500 qdisc pfifo_fast master br0 state DOWN group default qlen 1000 inet 10.0.0.3/24 brd 10.0.0.255 scope global tap1 valid_lft forever preferred_lft forever

请注意, brctl show输出的"interfaces"是依附于网桥的其它网络设备, 接口br0在网桥创建的时候就加上去了. (答主)猜测可能是Linux系统不允许创建不连接设备的虚拟网桥, 无设备的网桥会被自动删除.

[问题2] 为什么网桥需要IP地址?

https://askubuntu.com/questions/407828/why-do-we-need-an-ip-address-for-a-bridge

网桥是第二层的网路设备, 在物理网桥上只有用于操作和维护的IP地址. 我有点困惑, 为什么在KVM中需要给网桥添加IP地址. 我知道VM的网卡得到IP地址, 附加在网桥上的物理网卡没有IP地址. 这样可以确保虚拟机的IP地址对外可见. 在服务器环境下, 我只会给虚拟机分配静态IP.

假设给虚拟机分配静态IP, 那为什么网桥也需要IP地址呢?

[答案1]

你不需要给网桥配置IP, 同样你也不需要给任何以太网设备配置IP, 无论实在虚拟机还是物理机.

但是, 如果你的设备/网桥没有IP地址, 则你可能无法使用这个设备.

例如, 如果安装了KVM的主机有一个网桥叫做 br_vm 作为所有虚拟机的网络接口(guest很有可能把这个接口叫做eth0), 如果br_vm在主机上没有配置, 则虚拟机无法通过eth0和宿主机通信.

你问的是为什么网桥需要IP地址, 答案是不需要. 但是, 你可能想知道哪些情况下宿主机上的网桥必须有IP, 我能想到一些例子:

你想让虚拟机和主机通信, 即使只是为了DHCP或者DNS你想关掉VM之间的通信. 如果你的VM共享网桥, 那就需要仔细考虑了你想拥有主机级别的防火墙. 把所有防火墙规则聚集到主机上是明智的选择.

顺便说一下, 如果VM需要动态IP, 那就与主机是否有IP无关了(除非主机是DHCP服务器)

[答案2]

我假设你的主机使用/etc/network/interfaces进行网络配置.

如果在网桥接口(本例是br0)中将地址指定为0.0.0.0, 你就知道答案了: 连接到网桥的VM仍然有自己的IP, 并且网络没有中断.

但是, 你随后将丢失到网桥到主机的端口. 如果你在interfaces文件中指定了IP地址, 则该地址就成为网桥上主机的IP, 正如传统交换机的管理接口.

请记住, 网桥就像一个独立的交换机, 但主机仍然在"管理"它, 因此添加IP只会添加一个寻址的管理接口.

如果你的主机有两个网卡, 你可以为VM的网桥设置0.0.0.0, 然后用另一个网卡进行管理.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3