过程复现如下:
1、建立VM,装centOS,过程略
2、建立veth pair
3、利用virt-manager给VM创建一个网卡,接到veth-centOS上,其它啥都不用配置,都默认
4、在虚拟机centOS里配置realtek ethernet这个网络的IP地址,192.168.1.101/24,很奇怪为啥叫realtek ethernet。关于为什么会出现realtek ethernet,好像是跟KVM或者QEMU有关系,后来我再用以上的方式添加网络,名字成了PCI ethernet!先不管了吧。
然后ifconfig看到以下景象:
为啥叫 ens9 !!很奇怪!!全都是问题!!!
5、接着奇迹发生了!ping 192.168.1.100!通了!结果如下:
6、总结
为啥会这样?需要进一步研究,或许这只是表象,还有许多问题啊!
然后,果然!出现问题了!!!
过程复现如下:
1、建立第二个虚拟机VM2,装的redhat
2、建立veth pair
3、然后重复上面第一部分的相关 *** 作,虚拟机ip设为192.168.1.103/24
4、在虚拟机redhat里ping 192.168.1.102,竟然 不通 !然后ping 192.168.1.100,也 不通 !好吧,我承认我的网络基础知识太差了,可我真的没法理解
5、接着,我又回到centOS里,ping 192.168.1.102, 通了 !无语。。 这究竟是为啥 ?!
为了阅读起来清晰,我决定把上面全部推翻再来!
过程复现如下:
1、创建3个VMs,分别安装centOS、redhat、ubuntu
2、创建3个veth pairs, 配在不同的网段里 ,如下:
3、给VMs分别添加NIC,连接到VM对应的veth上,这次device model选virtio,貌似这样网速快
4、开始测试网络连通情况,结果如下
veth0←→centOS通
veth1←→redhat通
veth2←→ubuntu通
其他连接均无法ping通
这个结果还是比较满意的
5、总结
为什么要 配在不同的网段里 ?想不通
这次尝试和第三次尝试类似,只不过宿主机的veth不设置ip地址了,具体过程如下:
1、创建虚拟机过程就略过了
2、配置veth pairs
3、在虚拟机centOS里配置新加入的两个网卡的IP,分别设为192.168.4.3/24和192.168.5.3/24
4、在虚拟机中ping上面两个IP同网段的地址,例如192.168.4.5和192.168.5.4
5、在宿主机中利用wireshark抓包,看veth3、veth4的收包情况,截图如下。结果是,收到ARP包了。
ping 192.168.4.4 的结果,在veth3抓包
ping 192.168.5.4 的结果,在veth4抓包
6、总结
虚拟机的ARP请求直接通过veth pair发送到宿主机了,就是这么回事
linux系统安装完成后启动网卡会自动获取一个ip。如果需要静态ip,则需要用vim 编辑器修改配置文件,重启网络后生效。
#vim /etc/sysconfig/network-script/ifcfg-eth0
然后对网卡文件修改
DEVICE=eth0 #物理设备名
IPADDR=192.168.1.100 #IP地址
NETMASK=255.255.255.0 #掩码值
NETWORK=192.168.1.0 #网络地址(可不要)
BROADCAST=192.168.1.255 #广播地址(可不要)
GATEWAY=192.168.1.1 #网关地址
ONBOOT=yes # [yes|no](引导时是否激活设备)
USERCTL=no #[yes|no](非root用户是否可以控制该设备)
BOOTPROTO=static #[none|static|bootp|dhcp](引导时不使用协议|静态分配|BOOTP协议|DHCP协议)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)