服务器 12.04 - 辅助 IP 不会路由到本地网络之外

服务器 12.04 - 辅助 IP 不会路由到本地网络之外

我使用 Ubuntu 12.04 作为 VirtualMin 安装平台,它将为同一组织托管多个网站。为此,我需要将同一子网中的多个 IP 地址绑定到服务器,但这样做遇到了问题。

我可以通过使用附加虚拟网卡(它是一个虚拟机)或使用一个网卡的虚拟接口来绑定额外的地址。在这两种情况下,附加地址都可以从本地网络上的任何主机 ping 通,但只有主网卡可以从任何远程网络 ping 通。这种行为就像您配置了一个没有网关的单个网卡时会发生的情况一样,所以我想这是路由表的问题,但我就是无法生成有效的配置。有人可以看看我的配置并可能给我指出正确的方向吗?

/etc/网络/接口

# The loopback network interface
auto lo eth0 eth0:0
iface lo inet loopback


# The primary network interface
iface eth0 inet static
        address 10.192.3.104
        netmask 255.255.224.0
        gateway 10.192.0.1
        broadcast 10.192.31.255
        network 10.192.0.0
        dns-nameservers 10.192.0.210 10.192.0.198 127.0.0.1


iface eth0:0 inet static
        address 10.192.30.52
        netmask 255.255.224.0

路线-n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.192.0.1      0.0.0.0         UG    100    0        0 eth0
10.192.0.0      0.0.0.0         255.255.224.0   U     0      0        0 eth0

答案1

可能有点牵强,但你试过启用 ipv4 转发吗?我不知道 IP 链的细节,但可能是对接口上的 ping 的回复eth0:0需要通过 进行“转发” eth0,特别是当它需要路由时。

# echo 1 > /proc/sys/net/ipv4/ip_forward

或者

# sudo sysctl -w net.ipv4.ip_forward=1

如果有效,就把它放进去/etc/sysctl.conf

答案2

有几件事让我关注服务器端而不是网络端。

首先,同一网络中的 Windows 服务器可以添加辅助地址并立即以 Ubuntu 服务器无法实现的方式进行通信。

此外,无法 ping 任何辅助地址。使用您的示例,我可以将辅助地址的最后一个八位字节更改为比主地址高一个,但问题仍然存在。例如 10.192.10.138 / 139 仍然有同样的问题。

我运行了 tcpdump,发现主服务器同时显示传入的 icmp 请求和传出的回复。对辅助服务器的 ip 地址的 ping 只显示传入的 icmp 请求。传出的 icmp 请求似乎被丢弃了。例如

16:10:08.149550  In 00:1f:27:40:04:00 ethertype IPv4 (0x0800), length 100: 10.1.0.200 > 10.192.10.138: ICMP echo request, id 64546, seq 6, length 64
16:10:08.149571 Out 00:50:56:be:0a:89 ethertype IPv4 (0x0800), length 100: 10.192.10.138 > 10.1.0.200: ICMP echo reply, id 64546, seq 6, length 64
16:10:09.145736  In 00:1f:27:40:04:00 ethertype IPv4 (0x0800), length 100: 10.1.0.200 > 10.192.10.138: ICMP echo request, id 64546, seq 7, length 64
16:10:09.145759 Out 00:50:56:be:0a:89 ethertype IPv4 (0x0800), length 100: 10.192.10.138 > 10.1.0.200: ICMP echo reply, id 64546, seq 7, length 64
16:10:38.055885  In 00:1f:27:40:04:00 ethertype IPv4 (0x0800), length 100: 10.1.0.200 > 10.192.10.185: ICMP echo request, id 12835, seq 1, length 64
16:10:39.055943  In 00:1f:27:40:04:00 ethertype IPv4 (0x0800), length 100: 10.1.0.200 > 10.192.10.185: ICMP echo request, id 12835, seq 2, length 64
16:10:40.056085  In 00:1f:27:40:04:00 ethertype IPv4 (0x0800), length 100: 10.1.0.200 > 10.192.10.185: ICMP echo request, id 12835, seq 3, length 64

但这会引导我下一步调查什么呢?

相关内容