![网络内核命令行 (ip=) 不会在 Firecracker 上的 Ubuntu 18 中设置 ip 或路由](https://linux22.com/image/168185/%E7%BD%91%E7%BB%9C%E5%86%85%E6%A0%B8%E5%91%BD%E4%BB%A4%E8%A1%8C%20(ip%3D)%20%E4%B8%8D%E4%BC%9A%E5%9C%A8%20Firecracker%20%E4%B8%8A%E7%9A%84%20Ubuntu%2018%20%E4%B8%AD%E8%AE%BE%E7%BD%AE%20ip%20%E6%88%96%E8%B7%AF%E7%94%B1.png)
我正在尝试使用 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,但它似乎就是这样做的。