我正在尝试使用 Ubuntu 启动 Firecracker 虚拟机并设置网络。如果我定期启动它(取自这个仓库):
./firectl --kernel=vmlinux --root-drive=image.ext4 --firecracker-binary=./firecracker --tap-device=fc_tap0/aa:84:33:ef:da:60 --kernel-opts="init=/bin/systemd noapic reboot=k panic=1 pci=off nomodules console=ttyS0"
虚拟机启动,然后我运行:
ip addr add 192.168.100.2/24 dev eth0
ip link set eth0 up
ip route add default via 192.168.100.1 dev eth0
echo nameserver 8.8.8.8 > /etc/resolv.conf
我有互联网和名字解析。 ip地址显示:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether aa:84:33:ef:da:60 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.2/24 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::a884:33ff:feef:da60/64 scope link
valid_lft forever preferred_lft forever
现在我正在尝试复制此内容,但无需在来宾上运行命令,这是有道理的。
继内核中的文档,这应该有效:
./firectl --kernel=vmlinux --root-drive=image.ext4 --firecracker-binary=./firecracker --tap-device=fc_tap0/aa:84:33:ef:da:60 --kernel-opts="init=/bin/systemd noapic reboot=k panic=1 pci=off nomodules console=ttyS0 ip=192.168.100.2::192.168.100.1:255.255.255.0:fc:eth0:off:8.8.8.8:8.8.4.4:"
重要的部分是:
ip=192.168.100.2::192.168.100.1:255.255.255.0:fc:eth0:off:8.8.8.8:8.8.4.4:
但是当它启动时,ip addr 显示:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether aa:84:33:ef:da:60 brd ff:ff:ff:ff:ff:ff
inet6 fe80::a884:33ff:feef:da60/64 scope link
valid_lft forever preferred_lft forever
任何访问网络的尝试都会返回connect: Network is unreachable
,并且无论如何我都必须运行该脚本,否则我没有网络。我究竟做错了什么?我读到的有关此命令的所有内容都说不支持 ipv6,但它似乎就是这样做的。