CoHPC开发记录
CoHPC项目开发记录
记一个因MAC地址引发的Bug
@2025-01-13
在编写CoHPC项目时,采用QEMU启动虚拟机 + cloud-init配置镜像。
在QEMU启动命令中添加网卡:
${QEMU} \
-netdev vde,id=net0,sock=./vdesock \
-device e1000,netdev=net0,mac=52:00:00:12:34:56 \
-netdev user,id=user0,hostfwd=tcp::64306-:22 \
-device e1000,netdev=user0 \
...
并且在Cloud-init的Network Config部分,采用与QEMU命令相同的MAC来指导Cloud-init配置网卡的MAC地址,并且静态分配一个IP地址。
观察QEMU的日志发现网卡经常随机性无法正常启动。
在逐一排除Cloud-init和QEMU的嫌疑之后,发现是MAC地址有问题。
由于启动时MAC地址是随机生成,因此有可能将第一个字节的b0位设置为1,即multicast,导致无法分配IP地址。应该为unicast。
总结:前3个字节就用52:00:00即可,后面3个字节随机生成。
Written on January 31, 2025