命令行方式配置kvm桥接

来源:互联网 发布:unix 网络编程 编辑:程序博客网 时间:2024/06/03 20:34

  以前写通过窗口设置虚拟机桥接,今天介绍一下通过命令行配置。

 众所周知,虚拟机连接外网有两种方法:NATBridge。简单介绍一下这两种方式:

NAT(网络地址转化)host主机与虚拟机vm,属于两个不同的网络。虚拟机vm通过NAT方式并且借助host主机物理网卡,访问外网。


图1

这种场景,网络情况:

1)VmHost1可以通信。

2)Vm和外网可以通信。

3)VmHost2不可以通信。

   Bridge(桥接):是把host主机网卡,加入到网桥中。此网卡管理不再由linux管理,而是有网桥管理。然后虚拟机中虚拟网卡也加入到网桥中,这样虚拟机和host主机则处在相同的网络中,如下图所示:


个人觉得,把虚拟机vm设置成桥接模式,这样能够比较方便。今天就介绍一下如何通过命令行方式,设置成桥接模式。

1、创建网桥br(通过ovs设置)

[root@localhost ~]#[root@localhost ~]# ovs-vsctl add-br mybr0[root@localhost ~]#

2、将物理网卡加入到br

[root@localhost ~]#[root@localhost ~]# ovs-vsctl add-port mybr0 em0[root@localhost ~]#

在将em0网卡加入到网桥之前,如果em0已经配置ip,则需要先删除(其实不删除也没有关系)。

3、设置em0的网卡配置文件

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-em0HWADDR=B8:2A:72:D9:4D:D1TYPE=EthernetNM_CONTROLLED=no#BOOTPROTO=dhcp  #将dhcp方式注释掉 如果是静态方式则需要注释ip等相关内容Bridge=mybr0     #开启网桥方式DEFROUTE=yesPEERDNS=yesPEERROUTES=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_PEERDNS=yesIPV6_PEERROUTES=yesIPV6_FAILURE_FATAL=noNAME=em0UUID=abc51c21-b1ec-427f-a246-1610cbbb1c36


4、网桥自动获取ip(如果是静态方式则手动配置),一定要做,不然host主机就不能上网了

[root@localhost ~]#[root@localhost ~]# dhclient mybr0[root@localhost ~]#[root@localhost ~]#[root@localhost ~]# ifconfig mybr0mybr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500        inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255        inet6 fe80::ba2a:72ff:fed9:4dd1  prefixlen 64  scopeid 0x20<link>        ether b8:2a:72:d9:4d:d1  txqueuelen 1000  (Ethernet)        RX packets 1874347  bytes 550442459 (524.9 MiB)        RX errors 0  dropped 473  overruns 0  frame 0        TX packets 214533  bytes 91457715 (87.2 MiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@localhost ~]#[root@localhost ~]#

注意:只需要把网桥mybr0当成普通网卡就行了,其实没有什么高深内容。

5、Kvm虚拟机配置文件设置,在配置文件中增加interface

          <interface type='bridge'> //虚拟机网络连接方式              <source bridge='mybr0'/>              <virtualport type='openvswitch'/>              <model type='virtio'/>              <driver name='vhost' queues='8'/>              <mac address="00:16:3E:64:01:00"/>              <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>          </interface>

通过上面配置,启动虚拟机,虚拟机ip应该和host主机是同一个网络。亲测,没有问题。

最后在提供一个脚本,获取虚拟机vm的IP地址:

#!/bin/bash #BY MRCO,2015-06-10 #MODIFY 2015-06-10 #ping当前网段内在线的主机,以便产生arp记录. subnet=`route -n|grep "UG" |awk '{print $2}'|sed 's/..$//g'` for ip in $subnet.{1..253};do { ping -c1 $ip >/dev/null 2>&1 }& done #依次查找arp记录. running_vms=`virsh list |grep running` echo -ne "共有`echo "$running_vms"|wc -l`个虚拟机在运行.\n" for i in `echo "$running_vms" | awk '{ print $2 }'`;do mac=`virsh dumpxml $i |grep "mac address"|sed "s/.*'\(.*\)'.*/\1/g"` ip=`arp -ne |grep "$mac" |awk '{printf $1}'` printf "%-30s %-30s\n" $i $ip done




原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 icloud储存空间将满怎么办 手机店没人进店怎么办 淘宝退货运单填错了怎么办 淘宝快递单号填错了怎么办 拼多多48小时不发货怎么办 想开化妆品店没有经验怎么办 淘宝卖家收钱不发货怎么办 nike拖鞋买小了怎么办 京东换货没货了怎么办 淘宝申请退货退款卖家不处理怎么办 家具连接扣坏了怎么办 锅炉炉水碱度低怎么办 快递里面的东西少了怎么办 很多闲置在家里的东西怎么办 闲鱼买的东西与原物不对怎么办 退款后又发货了怎么办 淘宝卖家不发货也不退款怎么办 已经申请退款卖家仍发货怎么办 淘宝卖家已发货买家申请退款怎么办 爱上街App不发货怎么办 阿里卖家虚假发货怎么办 联系不到淘宝卖家怎么办 没货买家不退款怎么办 买到假货没有发票怎么办 淘宝买的手机发票怎么办 淘宝上的发票丢了怎么办 淘宝买的东西电子发票怎么办 发票联给错顾客怎么办 客人让多给发票怎么办 13岁早晨上学叫不醒怎么办 官换机过保坏了怎么办 官换机在保坏了怎么办 留学生美国东西寄回国怎么办便宜 淘宝东西没到收货了怎么办 在淘宝上买东西被骗怎么办 网上把钱骗走了怎么办 在淘宝上卖号被骗了怎么办 如果淘宝商家保证金不够退款怎么办 天猫账号忘记了怎么办 姨妈来了10天了怎么办 微店商品无资质被下架怎么办