一、前言
本來準備寫一些網絡配置工具的使用,後來想了想(其實還是爲了偷懶),網上關於nmcli工具的使用文章不多,所以寫一下CentOS7中的nmcli工具的簡單使用和CentOS7中一些網絡屬性配置的相關變化。
二、CentOS7網絡方面的變化
很多朋友剛接觸到CentOS7的時候最不習慣的就是它的網卡命名方式了,不過不習慣終究還是得去了解它,畢竟一個運維人員要時刻保持先進性,我們一起來了解CentOS7中網卡的命名方式吧!
網卡命名機制
如果 Firmware或BIOS主板上集成設備的索引信息可用,且可預測,則根據此索引命名
如果 Firmware或BIOS爲PCI-E擴展插槽提供的索引信息可用,且可預測,則根據此索引命名
如果硬件接口的物理位置信息可用,則根據此信息進行命名,如enp2s1(表示第二個PCI-E插槽上的第一個索引號的以太網設備)
如果用戶顯式可用,也可根據MAC地址進行命名
上述均不可用,才使用傳統的eth0...進行命名
發問:爲什麼在CentOS7中要使用這種命名機制?
在CentOS7之前我們使用的網卡命名機制是有很多問題的,例如:如果有兩塊網卡,分別爲eth0和eth1,假設eth0網卡壞了,我們將它替換下來,換上新的網卡,我們可能會發現,新網卡卻變成eth2了,這樣我們再管理配置網絡就會出現很多問題。
而CentOS7中的命名方式就不會出現這種問題了,一般情況下只要你的接口不變化就不會出現網卡名稱會出現變化的情況。
CentOS7網卡名稱組成格式
en:表示Ethernet、以太網 wl:表示wlan、無線網 ww:表示wwan、無限廣域網 o:表示集成設備的設備索引號 s:表示擴展槽的索引號 x:表示基於MAC地址命名 ps:表示主板上哪個總線上的索引號
udev 通過udev讀取/lib/udev/rename_device,/usr/lib/udev/rules.d/60-net.rules來命名網卡設備 biosdevname 如果第一步未檢測到相應數據,則根據/usr/lib/udv/rules.d/71-biosdevname.rules文件中的信息來命名網卡設備 檢測網絡設備接口 如果第二步未檢測到相應數據,通過udev檢測網卡設備接口,根據/usr/lib/udev-rules.d/75-net-description中對於網卡設備的描述信息來命名網卡設備 使用傳統命名方式 如果以上方式均爲檢測到相應信息,則迴歸傳統的網卡命名方式
三、CentOS7迴歸傳統網卡命名方式
其實如果實在不喜歡CentOS7的網卡命名方式我們也是可以改回傳統的命名方式
1、編輯/etc/default/grub配置文件
[root@server1 ~]# vim /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="net.ifnames=0 crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet" #在前面添加net.ifnames=0 GRUB_DISABLE_RECOVERY="true"
2、爲grub2生成其配置文件
[root@server1 ~]# grub2-mkconfig > /etc/grub2.cfg #重建grub2配置重定向到原始配置文件 Generating grub configuration file ... Found linux p_w_picpath: /boot/vmlinuz-3.10.0-327.el7.x86_64 Found initrd p_w_picpath: /boot/initramfs-3.10.0-327.el7.x86_64.img Found linux p_w_picpath: /boot/vmlinuz-0-rescue-ec3b02cacfc74b14822e17fb4079710b Found initrd p_w_picpath: /boot/initramfs-0-rescue-ec3b02cacfc74b14822e17fb4079710b.img done [root@server1 ~]#
3、重啓系統
[root@server1 ~]# ifconfig #網卡以命名成eth0 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.192.132 netmask 255.255.255.0 broadcast 192.168.192.255 inet6 fe80::20c:29ff:fed1:44a3 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:d1:44:a3 txqueuelen 1000 (Ethernet) RX packets 75 bytes 8491 (8.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 90 bytes 14146 (13.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
地址配置工具:nmcli簡單介紹
nmcli工具是由NetworkManager提供的一個命令行配置工具,我們在這裏只它的一些簡單用法,此博文可能以後會進行更新對nmcli進行全面講解。
nmcli [ OPTIONS ] OBJECT { COMMAND | help } #nmcli語法
將eth0的IP地址配置爲192.168.1.1/24
nmcli con modify eth0 ipv4.addresses 192.168.1.1/24
將eth0的網關地址配置爲192.168.1.254
nmcli con modify eth0 ipv4.gateway 192.168.1.254
將eth0的dns1設置爲202.102.192.68,dns2設置爲8.8.8.8
nmcli con modify eth0 ipv4.dns 202.102.192.68 dns2 8.8.8.8
在eth0設備上添加一個名稱爲eth0-2的connection,ip爲172.16.100.1/24 gateway 172.16.100.254
nmcli con add con-name eth0-2 type ethernet ip4 172.16.100.1/24 gateway 172.16.100.254 nmcli con up eth0-2 #啓動eth0-2的配置,注意一個接口的配置只能同時啓動一個
將eth0設備上的名稱爲eth0的connection設置爲dhcp獲取地址
nmcli con eth0 modify ipv4.method auto
總結
本文寫的真的不是很好,少寫了很多改寫的東西,以後可能會添加一些對於nmcli工具的全面介紹,寫這篇文章時已經11點了,我實在太累了,索性先發布了,希望大家諒解。