kvm单网卡桥接模式

kvm单网卡桥接模式

Ubuntu18 kvm单网卡桥接

家里有一台nuc8作为服务器使用,平时都是使用ubuntu18,但是由于某项服务在linux下运行出现异常,而经过朋友的测试,在windows下可以正常运行,于是我考虑使用kvm在Linux上虚拟化一个windows server来使用。安装相关程序的教程网上有很多也比较简单,这里就不赘述了,但是在装好程序之后,我试了很多种方法才最终配置好了虚拟机的桥接,所以写下这篇文章记录一下。

下面的操作可能会导致网络中断,远程连接断开,能直接在宿主机上连接显示器操作是最方便的了

系统中添加网桥

ubuntu18的网络接口使用netplan来管理,配置文件位于/etc/netplan/下,以我的为例。nano /etc/netplan/01-network-manager-all.yaml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
network:
ethernets:
eno1:
dhcp4: no

bridges:
br0:
interfaces: [eno1]
dhcp4: no
addresses: [192.168.0.100/24]
gateway4: 192.168.0.1
parameters:
stp: true
forward-delay: 4
nameservers:
addresses: [192.168.0.1]
version: 2

注意到这里需要把物理网卡eno1的dhcp关掉(我之前也没使用dhcp,而是使用静态ip192.168.0.100),改用在br0网桥将ip设置成之前物理网卡的静态ip 192.168.0.100,当然,在这也可以使用dhcp。

然后使用netplan apply命令,之后使用ifconfig查看网卡信息,我们可以看到物理网卡上已经没有ip了,而多出了一个叫br0的网络设备,ip就是我们指定的192.168.0.100,之后我们在网络中依旧可以用192.168.0.100访问该服务器。

libvirt中添加网桥

虽然在系统中添加了网桥,但是此时在virt-manager中是看不到我们添加的网桥的,还需要在virsh中添加一个网桥配置。

新建一个名为bridge.xml的文件,编辑如下。

1
2
3
4
5
<network>
<name>kvm-bridge</name>
<forward mode="bridge"/>
<bridge name="br0"/>
</network>

然后执行下列命令来加载该配置文件。

1
2
3
virsh net-define bridge.xml
virsh net-start kvm-bridge
virsh net-autostart kvm-bridge

之后执行virsh net-list --all即可看到我们添加的libvirt网桥了。

修改虚拟机网络配置

这里我直接使用了virt-manager图形化管理工具,修改虚拟机的网络设备,注意到此时已经可以直接看到kvm-bridge网络了。

之后开启kvm虚拟机,理论上就可以分配到192.168.0.1/24上的ip了,如果没有的话可以去适配器选项里面手动指定ip。

参考

https://fabianlee.org/2019/04/01/kvm-creating-a-bridged-network-with-netplan-on-ubuntu-bionic/



评论

:D 一言句子获取中...

加载中,最新评论有1分钟缓存...