![绑定 VLAN 上的路由](https://linux22.com/image/647226/%E7%BB%91%E5%AE%9A%20VLAN%20%E4%B8%8A%E7%9A%84%E8%B7%AF%E7%94%B1.png)
我有一个 Linux d/b 服务器(OEL 6.4 但我相信实际上是 Redhat 6),带有连接到瞻博网络交换机的绑定网卡。
我已将 Bond 拆分为多个 VLAN(bond0.11,... bond0.18),IP 地址范围为 192.168.XY/22,以便 d/b 服务器实例可以分别侦听这些地址,从而确保 d/b 访问由适当的 VLAN 成员资格完成,并且不同 VLAN 上的项目如果没有 Juniper 防火墙上的明确规则就无法连接到彼此的数据库。
当我启动网络时遇到了两个问题:
- 每个 Bond 网络上的 g/w 均设置为 0.0.0.0
- 我必须手动为每个网络添加正确的网关路由
例如,我默认有以下路由:
Destination GateWay Genmask ... Iface
192.168.4.0 0.0.0.0 255.255.252.0 bond0.11
192.168.8.0 0.0.0.0 255.255.252.0 bond0.12
... etc
我必须手动将路由添加到每个网络的网关
route add -net 192.168.4.0 netmask 255.255.252.0 gw 192.168.4.1
route add -net 192.168.8.0 netmask 255.255.252.0 gw 192.168.8.1
我想做的是让它在网络启动时自动设置 X.1 网关地址,但我还没有找到适当的魔法来实现这一点。
我尝试使用以下命令添加 route-bond0.11 的文件:
192.168.4.0/22 via 192.168.4.1
但是当我启动网络时,出现错误
Bringing up interface bond0: [ OK ]
Bringing up interface bond0.11: RTNETWORK answers: File exists
我查了一下,通常意味着该路由不需要,因为它已经存在。这可能是因为我得到的是默认的 0.0.0.0 条目。
我在任何 ifcfg-bond0.XX 文件中都没有 GATEWAY 条目(尝试过并且“最后一个”获胜设置全局默认网关,但这不是我在这种情况下想要的)。
我的问题是:
- 如何让网络在没有 0.0.0.0 条目的情况下启动?
- 这是否能让 route-bond.XX 文件正常工作?
- 或者是否有其他方法可以在网络启动时定义路由?
一旦我的手动路由到位,一切都会很好,瞻博网络上的网关都在那里,并且流量按预期在我的 VLAN 之间流动,我只是无法让初始设置为启动或重新启动网络时发生的情况。
编辑令人尴尬的是,在重新启动所有设备后,一切都正常工作,不需要添加路由即可让流量通过交换机传输到其余的 VLAN。这似乎是新设置的暂时性问题和我对网关的理解造成的。
答案1
您似乎读取了错误的路由表信息。
目的地 GateWay Genmask ... Iface 192.168.4.0 0.0.0.0 255.255.252.0 债券0.11 192.168.8.0 0.0.0.0 255.255.252.0 键0.12
上述内容实际上意味着网络 192.168.4.0/255.55.252.0 在 bond0.11 上本地连接,因此无需网关即可访问。
网关条目如下所示:
目的地 GateWay Genmask ... Iface 172.16.0.0 192.168.4.1 255.255.255.0 键0.11
但是,您不需要它将流量发送到本地连接的网络。
所以从我所看到的情况来看,您的接口设置并没有问题,并且通常重新启动后,vlan x 的客户端应该能够连接到 vlan x 上的服务器 IP。