Sun*_*ain 9 networking kvm qemu
我刚刚使用 qemu-kvm 创建了一个虚拟机。主机和来宾都是 Ubuntu 16.04 LTS。但是,客人无法访问互联网。我可以从访客 ping 主机或从主机 ping 访客。这是主机的 ifconfig 的输出
eno1 Link encap:Ethernet HWaddr 6c:0b:84:98:06:a3
inet addr:10.7.202.66 Bcast:10.7.202.255 Mask:255.255.255.0
inet6 addr: fe80::5388:4cd6:d475:94ca/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:41093 errors:0 dropped:0 overruns:0 frame:0
TX packets:100041 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7514291 (7.5 MB) TX bytes:117854779 (117.8 MB)
Interrupt:20 Memory:f7c00000-f7c20000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:377404 errors:0 dropped:0 overruns:0 frame:0
TX packets:377404 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1034501784 (1.0 GB) TX bytes:1034501784 (1.0 GB)
virbr0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:3539 errors:0 dropped:0 overruns:0 frame:0
TX packets:953 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:240370 (240.3 KB) TX bytes:141550 (141.5 KB)
Run Code Online (Sandbox Code Playgroud)
这是来自的输出virsh net-dumpxml default:
<network>
<name>default</name>
<uuid>f4a19eaf-dbfa-46a5-bc9a-ccdc809363be</uuid>
<forward dev='eno1' mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
<interface dev='eno1'/>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:3e:46:10'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>
</ip>
</network>
Run Code Online (Sandbox Code Playgroud)
和来自主机的输出route -n:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.7.202.251 0.0.0.0 UG 100 0 0 eno1
10.7.202.0 0.0.0.0 255.255.255.0 U 100 0 0 eno1
10.22.224.196 10.7.202.251 255.255.255.255 UGH 100 0 0 eno1
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eno1
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
Run Code Online (Sandbox Code Playgroud)
我还启用了net.ipv4.ip_forward=1在/etc/sysctl.conf。
任何人都可以建议做其他事情吗?
您需要从您的主机设置一个 macvtap 以允许您的 VM 的来宾拥有互联网连接,在您的情况下,您只有主机到来宾连接的 NAT 配置。
另外,我建议您安装 virt-manager 以图形方式了解 KVM 的基本概念和设置,然后您下次可以在 CLI 中执行此操作。
供您参考,我有一个从主机到访客的连接,此配置是带有 virtio 的 NAT。
现在让您的来宾 VM 建立连接并设置 macvtap,但首先您必须在此处创建一个单独的桥接连接,然后是 macvtap。
当您设置它时,您应该拥有此网络配置。
另一个是位于 /etc/libvirt/qemu/guest.xml 中的来宾 xml 文件 - 但不要编辑它仅用作参考
我不擅长 CLI 部分,但这是我为使此案例起作用所做的事情。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
16011 次 |
| 最近记录: |