如何为桥接接口分配 IP

如何为桥接接口分配 IP

据我所知,桥接发生在 IP 层以下,但我如何能够为桥接接口分配 IP 呢?

brctl addbr br0
ifconfig br0 IP promisc up

操作系统做什么?听起来它为我提供了 br0 之上的 ip 网络堆栈。

那么 iptable 规则可以在这个接口上运行吗?

谢谢。PS:对 ebtables 不感兴趣。我更感兴趣的是当我将 IP 分配给桥接接口时,底层发生了什么。

答案1

桥接本质上在计算机上显示为另一个接口,您通常会像配置任何其他网络接口一样配置该接口。

一般来说,这个过程如下:

  1. brctl addbr br0
  2. brctl addif br0 eth0
  3. brctl addif br0 eth1

现在,您可以像往常一样使用其他命令来添加接口。每个发行版的自动配置工作方式略有不同,例如,在 RHEL6.x 中

cat /etc/sysconfig/network-scripts/ifcfg-eth0
...
IPADDR="0.0.0.0"
BRIDGE="br0"
...

cat /etc/sysconfig/network-scripts/ifcfg-br0
...
DEVICE="br0"
TYPE="Bridge"
IPADDR="10.0.0.1"

这是一个好文章,更详细,对于 CentOS

这是官方内核文档对于 brctl。

iptables
现在,基本知识已经讲完了——桥接在 Linux 中确实非常重要。桥接发生在网络堆栈的较低级别,因此在这些帧穿过 iptables 之前,就已经对其进行了处理。这是一个很广泛的主题,所以这里有一个包含大量图表的好页面。

http://ebtables.sourceforge.net/br_fw_ia/br_fw_ia.html

答案2

是的,您可以在桥上使用 iptables,但是 ebtables 是更正确的方法。

相关内容