两个host上的qemu VM使用bridge互通
来源:互联网 发布:王健林 鲁豫 知乎 编辑:程序博客网 时间:2024/06/01 10:16
两个host上的qemu VM使用bridge互通
要使两个VM互通,必须使两个VM暴露在外部网络上,而不能仅仅在host内部。因此需要使用网桥。网桥是一个二层设备,和二层交换机是一个意思。
然而,在使用中,网桥总是和linux里面的端口并列,刚开始造成了不小的困惑。首当其冲的困惑是,作为一个二层交换机,是不需要IP地址的,然而网桥在使用时总是配置一个IP地址,更像一个普通的linux网卡。本文试图对这些问题做一个回答,让自己,也让和我同样困惑的人释怀。
配置网桥和qemu
- 在host上,增加一个网桥设备,假定host本来有一个物理网卡端口p2p2。
# brctl addbr br0 #增加一个网桥 # brctl addif br0 p2p2 #将主机的p2p2物理端口连到网桥上 # ifconfig br0 up
- 启动qemu,并将网口连接到网桥上
#qemu-system-x86_64 -enable-kvm -smp 1 -drive if=virtio,file=/vmdisk/ubuntu14.04.img.qcow2,cache=none -m 4G -vnc :2 -net nic,macaddr=52:54:00:12:34:23 -net tap,ifname=tap1,script=/etc/qemu-ifup,downscript=no
这里要注意的是,/etc/qemu-ifup脚本可能需要修改,参考https://tthtlc.wordpress.com/2015/10/21/qemu-how-to-setup-tuntap-bridge-networking/ , 增加switch=br0
这一行
此时的网络结构如下:
此时在host能看到3个虚拟网络端口,
# ls /sys/devices/virtual/net/br0 lo tap1
其中,tap1是给客户机提供网络的TAP设备,也就是在guest系统中看到eth0。
作为bridge模式,此时的guest系统和host系统,在网络上是平等的,而不是像上图那样guest包含在host内部。guest和host之间通过br0这个交换机互连。既然guest和host都连在br0这个交换机上,那么guest和host系统都需要有一个网口。在guest,就是eth0,即tap1。在host,这个口是谁呢,是p2p2吗?答案是否。p2p2虽然被加到了br0上,然而并不是用来将host连接到br0上,p2p2可以看成是br0的uplink端口,用于和外界进行互连。
这里br0其实有两个身份,一方面br0代表着一个虚拟交换机,另一方面,br0代表着host上的一个虚拟端口。也就是port-br0连接到了switch-br0上。如下图,
这是一个主机的情况。如果我们有另外一个主机,两个主机之间由物理的交换机连接,两个物理主机的p2p2口都连在同一个物理交换机上。
到这里VM1和VM2就可以互通了。互通前当然要配置各自的IP地址。
- 分别进入两个guest系统(此时需要用vnc登陆)
#service network-manager stop#ifconfig eth0 192.168.0.23 #或者在VM2中是24
现在来回答前面提出的问题,为什么要给br0配置IP地址。
目前为止,VM1和VM2配置了IP地址后,就可以互通了。然而,从各自的host系统是无法访问到VM guest系统的。因为此时大家只是在同一个二层网络里面,host想要访问guest,host的端口,即port-br0也需要有一个和guest相同网段的IP地址。配置方法就是给br0配置IP.
# ifconfig br0 192.168.0.231 #或者是241在host2中
- 两个host上的qemu VM使用bridge互通
- 使用qemu-monitor 从host直接连接vm
- VM中网卡的四个选项(bridge、NAT、host-only、custom)
- VM中网卡的四个选项(bridge、NAT、host-only、custom)
- VM中网卡的四个选项(bridge、NAT、host-only、custom)
- vm三种连接方式bridge, nat, host-only
- VM网络四个选项bridge、NAT、host-only、custom
- vm三种连接方式bridge, nat, host-only
- vm三种连接方式bridge, nat, host-only
- vm三种连接方式bridge, nat, host-only
- vm三种连接方式bridge, nat, host-only
- qemu在Linux系统上的使用
- Host Bridge
- 使用Qemu调试内核(host=aarch64)
- 用qemu-nbd实现mount虚拟硬盘到Host上的功能
- 用qemu-nbd实现mount虚拟硬盘到Host上的功能
- 转-用qemu-nbd实现mount虚拟硬盘到Host上的功能
- WINDOWS VM linux 互通
- [leetcode]345. Reverse Vowels of a String
- react使用小记1
- iOS利用Xcode制作静态库和动态库
- Mysql 执行外部脚本
- Java经典算法——窃贼问题
- 两个host上的qemu VM使用bridge互通
- 文章标题
- gdb调试-dump
- ps动作储存覆盖原文件的原因
- python实现感知机(perceptron)原型~
- windows平台搭带c++扩展的nodejs环境
- ES7中的异步编程,虽然我ES6还没有学会
- 2017.03.25暑期实习在线笔试
- jquery事件冒泡,阻止事件冒泡