编译自:http://www.unixmen.com/linux-basics-assign-multiple-ip-addresses-single-network-interface-card-centos-7/作者: SK
原创:LCTThttps://linux.cn/article-5127-1.html译者: geekpi
本文地址:https://linux.cn/article-5127-1.html
有时你也许想要给一个网卡多个地址。你该怎么做呢?另外买一个网卡来分配地址?在小型网络中其实不用这么做。我们现在可以在CentOS/RHEL 7中给一个网卡分配多个ip地址。想知道怎么做么?好的,跟随我,这并不难。
Box.me/data/attachment/album/201503/26/101151p4cwwf5fr9wf4rtv.jpg">
首先,让我们找到网卡的IP地址。在我的CentOS 7服务器中,我只使用了一个网卡。
用root特权运行下面的命令:
ipaddr
示例输出:
1:lo:<LOOPBACK,UP,LOWER_UP>mtu65536qdiscnoqueuestateUNKNOWNlink/loopback00:00:00:00:00:00brd00:00:00:00:00:00inet127.0.0.1/8scopehostlovalid_lftforeverpreferred_lftforeverinet6::1/128scopehostvalid_lftforeverpreferred_lftforever2:enp0s3:<BROADCAST,MULTICAST,LOWER_UP>mtu1500qdiscpfifo_faststateUPqlen1000link/ether08:00:27:80:63:19brdff:ff:ff:ff:ff:ffinet192.168.1.150/24brd192.168.1.255scopeglobalenp0s3valid_lftforeverpreferred_lftforever
如上所见,我的网卡名是enp0s3,ip地址是192.168.1.150。
如你所知,网卡的配置文件存储在/etc/sysconfig/network-scripts/目录下。每个网卡的详细内容将会以不同的名字存储,比如ifcfg-enp0s3。
让我们看下ifcfg-enp0s3的细节。
cat/etc/sysconfig/network-scripts/ifcfg-enp0s3
示例输出:
TYPE="Ethernet"BOOTPROTO="none"DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="yes"IPV6_AUTOCONF="yes"IPV6_DEFROUTE="yes"IPV6_FAILURE_FATAL="no"NAME="enp0s3"UUID="e9f9caef-cb9e-4a19-aace-767c6ee6f849"ONBOOT="yes"HWADDR="08:00:27:80:63:19"IPADDR0="192.168.1.150"PREFIX0="24"GATEWAY0="192.168.1.1"DNS1="192.168.1.1"IPV6_PEERDNS="yes"IPV6_PEERROUTES="yes"
好的,现在我们将在相同的子网中分配多个地址了。
编辑文件/etc/sysconfig/network-scripts/ifcfg-enp0s3:
vi/etc/sysconfig/network-scripts/ifcfg-enp0s3
像下面那样加入额外的IP地址。
TYPE="Ethernet"BOOTPROTO="none"DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="yes"IPV6_AUTOCONF="yes"IPV6_DEFROUTE="yes"IPV6_FAILURE_FATAL="no"NAME="enp0s3"UUID="933cdc9b-b383-4ddd-b219-5a72c69c9cf0"ONBOOT="yes"HWADDR="08:00:27:3F:AB:68"IPADDR0="192.168.1.150"IPADDR1="192.168.1.151"IPADDR2="192.168.1.152"PREFIX0="24"GATEWAY0="192.168.1.1"DNS1="192.168.1.1"IPV6_PEERDNS="yes"IPV6_PEERROUTES="yes"
如你所见,我已经加了两个IP地址:IPADDR1=”192.168.1.151″ & IPADDR2=”192.168.1.152″
类似地,你可以加入更多的ip地址。
systemctlrestartnetwork
现在,让我们检查是否已经加入了ip地址。
:lo:<LOOPBACK,LOWER_UP>mtu1500qdiscpfifo_faststateUPqlen1000link/ether08:00:27:3f:ab:68brdff:ff:ff:ff:ff:ffinet192.168.1.150/24brd192.168.1.255scopeglobalenp0s3valid_lftforeverpreferred_lftforeverinet192.168.1.151/24brd192.168.1.255scopeglobalsecondaryenp0s3valid_lftforeverpreferred_lftforeverinet192.168.1.152/24brd192.168.1.255scopeglobalsecondaryenp0s3valid_lftforeverpreferred_lftforeverinet6fe80::a00:27ff:fe3f:ab68/64scopelinkvalid_lftforeverpreferred_lftforever
如你所见,单个网卡已经有3个ip地址了。
让我们ping一下新增的IP地址:
ping-c4192.168.1.151
示例输出:
PING192.168.1.151(192.168.1.151)56(84)bytesofdata.64bytesfrom192.168.1.151:icmp_seq=1ttl=64time=0.048ms64bytesfrom192.168.1.151:icmp_seq=2ttl=64time=0.075ms64bytesfrom192.168.1.151:icmp_seq=3ttl=64time=0.077ms64bytesfrom192.168.1.151:icmp_seq=4ttl=64time=0.077ms---192.168.1.151pingstatistics---4packetstransmitted,4received,0%packetloss,time2999msrttmin/avg/max/mdev=0.048/0.069/0.077/0.013ms
ping-c4192.168.1.152
示例输出:
PING192.168.1.152(192.168.1.152)56(84)bytesofdata.64bytesfrom192.168.1.152:icmp_seq=1ttl=64time=0.034ms64bytesfrom192.168.1.152:icmp_seq=2ttl=64time=0.075ms64bytesfrom192.168.1.152:icmp_seq=3ttl=64time=0.073ms64bytesfrom192.168.1.152:icmp_seq=4ttl=64time=0.075ms---192.168.1.152pingstatistics---4packetstransmitted,time2999msrttmin/avg/max/mdev=0.034/0.064/0.075/0.018ms
如果你想要使用不同的子网,你要改变PREFIX0=24成不同的子网,比如PREFIX1=16。
比如,我想要添加一个A类地址(*比如10.0.0.1)到我的网卡中。
TYPE="Ethernet"BOOTPROTO="none"DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="yes"IPV6_AUTOCONF="yes"IPV6_DEFROUTE="yes"IPV6_FAILURE_FATAL="no"NAME="enp0s3"UUID="933cdc9b-b383-4ddd-b219-5a72c69c9cf0"ONBOOT="yes"HWADDR="08:00:27:3F:AB:68"IPADDR0="192.168.1.150"IPADDR1="192.168.1.151"IPADDR2="192.168.1.152"IPADDR3="10.0.0.1"PREFIX0="24"PREFIX1=16GATEWAY0="192.168.1.1"DNS1="192.168.1.1"IPV6_PEERDNS="yes"IPV6_PEERROUTES="yes"
你可以看到我已经添加一个A类地址(10.0.0.1)并且前缀是16。
ping-c410.0.0.1
示例输出:
PING10.0.0.1(10.0.0.1)56(84)bytesofdata.64bytesfrom10.0.0.1:icmp_seq=1ttl=64time=0.097ms64bytesfrom10.0.0.1:icmp_seq=2ttl=64time=0.073ms64bytesfrom10.0.0.1:icmp_seq=3ttl=64time=0.074ms64bytesfrom10.0.0.1:icmp_seq=4ttl=64time=0.075ms---10.0.0.1pingstatistics---4packetstransmitted,time3000msrttmin/avg/max/mdev=0.073/0.079/0.097/0.014ms
相似地,你可以添加不同的网关。
就是这样。