查手表价格的网站,网站关键词用什么隔开,网站开发技术方案实验报告,东营高端网站建设一.前言#xff1a; 在早期的的操作系统中例如fedora13或者ubuntu15之前网卡命名的方式为eth0#xff0c;eth1#xff0c;eth2#xff0c;属于biosdevname 命名规范。当然这是针对intel网卡的命名规则#xff0c;对于realtek类型的网卡会命名为ens33。但是这个编号往往不一…一.前言 在早期的的操作系统中例如fedora13或者ubuntu15之前网卡命名的方式为eth0eth1eth2属于biosdevname 命名规范。当然这是针对intel网卡的命名规则对于realtek类型的网卡会命名为ens33。但是这个编号往往不一定准确对应网卡接口的物理顺序为了能够方便定位和区分网络设备目前linux的主流操作系统采用一致网络设备命名CONSISTENT NETWORK DEVICE NAMING规范。
二.一致网络设备命名规则CONSISTENT NETWORK DEVICE NAMING 命名规范为设备类型 设备位置
1. 设备类型 en 代表以太网 wl 代表无线局域网WLAN ww 代表无线广域网WWANs
2. 设备位置 格式 含义 oon-board_index_number 主板bios内置的网卡 shot_plug_slot_index_number[ffunction][ddevice_id] 主板bios内置的PCI-E网卡 xMAC MAC 地址 pbussslot[ffunction][ddevice_id] PCI-E独立网卡 [Pdomain_number]pbussslot[ffunction][uusb_port][…][cconfig][iinterface] USB网卡 例如 eno1 板载1号网卡 enp0s2 以太网0号PCI扩展卡的2号端口 ens33 由主板 BIOS 内置的 PCI-E 接口的网卡 wlp1s0 无线第1号PCI扩展卡的0号端口
3.优势 (1) 设备名称是完全可预测的。 (2) 即使添加或删除硬件设备名称也保持固定因为不会发生重新枚举。 (3) 有缺陷的硬件可以无缝更换。
三.系统默认命名规则 1. systemd rename流程 以centos7为例系统默认用于网卡设备重命名的服务是systemd-udevd我们可以使用systemctl status systemd-udevd来查看目前该服务的状态 在centos7中 systemd命名网卡的规则是根据一下6个配置文件来的 /lib/udev/rules.d/60-net.rules /lib/udev/rules.d/71-biosdevname.rules /lib/udev/rules.d/75-net-description.rules /lib/udev/rules.d/80-net-name-slot.rules /lib/udev/rules.d/80-net-setup-link.rules /lib/udev/rules.d/99-systemd.rules 1 第一步: /lib/udev/rules.d/60-net.rules 使用/lib/udev/rename_device这个程序首先查询/etc/sysconfig/network-scripts/下所有以ifcfg-开头的文件 如果在ifcfg-xx中匹配到HWADDRxx:xx:xx:xx:xx:xx参数的网卡接口 则选取DEVICEyyyy中设置的名字作为网卡名称。
ACTIONadd, SUBSYSTEMnet, DRIVERS?, ATTR{type}1, PROGRAM/lib/udev/rename_device, RESULT?, NAME$result 在不修改 udev 规则的条件下/etc/sysconfig/network-scripts/的 ifcfg-* 文件的优先最高。在ifcfg-*文件中将DEVICE 和 mac 绑定后重命名网卡名称和避免网卡乱序。 2第二步:/lib/udev/rules.d/71-biosdevname.rules 如果系统中安装了biosdevname且内核参数未指定biosdevname0且上一步没有重命名网卡则按照biosdevname的命名规范从BIOS中取相关信息来命名网卡。 主要是取SMBIOS中的type 9 (System Slot) 和 type 41 (OnboardDevices Extended Information) 3第三步 /lib/udev/rules.d/75-net-description.rules /lib/udev/rules.d/75-net-description.rules 中的规则让 udev 通过检查网络接口设备填写内部 udev 设备属性值 ID_NET_NAME_ONBOARD、ID_NET_NAME_SLOT、ID_NET_NAME_PATH但是有些设备属性可能处于未定义状态。 可以通过udevadm test-builtin net_id /sys/class/net/xxx 网络接口比如ens33来查看相关属性。 4第四步 /lib/udev/rules.d/80-net-name-slot.rules 如果在60-net.rules 71-biosdevname.rules这两条规则中没有重命名网卡且内核未指定net.ifnames0参数udev依次尝试来自udev规则文件75-net-description.rules属性值来命名网卡 如果这些属性值都没有则网卡不会被重命名沿用内核给定的ethx来命名 5第五步 /lib/udev/rules.d/80-net-setup-link.rules 用内建的的path_id 和net_setup_link来查询 键值ID_NET_NAME并赋给设备名字 NAME, ENV{ID_NET_NAME}!, NAME$env{ID_NET_NAME} 6第六步 /lib/udev/rules.d/99-systemd.rules 用sysctl 改变内核的一些默认参数 /lib/systemd/systemd-sysctl --prefix/net/ipv4/conf/name --prefix/net/ipv6/conf/name
所以针对60-net.rules, 可以添加类似如下规则文件去固定命名。
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEMnet, ACTIONadd, DRIVERS?, ATTR{address}08:00:27:84:e3:82, ATTR{dev_id}0x0, ATTR{type}1, KERNELeth, NAMEeth0
/# PCI device 0x8086:0x100e (e1000)
SUBSYSTEMnet, ACTIONadd, DRIVERS?, ATTR{address}08:00:27:f0:c8:7f, ATTR{dev_id}0x0, ATTR{type}1, KERNELeth, NAMEeth2
/# PCI device 0x8086:0x100e (e1000)
SUBSYSTEMnet, ACTIONadd, DRIVERS?, ATTR{address}08:00:01:63:bd:f1, ATTR{dev_id}0x0, ATTR{type}1, KERNELeth, NAMEeth1也可以修改/etc/sysconfig/network-scripts/下的 ifcfg-* 文件在ifcfg-*文件中将DEVICE 和 mac 绑定固定网卡名称其中device条目即为设备名字如DEVICEeno2 强调这个step顺序是在我们没有自定义自己的rules的前提下如果用户自定义了自己的rules则用户自定义为优先级最高
2.scheme次序 systemd 会使用以下策略采用支持的命名方案为接口命名 Scheme 1方案 1: 如果从BIOS中能够取到可用的板载网卡的索引号则使用这个索引号命名例如: eno1如不能则尝试Scheme 2 Scheme 2方案 2: 如果从BIOS中能够取到可以用的网卡所在的PCI-E热插拔插槽的索引号则使用这个索引号命名例如: ens1如不能则尝试Scheme 3 Scheme 3方案 3: 如果能拿到设备所连接的物理位置信息则使用这个信息命名例如:enp2s0如不能则尝试Scheme 5 Scheme 4方案 4: 使用网卡的MAC地址来命名这个方法一般不使用。enx78e7d1ea46da Scheme 5方案 5传统的kernel命名方法例如: eth0这种命名方法的结果不可预知的即可能第二块网卡对应eth0第一块网卡对应eth1。
四.修改为biosdevname命名规则 1. 修改启动参数 1编辑/etc/default/grub rootubuntu:~# vi /etc/default/grub 找到GRUB_CMDLINE_LINUX 改为GRUB_CMDLINE_LINUXnet.ifnames0 biosdevname0 2重新生成GRUB的启动菜单配置文件(/boot/grub/grub.cfg) rootubuntu:~# update-grub 3重启系统后网卡名称变成eth0和wlan0 2. 修改网卡配置文件 原来网卡配置文件名称为ifcfg-ens33这里需要修改为eth0的格式并适当调整网卡配置文件。 mv /etc/sysconfig/network-scripts/ifcfg-ens12 /etc/sysconfig/network-scripts/ifcfg-eth0 #修改ifcfg-eth0文件如下内容(其它内容不变)NAMEeth0 DEVICEeth0 systemctl restart network.service #重启网络服务 3. 创建70-persistent-net.rules 直接在/etc/udev/rules.d/中创建或修改70-persistent-net.rules文件加上或修改信息为
SUBSYSTEMnet, ACTIONadd, DRIVERS?*, ATTR{address}xx:xx:xx:xx:xx:xx, NAMEeth0 五.ubuntu18修改网卡名称 上面讲过的都是在centos7中在ubuntu18中则简单很多没有看到/lib/udev/rules.d/60-net.rules /lib/udev/rules.d/71-biosdevname.rules/lib/udev/rules.d/75-net-description.rules这些文件 ubuntu18识别网卡名称默认会根据 /lib/udev/rules.d/目录下的80-net-setup-link.rules文件定义的规则来。如果你要更改规则需要先将文件80-net-setup-link.rules从/lib/udev/rules.d目录复制到/etc/udev/rules.d目录。因为/etc/udev/rules.d目录下规则的优先级高于/lib/udev/rules.d目录识别网卡并命名时会优先从/etc/udev/rules.d目录下寻找规则文件。将ID_NET_NAME改成ID_NET_SLOT即可。