![Linux:如何在启动时配置辅助 IP 地址?](https://linux22.com/image/502559/Linux%EF%BC%9A%E5%A6%82%E4%BD%95%E5%9C%A8%E5%90%AF%E5%8A%A8%E6%97%B6%E9%85%8D%E7%BD%AE%E8%BE%85%E5%8A%A9%20IP%20%E5%9C%B0%E5%9D%80%EF%BC%9F.png)
各位专家,大家好,
我在这里配置了一个不错的小型 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= ... 等等。