網(wǎng)卡命名機制
- 早期的系統(tǒng)網(wǎng)卡命名都是非常容易變化的
- 在CentOS6之前,網(wǎng)絡接口使用連續(xù)號碼命令如:eth0,eth1.....等,當增加或刪除網(wǎng)卡時,名稱可能會發(fā)生變化
Centos7使用基于硬件, 設備拓撲和設備類型命令:
- CentOS7 和Centos6的不同就是通過硬件來生成你的網(wǎng)卡名稱
- 他生成的時候有一系列的命名過程:
- 首先他會基于你的固件如BOISS里面的信息或其他的硬件的信息來進行識別,比如他有可能會識別為eno1,eno就是內置網(wǎng)卡的意思
- 如果你不是內置網(wǎng)卡時外置的,比方說是PCI-E的插槽外置網(wǎng)卡,他可能會設備ens1
- 當然也有可能會識別別的名稱如:ens0等等
- 總之會根據(jù)你的物理位置,和主板的信息來識別和生成網(wǎng)卡名稱
- 所以這就可以保證我們的網(wǎng)卡不會那么容易變化,導致服務器斷網(wǎng)等等一些危險的情況
- 甚至有可能會用到我們物理網(wǎng)卡的MAC地址來命令
- 當然有利也有弊,不容易管理,如果你實在是不喜歡,一樣也可以采用傳統(tǒng)的命名機制
網(wǎng)卡名稱
- 在老期版本的里面我們的網(wǎng)卡名不是叫eth0,eh1嗎
- 有的廠家為了避免網(wǎng)卡名的變化就開發(fā)了一些軟件,讓你的網(wǎng)卡名稱不像那么老變,其中有個軟件可以實現(xiàn)這功能
biosdevname
- 這是老早期的軟件,裝上這個軟件以后你的網(wǎng)卡可能會生成這種名字,:如內置網(wǎng)卡會生成em1,em2,外置網(wǎng)卡會生成:pypX :y(slot)插槽的意思 : X(port)意思是第幾個端口
- 那我們來看看這個軟件
[root@localhost ~]# rpm -qi biosdevname
Name : biosdevname Relocations: (not relocatable)
Version : 0.7.2 Vendor: CentOS
Release : 1.el6 Build Date: Wed 22 Mar 2017 12:30:37 PM CST
Install Date: Wed 28 Jun 2017 11:52:56 AM CST Build Host: c1bm.rdu2.centos.org
Group : System Environment/Base Source RPM: biosdevname-0.7.2-1.el6.src.rpm
Size : 55296 License: GPLv2
Signature : RSA/SHA1, Thu 23 Mar 2017 11:02:59 PM CST, Key ID 0946fca2c105b9de
Packager : CentOS BuildSystem <http://bugs.centos.org>
URL : http://linux.dell.com/files/biosdevname
Summary : Udev helper for naming devices per BIOS names
Description :
biosdevname in its simplest form takes a kernel device name as an
argument, and returns the BIOS-given name it "should" be. This is necessary
on systems where the BIOS name for a given device (e.g. the label on
the chassis is "Gb1") doesn't map directly and obviously to the kernel
name (e.g. eth0).
- 瞧上面網(wǎng)址就給咋們列出了來了DEll,我相信你們都知道這是上面廠家,那就是戴爾
- 只要你買的是DELL的服務器,會自帶給你配一個biosdevname的軟件
- 如果你公司買的是DELL的服務器,自己不修改的話可能看到的是這種網(wǎng)卡名字
- 當然別的廠家也可以裝這個軟件,但是別的廠家一般默認不會配,或者是有這個軟件沒啟用這個功能
名稱組成格式
-
在CentOS7 里面他的命名如下:
- **en**:**Ethernet** 有線局域網(wǎng) - **wl**:**wlan** 無線局域網(wǎng) - **ww**:**wwan** 無線廣域網(wǎng) 名稱類型
o
<index>:集成設備的設備索引號s
<slot>擴展的索引號x
<MAC>基于MAC地址的命令p
<bus>s<slot>:enp2s1
網(wǎng)卡設備的命令過程
- 對于CentOS7來講有一系列的命名過程
- 第一步:
udev,輔助工具程序/linb/udev/rename_device/usr/lib/udev/rules.d/60-net.rules - 第二步:
biosdevname,會根據(jù)/usr/lib/udev/rules.d/71-biosdrvname.rules - 第三步:通過檢查網(wǎng)絡接口設備,根據(jù)
/usr/lib/udev/rulis.d/75-net-description如: - ID_NET_NAME_ONBOARD
- ID_NET_NAME_SLOT
- ID_NET_NAME_PATH
采用傳統(tǒng)命名方式
使用傳統(tǒng)命令方式
- 其實很簡單我們只需要修改內核選項就可以了,下面我們開始介紹
- 方法1:進入
grub.cfg由于里面數(shù)據(jù)較多,找到BEGIN /etc/grub.d/10_linu開頭的行,在找到LANG=en_US.UTF-8結尾的行在后面加上net.ifnames=0即可
[root@localhost ~]# vim /boot/grub2/grub.cfg
### BEGIN /etc/grub.d/10_linux ###
menuentry 'CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menue
ntry_id_option 'gnulinux-3.10.0-327.el7.x86_64-advanced-e9dc3158-e6dd-41d1-b51e-c24105d130cc' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod xfs
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd
0,msdos1' 3ffaae18-be19-44b1-b629-e850953533b2
else
search --no-floppy --fs-uuid --set=root 3ffaae18-be19-44b1-b629-e850953533b2
fi
linux16 /vmlinuz-3.10.0-327.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/
swap rhgb quiet LANG=en_US.UTF-8 net.ifnames=0 <<<<<在后面加上 net.ifnames=0即可
initrd16 /initramfs-3.10.0-327.el7.x86_64.img
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:6f:cf:88 brd ff:ff:ff:ff:ff:ff
inet 192.168.42.130/24 brd 192.168.42.255 scope global dynamic eth0
valid_lft 1182sec preferred_lft 1182sec
inet6 fe80::20c:29ff:fe6f:cf88/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:6f:cf:92 brd ff:ff:ff:ff:ff:ff
inet 172.17.253.208/16 brd 172.17.255.255 scope global dynamic eth1
valid_lft 85782sec preferred_lft 85782sec
inet6 fe80::20c:29ff:fe6f:cf92/64 scope link
valid_lft forever preferred_lft forever
- 方法2:
- 用
grub2-mkconfig來生成,他是根據(jù)/etc/default/grub這個文件來生成的,我們也可以把這個文件也改了,下次在用grub2-mkconfig來生成就會有我們改過的net.ifnames-0了,我們修改的是倒數(shù)第二行
- 用
[root@localhost ~]# vi /etc/default/grub
[root@localhost ~]# vi /etc/default/grub
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="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet net.ifnames=0"
GRUB_DISABLE_RECOVERY="true"
~
- 所謂的方法2,就是已經(jīng)改好了的
/etc/default/grub,來重定向/boot?grub2/grub.cfg,不過原來的設計者也帶有這個選項-o有重定向功能
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-327.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-327.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-5ec44303424e44a3a31f7b97358af5de
Found initrd image: /boot/initramfs-0-rescue-5ec44303424e44a3a31f7b97358af5de.img
done
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:6f:cf:88 brd ff:ff:ff:ff:ff:ff
inet 192.168.42.130/24 brd 192.168.42.255 scope global dynamic eth0
valid_lft 1784sec preferred_lft 1784sec
inet6 fe80::20c:29ff:fe6f:cf88/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:6f:cf:92 brd ff:ff:ff:ff:ff:ff
inet 172.17.253.208/16 brd 172.17.255.255 scope global dynamic eth1
valid_lft 86384sec preferred_lft 86384sec
inet6 fe80::20c:29ff:fe6f:cf92/64 scope link
valid_lft forever preferred_lft forever
CentOS7 網(wǎng)絡配置工具
- CentOS7里面,他有一個重大的變化就是,在CentOS7里面有一個重大的服務
- 那就是systemctl status NetworkManager服務,這個服務在CentOS7里面很穩(wěn)定,而且功能很強,CentOS6里面也有這個服務,推薦還是別用因為不穩(wěn)定,在CentOS7里面已經(jīng)是一個主流的服務了,那對應的這個服務有很多工具,我們來開始介紹
[root@localhost ~]# systemctl status NetworkManager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2017-06-29 20:38:09 CST; 16min ago
Main PID: 999 (NetworkManager)
CGroup: /system.slice/NetworkManager.service
├─ 999 /usr/sbin/NetworkManager --no-daemon
├─1337 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-eth1.pid -lf /var/lib/NetworkManager/dh...
└─1338 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-eth0.pid -lf /var/lib/NetworkManager/dh...
Jun 29 20:49:43 localhost.localdomain dhclient[1338]: DHCPREQUEST on eth0 to 192.168.42.254 port 67 (xid=0x6091a5ea)
Jun 29 20:49:43 localhost.localdomain dhclient[1338]: DHCPACK from 192.168.42.254 (xid=0x6091a5ea)
Jun 29 20:49:43 localhost.localdomain NetworkManager[999]: <info> address 192.168.42.130
Jun 29 20:49:43 localhost.localdomain NetworkManager[999]: <info> plen 24 (255.255.255.0)
Jun 29 20:49:43 localhost.localdomain NetworkManager[999]: <info> server identifier 192.168.42.254
Jun 29 20:49:43 localhost.localdomain NetworkManager[999]: <info> lease time 1800
Jun 29 20:49:43 localhost.localdomain NetworkManager[999]: <info> nameserver '192.168.42.1'
Jun 29 20:49:43 localhost.localdomain NetworkManager[999]: <info> domain name 'localdomain'
CentOS7主機名
- CentOS7里面有一個專門來控制主機名的名字叫
hostnamectl,原來的hostname還在,只不過比他多了些功能和,顯示更詳細的信息
[root@localhost ~]# hostnamectl
Static hostname: localhost.localdomain
Icon name: computer-vm
Chassis: vm
Machine ID: 5ec44303424e44a3a31f7b97358af5de
Boot ID: a6a9666d1d5644618b7127c02b53f786
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-327.el7.x86_64
Architecture: x86-64
- 這個命令就是比以前的CentOS6多了點功能,以前我們在CentOS6里面運行了hostname主機名只是臨時生效,我們還要去
/etc/sysconfig/network里面去修改 - 但是在CentOS7里面運行這個命令就可以直接改掉主機名了
- 我們運行
hostnamectl set-hostname Centos8這個命令
[root@localhost ~]# hostnamectl set-hostname Centos8
[root@centos8 ~]#
- 有一個要注意的是 在CentOS7里面主機名已經(jīng)不是在
/etc/sysconfig/network里面了 - 在CentOS7里面主機名存放在
/etc/hostname里面 - 如果
/etc/hostname文件刪了他就會使用CentOS7,默認的主機名localhost.localdomain - 當然了還有一個很重要的地方,那就是主機改了還有一個地方最好還是改下,以免系統(tǒng)以后出現(xiàn)特殊故障
- 那就是/etc/hosts下加上你的主機名,你可以不改但是以后用應用軟件會出現(xiàn)一些特殊問題
[root@centos8 ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 centos8 <<這里加上主機名
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
- 在CentOS7里面運行
nm-connection-editor命令可以打開圖形化工具來配置網(wǎng)卡,圖形化這就不多說了
[root@localhost ~]# nm-connection-editor
- 還可以用字符界面的工具
nmtui這個命令也不過多解釋
[root@localhost ~]# nmtui