同一接口上但不同子网上的第二个 IP 地址

同一接口上但不同子网上的第二个 IP 地址

在 CentOS 5.7 64 位中,是否可以在一个接口(例如 eth0)上拥有第二个 IP 地址 - 别名接口配置 - 在不同的子网中?

这是 eth0 的原始配置

more etc/sysconfig/network-scripts/ifcfg-eth0
# Broadcom Corporation NetXtreme BCM5721 Gigabit Ethernet PCI Express
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.91.255
HWADDR=00:1D:09:FE:DA:04
IPADDR=192.168.91.250
NETMASK=255.255.255.0
NETWORK=192.168.91.0
ONBOOT=yes

这是 eth0:0 的配置

more etc/sysconfig/network-scripts/ifcfg-eth0:0
# Broadcom Corporation NetXtreme BCM5721 Gigabit Ethernet PCI Express
DEVICE=eth0:0
BOOTPROTO=static
BROADCAST=10.10.191.255
DNS1=10.10.15.161
DNS2=10.10.18.36
GATEWAY=10.10.191.254
HWADDR=00:1D:09:FE:DA:04
IPADDR=10.10.191.210
NETMASK=255.255.255.0
NETWORK=10.39.191.0
ONPARENT=yes

由于有两个不同的网关,resolv.conf 文件应该如何更改?还需要进行其他更改吗?

答案1

是否可以在一个接口(例如 eth0)上拥有第二个 IP 地址 - 别名接口配置 - 在不同的子网中?

当然,没有什么可以阻止你这样做。网络接口将看到其他两个子网的广播,但除非你的网络非常繁忙,否则这可能不会产生很大的影响。

由于有两个不同的网关,resolv.conf 文件应该如何更改?还需要进行其他更改吗?

您不能有 2 个默认网关。从其中一个接口中删除网关。像这样设置 2 个网关根本没什么用。只会使用其中一个网关。

DNS 解析 (resolv.conf) 实际上与您的路由配置无关。在 Linux 上,DNS 解析是系统范围的,与接口配置完全无关。只需在 resolv.conf 中放置几个​​有效的 DNS 服务器即可。如果您需要更高级的功能来将一些请求发送到不同的上游服务器,您可能需要安装类似 DNSMasq 的东西。

答案2

正如前面提到的,在一个网络上有两个不同的子网并没有错,只要您连接到两个网络的同一个交换机/交换机组并且没有对其或任何其他安全区域应用任何 VLAN 规则,它就可以工作。

无论您有多少个 IP 地址/子网,始终只有一个默认网关。当 IP 地址与路由表中的任何其他路由都不匹配时,将使用默认网关。因此,在您的示例中,对于不属于 192.168.91.0/24 或 10.10.191.0/24 网络的每个请求,都将被重定向到默认网关。

但如果您愿意,您仍然可以添加手动路由。假设您有第三个私有网络 10.10.200.0/24,可通过 10.10.191.0/24 访问。您需要添加静态路由:

ip route add 10.10.200.0/24 via 10.10.191.254 dev eth0:0

Resolv.conf 与网关无关,用于 DNS 解析。阅读此处了解更多信息。

答案3

通常,/etc/resolv.conf 文件是 DNS 相关选项(名称服务器、搜索域、ecc)的配置文件。在基于 Red-Hat 的发行版中,我建议您创建两个文件:

/etc/sysconfic/network-script/route-eth0
/etc/sysconfic/network-script/route-eth0:0(我从未见过这个)

在每个接口中,您可以为特定的接口定义所有路由选项。

这是不正确的。虽然在 RHEL/CentOS 系统上,在多个文件中处理以太网接口是可以接受的,但路由的处理方式不同。特定接口的路由必须集中放置在该接口的单个​​文件中。换句话说,如果您需要为 eth0:1、eth0:2 和 eth0:3 设置自定义路由,则必须将它们全部放置在:

/etc/sysconfig/network-script/route-eth0

文件名中不能附加像 :1 这样的东西。

先前的答案建议为新界面创建一个文件:

/etc/sysconfig/network-scripts/ifcfg-eth0:1 

这是正确的,但您不应在其中放置 GATEWAY= 指令。这将导致创建多个默认网关,从而导致路由行为不当。保留 GATEWAY= 选项并将所需路由添加到:

/etc/sysconfig/network-script/route-eth0

答案4

通常,/etc/resolv.conf 文件是 DNS 相关选项(名称服务器、搜索域、ecc)的配置文件。在基于 Red-Hat 的发行版中,我建议您创建两个文件:

/etc/sysconfig/network-script/route-eth0  
/etc/sysconfig/network-script/route-eth0:0  (I have not ever seen this)

在每个文件中,您可以为特定接口定义所有路由选项。您放入这些规则的规则将在启动时加载。建议将默认网关放在 /etc/sysconfig/network 文件中。

相关内容