网卡命名机制
- 早期的系统网卡命名都是非常容易变化的
- 在CentOS6之前,网络接口使用连续号码命令如:eth0,eth1.....等,当增加或删除网卡时,名称可能会发生变化
Centos7使用基于硬件, 设备拓扑和设备类型命令:
- CentOS7 和Centos6的不同就是通过硬件来生成你的网卡名称
- 他生成的时候有一系列的命名过程:
- 首先他会基于你的固件如BOISS里面的信息或其他的硬件的信息来进行识别,比如他有可能会识别为eno1,eno就是内置网卡的意思
- 如果你不是内置网卡时外置的,比方说是PCI-E的插槽外置网卡,他可能会设备ens1
- 当然也有可能会识别别的名称如:ens0等等
- 总之会根据你的物理位置,和主板的信息来识别和生成网卡名称
- 所以这就可以保证我们的网卡不会那么容易变化,导致服务器断网等等一些危险的情况
- 甚至有可能会用到我们物理网卡的MAC地址来命令
- 当然有利也有弊,不容易管理,如果你实在是不喜欢,一样也可以采用传统的命名机制
网卡名称
- 在老期版本的里面我们的网卡名不是叫eth0,eh1吗
- 有的厂家为了避免网卡名的变化就开发了一些软件,让你的网卡名称不像那么老变,其中有个软件可以实现这功能
biosdevname
- 这是老早期的软件,装上这个软件以后你的网卡可能会生成这种名字,:如内置网卡会生成em1,em2,外置网卡会生成: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).
- 瞧上面网址就给咋们列出了来了DEll,我相信你们都知道这是上面厂家,那就是戴尔
- 只要你买的是DELL的服务器,会自带给你配一个biosdevname的软件
- 如果你公司买的是DELL的服务器,自己不修改的话可能看到的是这种网卡名字
- 当然别的厂家也可以装这个软件,但是别的厂家一般默认不会配,或者是有这个软件没启用这个功能
名称组成格式
-
在CentOS7 里面他的命名如下:
- **en**:**Ethernet** 有线局域网 - **wl**:**wlan** 无线局域网 - **ww**:**wwan** 无线广域网
名称类型
o
<index>
:集成设备的设备索引号s
<slot>
扩展的索引号x
<MAC>
基于MAC地址的命令p
<bus>
s<slot>
:enp2s1
网卡设备的命令过程
- 对于CentOS7来讲有一系列的命名过程
- 第一步:
udev
,辅助工具程序/linb/udev/rename_device/usr/lib/udev/rules.d/60-net.rules
- 第二步:
biosdevname
,会根据/usr/lib/udev/rules.d/71-biosdrvname.rules
- 第三步:通过检查网络接口设备,根据
/usr/lib/udev/rulis.d/75-net-description
如: - ID_NET_NAME_ONBOARD
- ID_NET_NAME_SLOT
- ID_NET_NAME_PATH
采用传统命名方式
使用传统命令方式
- 其实很简单我们只需要修改内核选项就可以了,下面我们开始介绍
- 方法1:进入
grub.cfg
由于里面数据较多,找到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
来生成,他是根据/etc/default/grub
这个文件来生成的,我们也可以把这个文件也改了,下次在用grub2-mkconfig
来生成就会有我们改过的net.ifnames-0
了,我们修改的是倒数第二行
- 用
[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,就是已经改好了的
/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 网络配置工具
- CentOS7里面,他有一个重大的变化就是,在CentOS7里面有一个重大的服务
- 那就是systemctl status NetworkManager服务,这个服务在CentOS7里面很稳定,而且功能很强,CentOS6里面也有这个服务,推荐还是别用因为不稳定,在CentOS7里面已经是一个主流的服务了,那对应的这个服务有很多工具,我们来开始介绍
[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里面主机名已经不是在
/etc/sysconfig/network
里面了 - 在CentOS7里面主机名存放在
/etc/hostname
里面 - 如果
/etc/hostname
文件删了他就会使用CentOS7,默认的主机名localhost.localdomain
- 当然了还有一个很重要的地方,那就是主机改了还有一个地方最好还是改下,以免系统以后出现特殊故障
- 那就是/etc/hosts下加上你的主机名,你可以不改但是以后用应用软件会出现一些特殊问题
[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
命令可以打开图形化工具来配置网卡,图形化这就不多说了
[root@localhost ~]# nm-connection-editor
- 还可以用字符界面的工具
nmtui
这个命令也不过多解释
[root@localhost ~]# nmtui