在单个网络接口上创建或配置多个IP地址的概念称为IP别名,这对于使用单个子网上具有不同IP地址的单个网络接口在Web服务器上设置多个虚拟站点非常有用。使用此IP别名的主要优点是你不需要为每个IP连接物理适配器。相反,你可以为单个物理卡创建多个或多个虚拟接口(别名)。
本文接下来给出的说明适用于所有基于RHEL的发行版,例如Fedora、CentOS、Rocky Linux和Alma Linux。实际上,创建多个接口并手动为其分配IP地址是一项艰巨的任务。在这里,小编将介绍如何通过定义一组IP范围来分配IP地址。
此外,小编还将介绍如何创建虚拟接口并同时为其分配不同范围的IP地址。另外,这里使用的是LAN IP地址,因此请将其替换为你自己将使用的IP地址。
为单个网络接口创建多个IP地址
在这里,有一个名为“ ifcfg-eth0 ”的网络接口,它是以太网设备的默认网络接口卡。如果你连接了第二个以太网设备,它将显示为“ ifcfg-eth1 ”,对于每个附加设备,依此类推。
这些设备的网络文件位于“ /etc/sysconfig/network-scripts/ ”目录中,你可以使用以下ls命令列出所有设备。
ls -l /etc/sysconfig/network-scripts/
示例输出如下:
ifcfg-eth0 ifdown-isdn ifup-aliases ifup-plusb init.ipv6-global ifcfg-lo ifdown-post ifup-bnep ifup-post net.hotplug ifdown ifdown-ppp ifup-eth ifup-ppp network-functions ifdown-bnep ifdown-routes ifup-ippp ifup-routes network-functions-ipv6 ifdown-eth ifdown-sit ifup-ipv6 ifup-sit ifdown-ippp ifdown-tunnel ifup-isdn ifup-tunnel ifdown-ipv6 ifup ifup-plip ifup-wireless
假设我们要创建三个额外的虚拟接口以将三个IP地址(分别是172.16.16.126、172.16.16.127和172.16.16.128)绑定到NIC。所以,需要创建三个额外的别名文件,而“ ifcfg-eth0 ”保留相同的主IP地址。以下是我们继续设置三个别名来绑定的IP地址。
Adapter IP Address Type ------------------------------------------------- eth0 172.16.16.125 Primary eth0:0 172.16.16.126 Alias 1 eth0:1 172.16.16.127 Alias 2 eth0:2 172.16.16.128 Alias 3
其中":X"
表示为接口eth0创建别名的设备(接口)编号。对于每个别名,你必须按顺序分配一个编号。例如,小编将现有参数从接口“ ifcfg-eth0 ”复制到名为ifcfg-eth0:0、ifcfg-eth0:1和ifcfg-eth0:2的虚拟接口。
导航到网络配置目录并创建文件,如下所示。
cd /etc/sysconfig/network-scripts/ cp ifcfg-eth0 ifcfg-eth0:0 cp ifcfg-eth0 ifcfg-eth0:1 cp ifcfg-eth0 ifcfg-eth0:2
打开文件“ ifcfg-eth0 ”并查看内容,命令如下:
vi ifcfg-eth0
示例输出如下:
DEVICE="eth0" BOOTPROTO=static ONBOOT=yes TYPE="Ethernet" IPADDR=172.16.16.125 NETMASK=255.255.255.224 GATEWAY=172.16.16.100 HWADDR=00:0C:29:28:FD:4C
在这里,我们只需要两个参数(DEVICE和IPADDR)。因此,使用你喜欢的编辑器打开每个文件,将设备名称重命名为其相应的别名,然后更改IPADDR地址即可。
例如,使用VI编辑器打开“ ifcfg-eth0:0 ”、“ ifcfg-eth0:1 ”和“ ifcfg-eth0:2 ”文件,并更新这两个参数。最后,它看起来与下面的示例类似:
对于ifcfg-eth0:0
DEVICE="eth0:0" BOOTPROTO=static ONBOOT=yes TYPE="Ethernet" IPADDR=172.16.16.126 NETMASK=255.255.255.224 GATEWAY=172.16.16.100 HWADDR=00:0C:29:28:FD:4C
对于ifcfg-eth0:1
DEVICE="eth0:1" BOOTPROTO=static ONBOOT=yes TYPE="Ethernet" IPADDR=172.16.16.127 NETMASK=255.255.255.224 GATEWAY=172.16.16.100 HWADDR=00:0C:29:28:FD:4C
对于ifcfg-eth0:2
DEVICE="eth0:2" BOOTPROTO=static ONBOOT=yes TYPE="Ethernet" IPADDR=172.16.16.128 NETMASK=255.255.255.224 GATEWAY=172.16.16.100 HWADDR=00:0C:29:28:FD:4C
完成所有更改后,保存所有更改并重新启动/启动网络服务以使更改生效。
systemctl restart network
要验证所有别名(虚拟接口)是否已启动并正在运行,可以使用“ ifconfig ”或“ ip ”命令,如下所示:
ifconfig
示例输出:
eth0 Link encap:Ethernet HWaddr 00:0C:29:28:FD:4C inet addr:172.16.16.125 Bcast:172.16.16.100 Mask:255.255.255.224 inet6 addr: fe80::20c:29ff:fe28:fd4c/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:237 errors:0 dropped:0 overruns:0 frame:0 TX packets:198 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:25429 (24.8 KiB) TX bytes:26910 (26.2 KiB) Interrupt:18 Base address:0x2000 eth0:0 Link encap:Ethernet HWaddr 00:0C:29:28:FD:4C inet addr:172.16.16.126 Bcast:172.16.16.100 Mask:255.255.255.224 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:18 Base address:0x2000 eth0:1 Link encap:Ethernet HWaddr 00:0C:29:28:FD:4C inet addr:172.16.16.127 Bcast:172.16.16.100 Mask:255.255.255.224 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:18 Base address:0x2000 eth0:2 Link encap:Ethernet HWaddr 00:0C:29:28:FD:4C inet addr:172.16.16.128 Bcast:172.16.16.100 Mask:255.255.255.224 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:18 Base address:0x2000
现在尝试从不同的机器对每个设备执行ping操作。如果一切设置正确,你将收到来自每个设备的ping响应。
ping 172.16.16.126 ping 172.16.16.127 ping 172.16.16.128
示例输出如下:
ping 172.16.16.126 PING 172.16.16.126 (172.16.16.126) 56(84) bytes of data. 64 bytes from 172.16.16.126: icmp_seq=1 ttl=64 time=1.33 ms 64 bytes from 172.16.16.126: icmp_seq=2 ttl=64 time=0.165 ms 64 bytes from 172.16.16.126: icmp_seq=3 ttl=64 time=0.159 ms ping 172.16.16.127 PING 172.16.16.127 (172.16.16.127) 56(84) bytes of data. 64 bytes from 172.16.16.127: icmp_seq=1 ttl=64 time=1.33 ms 64 bytes from 172.16.16.127: icmp_seq=2 ttl=64 time=0.165 ms 64 bytes from 172.16.16.127: icmp_seq=3 ttl=64 time=0.159 ms ping 172.16.16.128 PING 172.16.16.128 (172.16.16.128) 56(84) bytes of data. 64 bytes from 172.16.16.128: icmp_seq=1 ttl=64 time=1.33 ms 64 bytes from 172.16.16.128: icmp_seq=2 ttl=64 time=0.165 ms 64 bytes from 172.16.16.128: icmp_seq=3 ttl=64 time=0.159 ms
这样设置就成功了。使用这些新的IP地址,你可以在Apache中设置虚拟站点、FTP帐户以及许多其它内容。
分配多个IP地址范围
如果你想为名为“ ifcfg-eth0 ”的特定接口创建一系列多个IP地址,可以使用“ ifcfg-eth0-range0 ”并复制ifcfg-eth0的内容,具体如下所示:
cd /etc/sysconfig/network-scripts/ cp -p ifcfg-eth0 ifcfg-eth0-range0
现在打开“ ifcfg-eth0-range0 ”文件。
vi ifcfg-eth0-range0
然后添加“ IPADDR_START ”和“ IPADDR_END ” IP地址范围(可以根据你自身实际情况进行添加),如下所示:
#DEVICE="eth0" #BOOTPROTO=none #NM_CONTROLLED="yes" #ONBOOT=yes TYPE="Ethernet" IPADDR_START=172.16.16.126 IPADDR_END=172.16.16.130 IPV6INIT=no #GATEWAY=172.16.16.100
保存并重新启动/启动网络服务
systemctl restart network
验证虚拟接口已创建并分配了IP地址:
ifconfig
示例输出如下:
eth0 Link encap:Ethernet HWaddr 00:0C:29:28:FD:4C inet addr:172.16.16.125 Bcast:172.16.16.100 Mask:255.255.255.224 inet6 addr: fe80::20c:29ff:fe28:fd4c/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1385 errors:0 dropped:0 overruns:0 frame:0 TX packets:1249 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:127317 (124.3 KiB) TX bytes:200787 (196.0 KiB) Interrupt:18 Base address:0x2000 eth0:0 Link encap:Ethernet HWaddr 00:0C:29:28:FD:4C inet addr:172.16.16.126 Bcast:172.16.16.100 Mask:255.255.255.224 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:18 Base address:0x2000 eth0:1 Link encap:Ethernet HWaddr 00:0C:29:28:FD:4C inet addr:172.16.16.127 Bcast:172.16.16.100 Mask:255.255.255.224 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:18 Base address:0x2000 eth0:2 Link encap:Ethernet HWaddr 00:0C:29:28:FD:4C inet addr:172.16.16.128 Bcast:172.16.16.100 Mask:255.255.255.224 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:18 Base address:0x2000 eth0:3 Link encap:Ethernet HWaddr 00:0C:29:28:FD:4C inet addr:172.16.16.129 Bcast:172.16.16.100 Mask:255.255.255.224 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:18 Base address:0x2000 eth0:4 Link encap:Ethernet HWaddr 00:0C:29:28:FD:4C inet addr:172.16.16.130 Bcast:172.16.16.100 Mask:255.255.255.224 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:18 Base address:0x2000
总结
通过遵循以上简单设置过程,现在你可以在Red Hat Enterprise Linux系统中的单个网络接口上有效地创建和管理多个IP地址,这种灵活性使你能够根据你的具体要求优化网络通信和连接。如果你有这方面的使用需求,那么不妨按照上面的教程进行设置吧。