首頁 > 軟體

在CentOS 7上給一個網絡卡分配多個IP地址

2020-06-16 18:03:31

有時你也許想要給一個網絡卡多個地址。你該怎麼做呢?另外買一個網絡卡來分配地址?在小型網路中其實不用這麼做。我們現在可以在CentOS/RHEL 7中給一個網絡卡分配多個ip地址。想知道怎麼做麼?好的,跟隨我,這並不難。

首先,讓我們找到網絡卡的IP地址。在我的CentOS 7伺服器中,我只使用了一個網絡卡。

用root特權執行下面的命令:

  1. ip addr

範例輸出:

  1. 1: lo:<LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
  2. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  3. inet 127.0.0.1/8 scope host lo
  4. valid_lft forever preferred_lft forever
  5. inet6 ::1/128 scope host
  6. valid_lft forever preferred_lft forever
  7. 2: enp0s3:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  8. link/ether 08:00:27:80:63:19 brd ff:ff:ff:ff:ff:ff
  9. inet 192.168.1.150/24 brd 192.168.1.255 scope global enp0s3
  10. valid_lft forever preferred_lft forever

如上所見,我的網絡卡名是enp0s3,ip地址是192.168.1.150。

如你所知,網絡卡的組態檔儲存在 /etc/sysconfig/network-scripts/ 目錄下。每個網絡卡的詳細內容將會以不同的名字儲存,比如ifcfg-enp0s3

讓我們看下ifcfg-enp0s3的細節。

  1. cat /etc/sysconfig/network-scripts/ifcfg-enp0s3

範例輸出:

  1. TYPE="Ethernet"
  2. BOOTPROTO="none"
  3. DEFROUTE="yes"
  4. IPV4_FAILURE_FATAL="no"
  5. IPV6INIT="yes"
  6. IPV6_AUTOCONF="yes"
  7. IPV6_DEFROUTE="yes"
  8. IPV6_FAILURE_FATAL="no"
  9. NAME="enp0s3"
  10. UUID="e9f9caef-cb9e-4a19-aace-767c6ee6f849"
  11. ONBOOT="yes"
  12. HWADDR="08:00:27:80:63:19"
  13. IPADDR0="192.168.1.150"
  14. PREFIX0="24"
  15. GATEWAY0="192.168.1.1"
  16. DNS1="192.168.1.1"
  17. IPV6_PEERDNS="yes"
  18. IPV6_PEERROUTES="yes"

好的,現在我們將在相同的子網中分配多個地址了。

編輯檔案 /etc/sysconfig/network-scripts/ifcfg-enp0s3

  1. vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

像下面那樣加入額外的IP地址。

  1. TYPE="Ethernet"
  2. BOOTPROTO="none"
  3. DEFROUTE="yes"
  4. IPV4_FAILURE_FATAL="no"
  5. IPV6INIT="yes"
  6. IPV6_AUTOCONF="yes"
  7. IPV6_DEFROUTE="yes"
  8. IPV6_FAILURE_FATAL="no"
  9. NAME="enp0s3"
  10. UUID="933cdc9b-b383-4ddd-b219-5a72c69c9cf0"
  11. ONBOOT="yes"
  12. HWADDR="08:00:27:3F:AB:68"
  13. IPADDR0="192.168.1.150"
  14. IPADDR1="192.168.1.151"
  15. IPADDR2="192.168.1.152"
  16. PREFIX0="24"
  17. GATEWAY0="192.168.1.1"
  18. DNS1="192.168.1.1"
  19. IPV6_PEERDNS="yes"
  20. IPV6_PEERROUTES="yes"

如你所見,我已經加了兩個IP地址:IPADDR1=”192.168.1.151″ & IPADDR2=”192.168.1.152″

類似地,你可以加入更多的ip地址。

最後,儲存並退出檔案。重新啟動網路服務來使更改生效。

  1. systemctl restart network

現在,讓我們檢查是否已經加入了ip地址。

  1. ip addr

範例輸出:

  1. : lo:<LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
  2. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  3. inet 127.0.0.1/8 scope host lo
  4. valid_lft forever preferred_lft forever
  5. inet6 ::1/128 scope host
  6. valid_lft forever preferred_lft forever
  7. 2: enp0s3:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  8. link/ether 08:00:27:3f:ab:68 brd ff:ff:ff:ff:ff:ff
  9. inet 192.168.1.150/24 brd 192.168.1.255 scope global enp0s3
  10. valid_lft forever preferred_lft forever
  11. inet 192.168.1.151/24 brd 192.168.1.255 scope global secondary enp0s3
  12. valid_lft forever preferred_lft forever
  13. inet 192.168.1.152/24 brd 192.168.1.255 scope global secondary enp0s3
  14. valid_lft forever preferred_lft forever
  15. inet6 fe80::a00:27ff:fe3f:ab68/64 scope link
  16. valid_lft forever preferred_lft forever

如你所見,單個網絡卡已經有3個ip地址了。

讓我們ping一下新增的IP地址:

  1. ping -c 4192.168.1.151

範例輸出:

  1. PING 192.168.1.151(192.168.1.151)56(84) bytes of data.
  2. 64 bytes from192.168.1.151: icmp_seq=1 ttl=64 time=0.048 ms
  3. 64 bytes from192.168.1.151: icmp_seq=2 ttl=64 time=0.075 ms
  4. 64 bytes from192.168.1.151: icmp_seq=3 ttl=64 time=0.077 ms
  5. 64 bytes from192.168.1.151: icmp_seq=4 ttl=64 time=0.077 ms
  6. ---192.168.1.151 ping statistics ---
  7. 4 packets transmitted,4 received,0% packet loss, time 2999ms
  8. rtt min/avg/max/mdev =0.048/0.069/0.077/0.013 ms

  1. ping -c 4192.168.1.152

範例輸出:

  1. PING 192.168.1.152(192.168.1.152)56(84) bytes of data.
  2. 64 bytes from192.168.1.152: icmp_seq=1 ttl=64 time=0.034 ms
  3. 64 bytes from192.168.1.152: icmp_seq=2 ttl=64 time=0.075 ms
  4. 64 bytes from192.168.1.152: icmp_seq=3 ttl=64 time=0.073 ms
  5. 64 bytes from192.168.1.152: icmp_seq=4 ttl=64 time=0.075 ms
  6. ---192.168.1.152 ping statistics ---
  7. 4 packets transmitted,4 received,0% packet loss, time 2999ms
  8. rtt min/avg/max/mdev =0.034/0.064/0.075/0.018 ms

如果你想要使用不同的子網,你要改變PREFIX0=24成不同的子網,比如 PREFIX1=16

比如,我想要新增一個A類地址(*比如10.0.0.1)到我的網絡卡中。

  1. TYPE="Ethernet"
  2. BOOTPROTO="none"
  3. DEFROUTE="yes"
  4. IPV4_FAILURE_FATAL="no"
  5. IPV6INIT="yes"
  6. IPV6_AUTOCONF="yes"
  7. IPV6_DEFROUTE="yes"
  8. IPV6_FAILURE_FATAL="no"
  9. NAME="enp0s3"
  10. UUID="933cdc9b-b383-4ddd-b219-5a72c69c9cf0"
  11. ONBOOT="yes"
  12. HWADDR="08:00:27:3F:AB:68"
  13. IPADDR0="192.168.1.150"
  14. IPADDR1="192.168.1.151"
  15. IPADDR2="192.168.1.152"
  16. IPADDR3="10.0.0.1"
  17. PREFIX0="24"
  18. PREFIX1=16
  19. GATEWAY0="192.168.1.1"
  20. DNS1="192.168.1.1"
  21. IPV6_PEERDNS="yes"
  22. IPV6_PEERROUTES="yes"

你可以看到我已經新增一個A類地址(10.0.0.1)並且字首是16。

儲存並退出檔案。重新啟動網路服務,接著,ping新增的地址:

  1. ping -c 410.0.0.1

範例輸出:

  1. PING 10.0.0.1(10.0.0.1)56(84) bytes of data.
  2. 64 bytes from10.0.0.1: icmp_seq=1 ttl=64 time=0.097 ms
  3. 64 bytes from10.0.0.1: icmp_seq=2 ttl=64 time=0.073 ms
  4. 64 bytes from10.0.0.1: icmp_seq=3 ttl=64 time=0.074 ms
  5. 64 bytes from10.0.0.1: icmp_seq=4 ttl=64 time=0.075 ms
  6. ---10.0.0.1 ping statistics ---
  7. 4 packets transmitted,4 received,0% packet loss, time 3000ms
  8. rtt min/avg/max/mdev =0.073/0.079/0.097/0.014 ms

相似地,你可以新增不同的閘道器。

就是這樣。

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-03/115490.htm


IT145.com E-mail:sddin#qq.com