Centos7系統配置上的變化(三)為網絡接口添加多IP


實驗的方法有 nmtui, 編輯ifcfg-*文件,ip addr 指令,子連接配置文件。

一、nmtui手工添加IP



看一下當前網絡設備的IP,為了精簡指令輸出,指令就要復雜一些了:

[root@centos7 ~]# nmcli -t -f IP4.ADDRESS dev show enp0s3 IP4.ADDRESS[1]:ip = 192.168.150.110/24, gw = 192.168.150.254 [root@centos7 ~]# [root@centos7 ~]# ip addr show enp0s3 scope global 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:15:35:d2 brd ff:ff:ff:ff:ff:ff inet 192.168.150.110/24 brd 192.168.150.255 scope global enp0s3 valid_lft forever preferred_lft forever [root@centos7 ~]# [root@centos7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 ...... IPADDR0=192.168.150.110 PREFIX0=24 GATEWAY0=192.168.150.254 DNS1=192.168.150.254 HWADDR=08:00:27:15:35:D2 IPADDR1=192.168.150.111 PREFIX1=24 [root@centos7 ~]# 

新IP已經被加入到ifcfg-eth0中,原始地址的關鍵字是 IPADDR0、PREFIX0,新地址的關鍵字是 IPADDR1、PREFIX1

 

[root@centos7 ~]# nmcli con load /etc/sysconfig/network-scripts/ifcfg-eth0 [root@centos7 ~]# [root@centos7 ~]# nmcli -t -f IP4.ADDRESS dev show enp0s3 IP4.ADDRESS[1]:ip = 192.168.150.110/24, gw = 192.168.150.254 [root@centos7 ~]#
[root@centos7 ~]# ip addr show enp0s3 scope global
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:15:35:d2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.150.110/24 brd 192.168.150.255 scope global enp0s3
       valid_lft forever preferred_lft forever
[root@centos7 ~]#

load connection 后,NetworkManager 也沒有知曉新增IP,新增IP也沒有出現在 ip addr show 中。

[root@centos7 ~]# systemctl restart network [root@centos7 ~]# [root@centos7 ~]# nmcli -t -f IP4.ADDRESS dev show enp0s3 IP4.ADDRESS[1]:ip = 192.168.150.110/24, gw = 192.168.150.254 IP4.ADDRESS[2]:ip = 192.168.150.111/24, gw = 192.168.150.254 [root@centos7 ~]# [root@centos7 ~]# ip addr show enp0s3 scope global 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:15:35:d2 brd ff:ff:ff:ff:ff:ff inet 192.168.150.110/24 brd 192.168.150.255 scope global enp0s3 valid_lft forever preferred_lft forever [root@centos7 ~]# [root@centos7 ~]# [root@centos7 ~]# ping 192.168.150.111 PING 192.168.150.111 (192.168.150.111) 56(84) bytes of data. From 192.168.150.110 icmp_seq=1 Destination Host Unreachable From 192.168.150.110 icmp_seq=2 Destination Host Unreachable ...... [root@centos7 ~]# 

重啟network服務后,NetworkManager 知曉新增IP了,但新增IP還是沒有生效。

[root@centos7 ~]# nmcli dev connect enp0s3 [root@centos7 ~]# [root@centos7 ~]# [root@centos7 ~]# nmcli -t -f IP4.ADDRESS dev show enp0s3 IP4.ADDRESS[1]:ip = 192.168.150.110/24, gw = 192.168.150.254 IP4.ADDRESS[2]:ip = 192.168.150.111/24, gw = 192.168.150.254 [root@centos7 ~]# [root@centos7 ~]# [root@centos7 ~]# ip addr show enp0s3 scope global 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:15:35:d2 brd ff:ff:ff:ff:ff:ff inet 192.168.150.110/24 brd 192.168.150.255 scope global enp0s3 valid_lft forever preferred_lft forever inet 192.168.150.111/24 brd 192.168.150.255 scope global secondary enp0s3 valid_lft forever preferred_lft forever [root@centos7 ~]# [root@centos7 ~]# [root@centos7 ~]# ping 192.168.150.111 PING 192.168.150.111 (192.168.150.111) 56(84) bytes of data. 64 bytes from 192.168.150.111: icmp_seq=1 ttl=64 time=0.039 ms 64 bytes from 192.168.150.111: icmp_seq=2 ttl=64 time=0.079 ms ...... [root@centos7 ~]#

重新連接設備 enp0s3,新IP生效了。

#修改於2014-10-10 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
注意:這里不需要先斷開設備(即 nmcli dev disconnect enp0s3),斷開設備的話ssh立刻斷線。直接重新連接設備ssh是不會斷線的。

如果重新連接設備沒有達到預期效果,那么必須斷開再重新連接設備,這時候可以用以下指令(ssh 不會斷線):

 [root@centos7 ~]# nmcli dev disconnect enp0s3 && nmcli dev connect enp0s3

 #修改於2014-10-10 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 

 

總結:

nmtui添加IP后,需要:
nmcli con load /etc/sysconfig/network-scripts/ifcfg-eth0
nmcli dev connect enp0s3

 

二、手工添加IP到ifcfg-eth0


在ifcfg-eth0配置文件中手工添加如下兩行:
IPADDR2=192.168.150.112
PREFIX2=24

先執行 nmcli con load /etc/sysconfig/network-scripts/ifcfg-eth0 后,在nmtui中可以看到新增IP。(也可以簡單的用 nmcli con reload ,reload 和 load的區別自己腦補一下吧。)
再執行 nmcli dev connect enp0s3 后,IP 192.168.150.112 才生效的。

手工添加IP到ifcfg-eth0后,需要:
nmcli con load /etc/sysconfig/network-scripts/ifcfg-eth0 或 nmcli con reload
nmcli dev connect enp0s3

 


三、用ip addr add指令添加/刪除IP,即刻生效,重啟不保留。

在線添加IP:

[root@centos7 ~]# ip addr add 192.168.150.113/24 dev enp0s3
[root@centos7 ~]#
[root@centos7 ~]#
[root@centos7 ~]# nmcli -t -f IP4.ADDRESS dev show enp0s3
IP4.ADDRESS[1]:ip = 192.168.150.110/24, gw = 192.168.150.254
IP4.ADDRESS[2]:ip = 192.168.150.111/24, gw = 192.168.150.254
IP4.ADDRESS[3]:ip = 192.168.150.112/24, gw = 192.168.150.254
IP4.ADDRESS[4]:ip = 192.168.150.113/24, gw = 192.168.150.254
[root@centos7 ~]#
[root@centos7 ~]#
[root@centos7 ~]# ip addr show enp0s3 scope global
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:15:35:d2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.150.110/24 brd 192.168.150.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet 192.168.150.111/24 brd 192.168.150.255 scope global secondary enp0s3
       valid_lft forever preferred_lft forever
    inet 192.168.150.112/24 brd 192.168.150.255 scope global secondary enp0s3
       valid_lft forever preferred_lft forever
    inet 192.168.150.113/24 scope global secondary enp0s3
       valid_lft forever preferred_lft forever
[root@centos7 ~]#
[root@centos7 ~]#
[root@centos7 ~]# ping 192.168.150.113
PING 192.168.150.113 (192.168.150.113) 56(84) bytes of data.
64 bytes from 192.168.150.113: icmp_seq=1 ttl=64 time=0.098 ms
64 bytes from 192.168.150.113: icmp_seq=2 ttl=64 time=0.255 ms
......

/etc/sysconfig/network-scripts/ifcfg-eth0 配置文件里並沒有192.168.150.113,所以重啟后該IP不會保留。

在線刪除IP:

[root@centos7 ~]# ip addr del 192.168.150.113/24 dev enp0s3
[root@centos7 ~]#
[root@centos7 ~]#
[root@centos7 ~]# nmcli -t -f IP4.ADDRESS dev show enp0s3
IP4.ADDRESS[1]:ip = 192.168.150.110/24, gw = 192.168.150.254
IP4.ADDRESS[2]:ip = 192.168.150.111/24, gw = 192.168.150.254
IP4.ADDRESS[3]:ip = 192.168.150.112/24, gw = 192.168.150.254
[root@centos7 ~]#
[root@centos7 ~]#
[root@centos7 ~]# ip addr show enp0s3 scope global
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:15:35:d2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.150.110/24 brd 192.168.150.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet 192.168.150.111/24 brd 192.168.150.255 scope global secondary enp0s3
       valid_lft forever preferred_lft forever
    inet 192.168.150.112/24 brd 192.168.150.255 scope global secondary enp0s3
       valid_lft forever preferred_lft forever




四、使用子連接配置文件 ifcfg-*:n

子連接配置文件是 Centos6 常用的方法,即:如果當前網卡配置文件為 ifcfg-eth0,則子連接配置文件可以為 ifcfg-eth0:1,並且文件中需要寫明 DEVICE=eth0:1 , IPADDR=<新IP地址> 。
我們試試在Centos7 中是否也支持。理論上應該是不支持的,因為在Centos7的網絡連接配置文件(即 ifcfg-*)中,DEVICE關鍵字已經具有了新的定義,即我們上篇說的“設備”。參考上篇 http://www.cnblogs.com/panblack/p/Centos7-WhatsNew-02-networking.html

首先注釋掉ifcfg-eth0中的其他地址,復制 ifcfg-eth0 為 ifcfg-eth0:1,編輯ifcfg-eth0:1, DEVICE 設為eth0:1 ,IP設為 192.168.150.119 ,然后 nmcli con reload , nmcli dev con enp0s3

[root@centos7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
UUID=295e1841-0ff3-4db9-8800-4e25fc2944da
ONBOOT=yes
IPADDR0=192.168.150.110
PREFIX0=24
GATEWAY0=192.168.150.254
DNS1=192.168.150.254
HWADDR=08:00:27:15:35:D2
#IPADDR1=192.168.150.111
#PREFIX1=24
#IPADDR2=192.168.150.112
#PREFIX2=24

[root@centos7 ~]#
[root@centos7 ~]#
[root@centos7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0:1
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth0:1
DEVICE=eth0:1
UUID=295e1841-0ff3-4db9-8800-4e25fc2944da
ONBOOT=yes
IPADDR0=192.168.150.119
PREFIX0=24
GATEWAY0=192.168.150.254
DNS1=192.168.150.254
HWADDR=08:00:27:15:35:D2
[root@centos7 ~]#
[root@centos7 ~]# nmcli con reload
[root@centos7 ~]# nmcli dev connect enp0s3
[root@centos7 ~]#
[root@centos7 ~]# nmcli -t -f IP4.ADDRESS dev show enp0s3
IP4.ADDRESS[1]:ip = 192.168.150.110/24, gw = 192.168.150.254
[root@centos7 ~]#
[root@centos7 ~]#
[root@centos7 ~]# ip addr show enp0s3 scope global
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:15:35:d2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.150.110/24 brd 192.168.150.255 scope global eth0:1
       valid_lft forever preferred_lft forever
[root@centos7 ~]# 

可以看到ifcfg-eth0:1里的新IP確實沒有生效。


五、總結

  • ip addr show 中顯示的IP才是有效的。
  • ip addr add 能在線添加IP,立即生效,但重啟即丟。
  • ip addr del 能在線刪除IP,立即生效,但重啟即丟。
  • 子連接(ifcfg-*:n)已經無效了。
  • nmtui和編輯ifcfg-eth0 文件效果基本相同,都不能立即生效,必須 load 連接再重新connect網絡設備,即:
    nmcli con load /etc/sysconfig/network-scripts/ifcfg-eth0 或 nmcli reload
    nmcli dev connect enp0s3

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM