在我的网络配置中,我有三个交换机:
- 互联网(xx.xx.140.129/25)
- 内部 SAN(10.1.1.0/24)
- iLo 管理(10.1.30.0/24)
我有一台用于管理的 Linux 服务器,需要访问所有三个网络,但它只有 2 个 NIC。我已将交换机 #2 和 #3 连接在一起,因此它们之间有一条物理路径,我尝试过ip route add 10.1.1.0/24 eth0
,但没有成功。关于如何做到这一点,有什么想法吗?
[root@ilo]# 路线 -n 内核 IP 路由表 目标网关 Genmask 标志 指标参考使用 Iface XX.XX.140.128 0.0.0.0 255.255.255.128 U 0 0 0 eth1 10.1.30.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 10.1.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1 0.0.0.0 XX.XX.140.129 0.0.0.0 UG 0 0 0 eth1
答案1
如果出于安全原因想要分离流量,则应使用 VLAN 标记。为此,您将需要托管交换机。
如果你不需要出于安全考虑而分离流量,那么你应该对 #2 和 #3 使用相同的 IP 前缀
如果您仍想使用您的设计(例如,如果您计划稍后使用管理型交换机分离网络),那么您可以在接口上使用 IP 别名(添加辅助 IP 地址)。
要调试网络问题,请从物理层到应用程序层进入网络堆栈:
- 测试您的电缆。路径上的所有接口是否都已连接?例如,所有接口的所有以太网 LED 是否都在闪烁?
- 是设备在应答
arping
,ping
。请尝试同时使用 IP 和主机名。 - 运行
traceroute
并查看数据包如何路由。使用调试来ip route get <IP_destination>
查找数据包将在哪个接口上路由。 - 使用
telnet
、nc
等来查看应用程序是否正在应答。
编辑: 跑步:
ip route del 10.1.1.0/24 dev eth0 # remove the fixed route
ip addr add 10.1.1.1/24 dev eth0 # add an IP alias
问题是您在 eth0 上没有来自 10.1.30.0/24 前缀的 IP。
答案2
设置路由只是游戏的一部分,但内部 SAN 网络如何知道如何到达 10.1.30.10?它缺少返回的路由。
最简单的解决方案:为您的 eth0 分配一个子网 10.1.1.0/24 的 IP:
ip addr add 10.1.1.xyz/24 dev eth0