Linux:如何在启动时配置辅助 IP 地址?

Linux:如何在启动时配置辅助 IP 地址?

各位专家,大家好,

我在这里配置了一个不错的小型 Linux 防火墙。它eth1用于内部网络 (10.0.0.*) 和eth2外部网络 (65.130.27.69/27)。 eth0目前未被使用。(顺便说一句,我使用的是假 IP 地址。我不知道谁有这些。)

我已经完成了所有 iptables 操作,并使用 DNAT 进行了正确设置,一切运行正常,并且我已经更新了/etc/sysconfig/iptables。一切都很好。

有趣的地方就在这里。我们这里有一堆 IP,另一台服务器想要接收端口 80 流量,但使用不同的 IP。我将规则添加到 iptables,然后添加辅助 IP,如下所示eth2

# ip addr  add 65.130.27.70/27  dev eth2  broadcast 65.130.27.79

并且有效:

# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
    link/ether 08:00:09:dc:f4:c1 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:a0:c9:03:ac:9b brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.0/8 brd 10.255.255.255 scope global eth1
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:a0:c9:73:7f:97 brd ff:ff:ff:ff:ff:ff
    inet 65.130.27.69/28 brd 65.130.27.79 scope global eth2
    inet 65.130.27.70/28 brd 65.130.27.79 scope global secondary eth2

现在设备eth2监听两个 IP 地址,.69 和 .70。一切正常,运行正常。防火墙按应有的方式路由流量,内部服务器按应有的方式接收流量。

然后,有一天,出于未知原因,防火墙机器重新启动了。距离我最初设置它已经有几年了,所以我完全忘记了这个辅助 IP 地址。后来,人们开始抱怨某某服务不起作用。它之所以不起作用,是因为防火墙机器重新启动时没有辅助 IP 地址,也就是.70上面的那个。所以我再次用上面的魔法命令手动添加了它。

问题是:如何设置这台机器在启动时自动添加辅助IP地址?

我已经想出了一些解决方案:

我已经将这个神奇的命令添加到/etc/rc.d/rc.local

# ip addr  add 65.130.27.70/27  dev eth2  broadcast 65.130.27.79

我很确定如果(或当)它再次重新启动时,它会正常工作。但是,我遇到了这些文档:

http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/ref-guide/s1-networkscripts-interfaces.html

通过遵循带有克隆界面的底部附近的示例,我可以创建另一个文件,/etc/sysconfig/network-scripts/ifcfg-eth2-secondary并在其中放入一行:

IPADDR=65.130.27.70

这会替换此设备上的现有 IP 地址,还是会添加另一个?此方法比上述方法更值得推荐吗?

我为什么不自己尝试一下呢?除非我安装好另一台防火墙机器来玩,否则我不会去摆弄生产机器。

答案1

通常情况下,你需要创建一个别名,这样你就会有 1 个 IP 绑定到 eth2,另一个 IP 绑定到 eth2:1

你可以这样配置启动脚本

/etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=eth2
IPADDR=65.130.27.69
ONBOOT=yes
BOOTPROTO=static
BROADCAST= ... 等等。


/etc/sysconfig/network-scripts/ifcfg-eth2:1
DEVICE=eth2:1
IPADDR=65.130.27.70
ONBOOT=yes
BOOTPROTO=static
BROADCAST= ... 等等。

相关内容