2017年1月1日 星期日

[Linux 常見問題] CentOS7 - 網路介面的命名規則 / 基本網路設定

Source From Here 
Question 
第一次裝的人看到那一大串網卡名稱一定會傻XD 本來 那單純的 eth0 跑到哪去了XD 其實Redhat的文件裡有提到, 這叫 Consistent Network Device Name 
(官方文件: 網路管理 ,第9章
Traditionally, network interfaces in Linux are enumerated as eth[0123…], but these names do not necessarily correspond to actual labels on the chassis. Modern server platforms with multiple network adapters can encounter non-deterministic and counter-intuitive naming of these interfaces. This affects both network adapters embedded on the motherboard (Lan-on-Motherboard, or LOM) and add-in (single and multiport) adapters.

In Red Hat Enterprise Linux 7, udev supports a number of different naming schemes. The default is to assign fixed names based on firmware, topology, and location information. This has the advantage that the names are fully automatic, fully predictable, that they stay fixed even if hardware is added or removed (no re-enumeration takes place), and that broken hardware can be replaced seamlessly. The disadvantage is that they are sometimes harder to read than the eth0 or wlan0 names traditionally used. For example: enp5s0.

本意是為了加強多網卡主機上的管理, 不然又有 onboard 又有外加的卡片, 只能透過 udev 規則去修改, 而且光看裝置名稱, 也看不出來是哪一個 port. 不過對我來說, 我頂多就是兩個網卡, 但是機器多, 這樣每台機器的device name都不同反而是不容易管理. (題外話: 這在許多用 FlexLM 授權系統的軟體會造成困擾, 因為這 FlexLM 用 eth0 的 MAC address 當作機器的唯一識別碼, 並用來產生授權金鑰. 所以系統上沒有 eth0 的時候就...

How-To 
幸好這規則是可以改的. 細節請參考官方文件, 但如果只是要整個關閉這功能, 回到傳統的 ethx 的話, 方法如下
在 /etc/default/grub 裡面, 找到 GRUB_CMDLINE_LINUX, 在引號中最後面加入: 
  1. net.ifnames=0 biosdevname=0  
這其實算是一個範本檔, 然後利用這個範本產生新的 grub.cfg
# grub2-mkconfig -o /boot/grub2/grub.cfg

下次開機就會看到親切的 eth0 又回來了. 另外, 因為引入Network Manager, 現在建議的網路設定工具變成是 nmtui. 使用很簡單, 看得懂英文的話應該可以立即上手. 

Supplement 
[Linux 文章收集] CentOS 7 Change Network Interface Name From Eno* To Eth0

沒有留言:

張貼留言

[ FP with Java ] Ch1 - What is functional programming

Preface   This chapter covers: ( Functional Programming in Java )  *  The benefits of functional programming *  Problems with side ef...