情况是,我有一个Ubuntu的多个以太网端口箱,我想performance得好像通过交换机连接到计算机。 我可以轻松实现这个桥梁。 在/etc/network/interfaces :
iface br0 inet static bridge_ports regex eth.* address 192.168.1.1 netmask 255.255.255.0
在这个configuration下,另一台设备可以插入任何一个端口,并在192.168.1.1上ping这个盒子。
现在,第二部分是我希望其中一个端口有一个IP别名,它也试图获得一个DHCP地址。 我可以在没有桥接的情况下在eth0上做到这一点,就像这样:
iface eth0 inet static address 192.168.1.1 netmask 255.255.255.0 iface eth0:0 inet dhcp
现在的诀窍是,我将如何将其与软件切换function结合起来? 由于brctl在第2层操作,所以一旦eth0是br0的一部分,我就不能创buildeth0:0。 我能做的唯一的事情就是创build它为br0:0:
iface br0 inet static bridge_ports regex eth.* address 192.168.1.1 netmask 255.255.255.0 iface br0:0 inet dhcp
这实际上几乎正是我想要的,但有一个奇怪的问题:当以太网端口断开连接或没有DHCP服务器,桥没有得到其正确的静态IP —或它会得到它,但直到启动完成后的一两分钟。
所以我的问题是,延迟是怎么回事? 我能以某种方式摆脱它吗?
或者,有没有更好的办法可以完成我想要的? 理想的事情将是一个守护进程,它会周期性地轮询DHCP,当它得到一个IP分配,把它放在别名而不是主接口。
谢谢。
看起来你正在被转发延迟所困扰。
请查看man brctl以获取有关如何调整各种时序参数的详细信息,但本质上发生的是,当brctl将桥接器放在一起时,必须等待一点点才能在实际发送任何数据包之前了解新networking的拓扑结构。
长话短说,这可能会解决你的问题:
# brctl setfd br0 0
通常一个别名接口不能获得DHCP。
尝试在br0接口上放置DHCP,在br0:0别名上放置静态IP。