我有一台装有 Solaris 8 的机器,它有多个连接到同一个网络的接口,这意味着它们到默认网关的度量都是 0(1 跳)。
认为:
- e1000g0:192.168.30.70
- e1000g2:192.168.30.72
- e1000g4:192.168.30.74
- e1000g5:192.168.30.76
- 网关:192.168.30.65(思科路由器)
然而,尽管它们有直接连接,但它们似乎正在使用 e1000g0 访问 192.168.30.0 网络以到达默认网关,然后到达任何其他地方。
当我向 192.168.30.74(e1000g4 的 IP)发送 ping 并在 e1000g0 上捕获数据包时,我看到“echo reply”消息从 e1000g0 发出,而不是从 e1000g4 发出,尽管 e1000g4 是接收“echo request”的一方。这种情况不应该发生,这些消息应该是完全独立的,因为它们都应该向该网络通告 1 跳
netstat -rn 和 ifconfig -a 的输出如下面链接中的图片所示
http://img836.imageshack.us/img836/7308/ifconfignetstathiddenip.jpg
我需要以某种方式为所有这些接口分配相同的优先级,并让它们明白它们物理上连接到 192.168.30.0 网络,不需要通过 e1000g0 才能到达它。
这会导致很多问题,因为最终所有流量都会通过 e1000g0 接口,而这将成为瓶颈。
请帮忙提前致谢
答案1
您需要查看一些事项。
本地 MAC 地址
较旧的 SPARC 机器默认具有 eeprom 设置:local-mac-address? false
。使用此设置,当 Solaris 启动时,它会覆盖本地网络端口并为每个接口提供相同的 MAC。这可能会导致 Cisco 路由器上的 MAC 地址混淆并直接限制入站带宽。请参阅信息文档 16733了解更多详情。较新的服务器的默认设置是local-mac-address? true
。
警告:如果您正在运行 Sun Cluster,旧版本需要local-mac-address? false
,新版本需要local-mac-address? true
。
IP多播控制协议
如果您要在同一个网络上使用多个接口,我强烈建议使用 IPMP 或 LACP 等技术来处理故障转移和出站负载分配。使用 Solaris 8 时,您可能只能使用 IPMP,这很遗憾,因为配置起来很麻烦。LACP 要好得多,但需要 Solaris 10 和 Cisco 上的一些配置。
Solaris 10
现在真的没有理由继续使用 Solaris 8。它处于过时的支持阶段,明年将停止支持。Solaris 10 拥有更好的网络堆栈、更好的性能和一整套出色的功能(区域、ZFS、DTrace、资源控制、SMF、IPFilter 等)。