背景:
在宿主机(ubuntu18.04LTS)上,安装虚拟化环境,创建虚拟机
现象:
虚拟机和宿主机之间可以互相ping通,宿主机可以通过ip访问虚拟机,但是虚拟机不能访问外部网络(比如与宿主机在同网段的其他服务器,经验证宿主机可以访问上述其他服务器)
解决过程:
目前,宿主机上添加了网桥br0,已经修改了地址,并可以与其他ip通信
虚拟机使用virt-manager创建,虚拟网络接口设置如图
如图,启动后网络不通
解决网不通问题==========================
网上说启动这个模块 “br_netfilter”,经测试没什么用,问题依旧
启动:modprobe br_netfilter
移除:modprobe -r br_netfilter
我并没有启动这个
网上说需要增加iptables规则,我目前用的就是没规则,所有都ACCEPT
网上说增加sysctl.conf中的net.ipv4.ip_forward=1,没什么卵用
我并没有设置成1,就是默认情况注释了那一行
0912虚拟机可以访问外网啦
增加这个配置文件,/etc/qemu/bridge.conf
allow br0
设置/usr/lib/qemu/qemu-bridge-helper 755
先手动添加一个网桥,名为 br0(最好叫这个名字,因为后面默认连接br0,如果用其他名字需要配置),将网卡添加到这个网桥,网卡默认设置(没有ip),ip,网关都在br0上设置。
创建br0(方法略)
启动虚拟机,用命令行的方式启动,sudo qemu-system-x86_64 ... -netdev bridge,id=n1 -device virtio-net,netdev=n1 ....
-netdev 参数表示网络的后端是个网桥设备,默认br0
-device 参数表示虚拟机添加一个网卡,后端实现是id是n1的设备
经测试出现问题,虽然虚拟机可以访问到外部网络,但是时断时续
现象描述:宿主机A,虚拟机机A1、A2,第三台主机B,4台IP都在同一局域网,A <--> A1,A <--> A2,A<-->B,正常互相访问,但是虚拟机与外部主机时断时续A1 <-x-> A2,A1<-?->B、A2<-?->B,而且是有特点的,比如同时A1,A2 都去pingB,同一时刻只有一台能够收到返回,另一台就卡住,两台的ping是交替进行的。感觉网卡就像一个半双工设备。
一番测试后,证明A,A1,A2,B都可以互相访问,就是会断断续续。后面我会试一试更新网卡驱动
240926============
断断续续的破案了,原因竟然是宿主机链接的交换机网口有流量限制,取消流量限制后就一切正常了
欢迎讨论