为一个网络接口创建多个 IP 地址
在单个网络接口上创建或配置多个 IP 地址的概念称为IP 别名。 IP 别名对于在单个子网中使用具有不同 IP 地址 的单个网络接口在 Apache 上设置多个虚拟站点非常有用。
使用此IP 别名的主要优点是,您不需要将物理适配器连接到每个IP,而是可以创建多个或多个虚拟接口( 别名)到单个物理卡。
此处给出的说明适用于所有主要 Linux 发行版,例如 Red Hat、Fedora 和 CentOS。创建多个接口并手动为其分配 IP 地址是一项艰巨的任务。在这里,我们将了解如何为其分配 IP 地址并定义一组 IP 范围。还要了解我们如何创建虚拟接口并一次性为接口分配不同范围的 IP 地址。在本文中,我们使用了LAN IP“s”,因此请将其替换为您将使用的IP。
创建虚拟接口并分配多个 IP 地址
这里我有一个名为“ifcfg-eth0”的接口,它是以太网设备的默认接口。如果您连接了第二个以太网设备,那么您连接的每个设备都会有一个“ifcfg-eth1”设备,依此类推。这些设备网络文件位于“/etc/sysconfig/network-scripts/”目录中。导航到该目录并执行“ls -l”以列出所有设备。
cd /etc/sysconfig/network-scripts/
ls -l
样本输出
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”并查看内容。
[root@tecmint network-scripts]# 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)。因此,使用VI编辑器打开每个文件,并将DEVICE名称重命名为其相应的别名,并更改IPADDR地址。例如,使用以下命令打开文件“ifcfg-eth0:0”、“ifcfg-eth0:1”和“ifcfg-eth0:2” VI编辑器并更改这两个参数。最后它看起来类似于下图。
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
完成所有更改后,保存所有更改并重新启动/启动网络服务以使更改生效。
[root@tecmint network-scripts]# /etc/init.d/network restart
要验证所有别名(虚拟接口)是否已启动并正在运行,您可以使用“ifconfig”或“ip”命令。
[root@tecmint network-scripts]# 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
样本输出
[root@tecmint ~]# 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
--- 172.16.16.126 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.159/0.552/1.332/0.551 ms
[root@tecmint ~]# 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
--- 172.16.16.127 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.159/0.552/1.332/0.551 ms
[root@tecmint ~]# 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
--- 172.16.16.128 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.159/0.552/1.332/0.551 ms
看起来一切都很顺利,有了这些新的 IP,您可以在 Apache、FTP 帐户和许多其他东西中设置虚拟站点。
分配多个 IP 地址范围
如果您想为名为“ifcfg-eth0”的特定接口创建多个 IP 地址的范围,我们使用“ ifcfg-eth0-range0”并复制 ifcfg-eth0 的内容,如下所示。
[root@tecmint network-scripts]# cd /etc/sysconfig/network-scripts/
[root@tecmint network-scripts]# cp -p ifcfg-eth0 ifcfg-eth0-range0
现在打开“ifcfg-eth0-range0”文件并添加“IPADDR_START”和“IPADDR_END”IP 地址范围,如下所示。
[root@tecmint network-scripts]# vi ifcfg-eth0-range0
#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
保存并重新启动/启动网络服务
[root@tecmint network-scripts]# /etc/init.d/network restart
验证是否使用IP 地址创建了虚拟接口。
[root@tecmint network-scripts]# 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
如果您在设置时遇到任何问题,请在评论部分发表您的疑问。