openstack 虚拟机网卡被重名为cirename0

虚拟机网卡被重名为cirename0

在虚拟机挂载多网卡情况下,你在虚拟机上卸载网卡后,再创建新的port挂给虚拟机使用,如果虚拟机不经过重启的话,是不会有任何问题的。但是,如果虚拟机重启了,你可能会发现没有了原来的eth0或者eth1,而多了一个 cirename0 的网卡。这就是cloudinit搞的鬼,在cloudinit的local阶段,好像会记录之前的mac地址,如果发现不一致,就会触发rename_interface。当然你在创建新的port再挂给虚拟机使用时,上去把新的网卡配置文件配置好,比如HWADDR要配置对应的mac地址,可以得到解决。

问题现象

虚拟机实际网卡的对应MAC地址:

eth0 mac地址 fa:16:3e:15:84:55
eth1 mac地址 fa:16:3e:62:a6:a4
bash 复制代码
$ ip add
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether fa:16:3e:15:84:55 brd ff:ff:ff:ff:ff:ff
    inet 10.100.43.184/24 brd 10.0.43.255 scope global dynamic eth1
       valid_lft 86266sec preferred_lft 86266sec
    inet6 fe80::f816:3eff:fe15:8455/64 scope link 
       valid_lft forever preferred_lft forever
3: cirename0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether fa:16:3e:62:a6:a4 brd ff:ff:ff:ff:ff:ff
# 根据以上ip add信息,很明显eth0名字是变了,变为cirename0了。且eth0(cirename0)和eth1的MAC地址也不对应。
解决问题
bash 复制代码
1、修改udevs文件, 把网卡对应的MAC地址对应上。
$ cat /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="fa:16:3e:62:a6:a4", NAME="eth1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="fa:16:3e:15:84:55", NAME="eth0"

2、修改eth0和eth1配置文件,这里要把获取IP方式要写成静态和网卡对应MAC地址也要写上。因为后面我们会把cloud-init关掉。
$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Created by cloud-init on instance boot automatically, do not edit.
BOOTPROTO=none
IPADDR=10.100.43.184
PREFIX=24
GATEWAY=10.100.43.1
DEVICE=eth0
HWADDR=fa:16:3e:15:84:55 # 一定要配置上MAC
MTU=1500
ONBOOT=yes
STARTMODE=auto
TYPE=Ethernet
USERCTL=no
DEFROUTE=no

$ cat /etc/sysconfig/network-scripts/ifcfg-eth1
# Created by cloud-init on instance boot automatically, do not edit.
BOOTPROTO=none
IPADDR=192.168.100.120
PREFIX=24
GATEWAY=192.168.100.1
DEVICE=eth1
HWADDR=fa:16:3e:62:a6:a4  # 一定要配置上MAC
MTU=1500
ONBOOT=yes
STARTMODE=auto
TYPE=Ethernet
USERCTL=no
DEFROUTE=yes

3、关闭cloud-init相关服务和重新reset网卡名,然后reboot主机
$ systemctl disable cloud-init.service cloud-init-local.service cloud-final.service cloud-config.service
# 本环境遇到的是eth0网卡名变为cirename0,其它环境具体问题具体修改网卡。
$ ip link set cirename0 name eth0
$ reboot 
参考文献

github iswbm

相关推荐
byoass1 小时前
企业云盘数据备份与恢复策略:定时备份增量备份异地容灾实战
网络·安全·云计算
__beginner__1 小时前
CentOS 磁盘占用异常排查与处理手册(df 高、du/ncdu 低)
linux·运维·centos
路溪非溪1 小时前
聊聊wifi的物理层和链路层
网络
清水白石0081 小时前
从“类型体操”到工程设计:用 Python 解释协变、逆变与不变
网络·windows·python
坚持就完事了2 小时前
YARN资源管理器
大数据·linux·hadoop·学习
Uopiasd1234oo2 小时前
位置感知注意力与跨阶段部分网络改进YOLOv26特征提取与全局建模能力双重提升
网络·yolo·目标跟踪
IT大白鼠2 小时前
IPv8协议技术解析:设计原理、与IPv6对比及发展前景
网络·ipv8
Joseph Cooper2 小时前
Linux regmap 子系统实战:在驱动中 dump PMIC 寄存器定位供电问题
linux·运维·服务器
TechWayfarer2 小时前
2026年IP归属地查询平台选型指南:金融风控、异地登录、离线库全场景实测
网络·网络协议·tcp/ip
计算机安禾2 小时前
【Linux从入门到精通】第35篇:容器化技术预备——Docker安装与基本概念
linux·运维·docker