標籤

2015年3月13日 星期五

CentOS7 網路設定與控制網路裝置名稱

CentOS 7 安裝完後,之前安裝視窗界面,預設為DHCP。若當時未手動設定網路,並且發現所在的網路無DHCP Server 時。則需在 本機 console 下,編輯 /etc/sysconfig/network-script/ifcfg-en* 。文篇文章除了介紹手動設定網路外,也介紹如何變更或控制網路裝置名稱。CentOS-7 FAQ#2.



*本次安裝套件時,選擇 "Minimal Install",ifconfig/netstat等常用工具不會安裝它。如果你真的需要它,請利用 " nmcli c up ifname $interface " 啟用你的網路,然後再用 yum 安裝套件 " net-tools "


一、" en* " 的名稱在 CentOS 7是 Kernel 預設給予的,本例:網路界面名稱為"ens160"。
[root@CentOS-7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens160
HWADDR=00:50:56:BE:48:0D
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=ens160                                                              
ONBOOT=no

 一個「靜態分配」設定檔
[root@CentOS-7 ~]#cat /etc/sysconfig/network-scripts/ifcfg-ens160
NAME=ens160
HWADDR=00:50:56:BE:48:0D
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
IPADDR=172.21.102.109
PREFIX=24
#   the GATEWAY is sometimes in: /etc/sysconfig/network
GATEWAY=172.21.102.254
DNS1=8.8.8.8
DNS2=168.95.1.1

此外,通用項目如主機名稱及 DNS 伺服器可選擇性地放置在:
[root@CentOS-7 ~]#cat /etc/sysconfig/network
HOSTNAME=acme.example.com
DNS1=10.16.1.112
DNS2=8.8.8.8
## DNS2=76.242.0.28
SEARCH=example.com


二、使用傳統名稱 eth0,1,2....... :

1.編輯 /etc/default/grub 將 "net.ifnames=0" 與 "net.ifnames=0" 加進 GRUB_CMDLINE_LINUX 後雙引號內最後面
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="vconsole.keymap=us crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb quiet net.ifnames=0 biosdevname=0"
GRUB_DISABLE_RECOVERY="true"

2.然後運行以下命令來重新生成GRUB配置與更新的內核參數。
grub2-mkconfig -o /boot/grub2/grub.cfg

3.在 /etc/sysconfig/network-scripts/ 內把你的網絡卡設定檔改名為 ifcfg-ethX,並編輯ifcfg-eth0 DEVICE=eth0

4.重新開機後,就可使用傳統的網路裝置名稱


三、假若你希望控置網路卡裝置名稱,不希望由Kernel決定,需要透過 /etc/udev/rules.d/60-net.rules 蓋過 /usr/lib/udev/rules.d/60-net.rules

1.作完以上一、二大項的頻驟,執行以下命令
[root@centos-7 ~]#cp -a /usr/lib/udev/rules.d/60-net.rules /etc/udev/rules.d/60-net.rules

[root@centos-7 ~]#vi /etc/udev/rules.d/60-net.rules
#ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", PROGRAM="/lib/udev/rename_device", RESULT=="?*", NAME="$result"
ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1",ATTR{address}=="00:50:56:be:48:0d" , KERNEL=="eth*" , NAME="nic0"

[root@centos-7 ~]#vi /etc/sysconfig/network-script/ifcfg-eth0
DEVICE=eth0 => DEVICE=nic0

[root@centos-7 ~]# reboot


*如果網絡配置(例如,IPv4 setting,firewall rules)是基於舊名稱(變更前),則需要更新的網絡配置,以反映更改的名稱。