有時你也許想要給一個網卡多個位址。你該怎麼做呢?另外買一個網卡來配置設定位址?在小型網絡中其實不用這麼做。我們現在可以在centos/rhel 7中給一個網卡配置設定多個ip位址。想知道怎麼做麼?好的,跟随我,這并不難。

首先,讓我們找到網卡的ip位址。在我的centos 7伺服器中,我隻使用了一個網卡。
用root特權運作下面的指令:
<code>ip addr</code>
示例輸出:
<code>1: lo: <loopback,up,lower_up> mtu 65536 qdisc noqueue state unknown</code>
<code>link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00</code>
<code>inet 127.0.0.1/8 scope host lo</code>
<code>valid_lft forever preferred_lft forever</code>
<code>inet6 ::1/128 scope host</code>
<code>2: enp0s3: <broadcast,multicast,up,lower_up> mtu 1500 qdisc pfifo_fast state up qlen 1000</code>
<code>link/ether 08:00:27:80:63:19 brd ff:ff:ff:ff:ff:ff</code>
<code>inet 192.168.1.150/24 brd 192.168.1.255 scope global enp0s3</code>
如上所見,我的網卡名是enp0s3,ip位址是192.168.1.150。
如你所知,網卡的配置檔案存儲在 /etc/sysconfig/network-scripts/ 目錄下。每個網卡的詳細内容将會以不同的名字存儲,比如ifcfg-enp0s3。
讓我們看下ifcfg-enp0s3的細節。
<code>cat /etc/sysconfig/network-scripts/ifcfg-enp0s3</code>
<code>type="ethernet"</code>
<code>bootproto="none"</code>
<code>defroute="yes"</code>
<code>ipv4_failure_fatal="no"</code>
<code>ipv6init="yes"</code>
<code>ipv6_autoconf="yes"</code>
<code>ipv6_defroute="yes"</code>
<code>ipv6_failure_fatal="no"</code>
<code>name="enp0s3"</code>
<code>uuid="e9f9caef-cb9e-4a19-aace-767c6ee6f849"</code>
<code>onboot="yes"</code>
<code>hwaddr="08:00:27:80:63:19"</code>
<code>ipaddr0="192.168.1.150"</code>
<code>prefix0="24"</code>
<code>gateway0="192.168.1.1"</code>
<code>dns1="192.168.1.1"</code>
<code>ipv6_peerdns="yes"</code>
<code>ipv6_peerroutes="yes"</code>
好的,現在我們将在相同的子網中配置設定多個位址了。
編輯檔案 /etc/sysconfig/network-scripts/ifcfg-enp0s3:
<code>vi /etc/sysconfig/network-scripts/ifcfg-enp0s3</code>
像下面那樣加入額外的ip位址。
<code>uuid="933cdc9b-b383-4ddd-b219-5a72c69c9cf0"</code>
<code>hwaddr="08:00:27:3f:ab:68"</code>
<code>ipaddr1="192.168.1.151"</code>
<code>ipaddr2="192.168.1.152"</code>
如你所見,我已經加了兩個ip位址:ipaddr1=”192.168.1.151″ & ipaddr2=”192.168.1.152″
類似地,你可以加入更多的ip位址。
最後,儲存并退出檔案。重新開機網絡服務來使更改生效。
<code>systemctl restart network</code>
現在,讓我們檢查是否已經加入了ip位址。
<code>: lo: <loopback,up,lower_up> mtu 65536 qdisc noqueue state unknown</code>
<code>link/ether 08:00:27:3f:ab:68 brd ff:ff:ff:ff:ff:ff</code>
<code>inet 192.168.1.151/24 brd 192.168.1.255 scope global secondary enp0s3</code>
<code>inet 192.168.1.152/24 brd 192.168.1.255 scope global secondary enp0s3</code>
<code>inet6 fe80::a00:27ff:fe3f:ab68/64 scope link</code>
如你所見,單個網卡已經有3個ip位址了。
讓我們ping一下新增的ip位址:
<code>ping -c 4 192.168.1.151</code>
<code>ping 192.168.1.151 (192.168.1.151) 56(84) bytes of data.</code>
<code>64 bytes from 192.168.1.151: icmp_seq=1 ttl=64 time=0.048 ms</code>
<code>64 bytes from 192.168.1.151: icmp_seq=2 ttl=64 time=0.075 ms</code>
<code>64 bytes from 192.168.1.151: icmp_seq=3 ttl=64 time=0.077 ms</code>
<code>64 bytes from 192.168.1.151: icmp_seq=4 ttl=64 time=0.077 ms</code>
<code></code>
<code>--- 192.168.1.151 ping statistics ---</code>
<code>4 packets transmitted, 4 received, 0% packet loss, time 2999ms</code>
<code>rtt min/avg/max/mdev = 0.048/0.069/0.077/0.013 ms</code>
<code>ping -c 4 192.168.1.152</code>
<code>ping 192.168.1.152 (192.168.1.152) 56(84) bytes of data.</code>
<code>64 bytes from 192.168.1.152: icmp_seq=1 ttl=64 time=0.034 ms</code>
<code>64 bytes from 192.168.1.152: icmp_seq=2 ttl=64 time=0.075 ms</code>
<code>64 bytes from 192.168.1.152: icmp_seq=3 ttl=64 time=0.073 ms</code>
<code>64 bytes from 192.168.1.152: icmp_seq=4 ttl=64 time=0.075 ms</code>
<code>--- 192.168.1.152 ping statistics ---</code>
<code>rtt min/avg/max/mdev = 0.034/0.064/0.075/0.018 ms</code>
如果你想要使用不同的子網,你要改變prefix0=24成不同的子網,比如 prefix1=16。
比如,我想要添加一個a類位址(*比如10.0.0.1)到我的網卡中。
<code>ipaddr3="10.0.0.1"</code>
<code>prefix1=16</code>
你可以看到我已經添加一個a類位址(10.0.0.1)并且字首是16。
儲存并退出檔案。重新開機網絡服務,接着,ping新增的位址:
<code>ping -c 4 10.0.0.1</code>
<code>ping 10.0.0.1 (10.0.0.1) 56(84) bytes of data.</code>
<code>64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.097 ms</code>
<code>64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.073 ms</code>
<code>64 bytes from 10.0.0.1: icmp_seq=3 ttl=64 time=0.074 ms</code>
<code>64 bytes from 10.0.0.1: icmp_seq=4 ttl=64 time=0.075 ms</code>
<code>--- 10.0.0.1 ping statistics ---</code>
<code>4 packets transmitted, 4 received, 0% packet loss, time 3000ms</code>
<code>rtt min/avg/max/mdev = 0.073/0.079/0.097/0.014 ms</code>
相似地,你可以添加不同的網關。
就是這樣。
原文釋出時間:2015-03-26
本文來自雲栖合作夥伴“linux中國”