KVM虚拟机无法连网分析

KVM虚拟机无法连网分析

1. 主机设置 virtio 网络

两种方法:

a. virt-manager 图形设置,如下

b. 命令行设置

# virsh edit <domin name>
在 <devices> 和 </devices> 之间找一个合适的地方添加如下:

    <interface type='network'>
      <mac address='52:54:00:af:77:01'/>
      <source network='default'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

通过以上步骤后,发现虚拟机仍然无法连接网络。

2. 虚拟机内查看 网络接口

# ip link show
得到如下:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default 
    link/sit 0.0.0.0 brd 0.0.0.0
观察到主机虽然添加了硬件,但是虚拟机网络接口并不可见。下面就需要查看虚拟机硬件。

3. 虚拟机内查看 硬件

# lspci
得到如下:
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:02.0 VGA compatible controller: VMware SVGA II Adapter
00:03.0 Ethernet controller: Red Hat, Inc Virtio network device
00:04.0 Audio device: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (rev 01)
00:05.0 SATA controller: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] (rev 02)
00:06.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03)
00:06.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03)
00:06.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 03)
00:06.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 03)
00:07.0 Communication controller: Red Hat, Inc Virtio console
00:08.0 Unclassified device [00ff]: Red Hat, Inc Virtio memory balloon
“00:03.0 Ethernet controller: Red Hat, Inc Virtio network device” 可以看出虚拟机上已经存在步骤1 中添加的硬件了。下面需要查看虚拟机驱动。

4. 虚拟机内查看驱动

# lsmod
得到如下:

Module                  Size  Used by
nfsd                  231723  13 
看出virtio 这个网络设备对应的驱动并没有加载。

最后,选择 virtio_net 这个驱动,重新编译内核,重启机器,加载驱动后,网络正常。

最后主机上的加载模块:

# lsmod
Module                  Size  Used by
nfsd                  231723  13 
virtio_net             17177  0 
virtio_pci             11567  0 
virtio_ring             5621  2 virtio_net,virtio_pci
virtio                  4479  2 virtio_net,virtio_pci

KVM 是一种虚拟化技术,可以创建和管理虚拟机。在 KVM 中,可以使用网络配置来使虚拟机能够访问网络和其他计算机。以下是创建虚拟机网络配置的步骤: 1. 创建一个虚拟网络:在 KVM 主机上,使用以下命令创建一个虚拟网络: ``` sudo virsh net-define <network-definition-file> sudo virsh net-start <network-name> sudo virsh net-autostart <network-name> ``` 其中, `<network-definition-file>` 是包含虚拟网络定义的 XML 文件的路径, `<network-name>` 是虚拟网络的名称。 2. 将虚拟机连接到虚拟网络:在创建虚拟机时,使用以下命令将虚拟机连接到虚拟网络: ``` sudo virt-install \ --name <vm-name> \ --ram <memory-size> \ --vcpus <num-cpus> \ --disk path=<disk-path>,size=<disk-size> \ --network network=<network-name> \ --graphics vnc,listen=0.0.0.0 ``` 其中, `<vm-name>` 是虚拟机的名称, `<memory-size>` 是虚拟机的内存大小, `<num-cpus>` 是虚拟机的 CPU 数量, `<disk-path>` 是虚拟机的磁盘路径, `<disk-size>` 是虚拟机的磁盘大小, `<network-name>` 是虚拟网络的名称。 3. 配置虚拟机网络:在虚拟机中,使用以下命令配置虚拟机网络: ``` sudo ip addr add <ip-address>/<netmask> dev <network-device> sudo ip route add default via <gateway-ip-address> ``` 其中, `<ip-address>` 是虚拟机的 IP 地址, `<netmask>` 是虚拟机的子网掩码, `<network-device>` 是虚拟机的网络设备, `<gateway-ip-address>` 是虚拟网络的网关 IP 地址。 以上是创建虚拟机网络配置的基本步骤,具体配置需要根据实际情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值