• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >云计算 > 配置KVM虚拟机的网络,Bridge和Nat方式,kvmnat

配置KVM虚拟机的网络,Bridge和Nat方式,kvmnat

作者:网友 字体:[增加 减小] 来源:互联网

本文主要包含kvm虚拟机,linux kvm虚拟机,kvm虚拟机下载,centos kvm虚拟机,kvm虚拟机安装等服务器相关知识,网友希望可以进行参考

配置KVM虚拟机的网络,Bridge和Nat方式,kvmnat


使用libvirt配置KVM虚拟机的网络,分别使用bridge和nat方式。

操作系统配置:centos7,libvirt-1.1.1,qemu-1.5.3

1.bridged(桥接模式)
在bridged模式下,虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。同时,由于这个虚拟系统是局域网中的一个独立的主机系统,那么就可以手工配置它的TCP/IP配置信息,以实现通过局域网的网关或路由器访问互联网。使用bridged模式的虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑。想让它们相互通讯,你就需要为虚拟系统配置IP地址和子网掩码,否则就无法通信(参考dhcp服务器是否开启,如果开启,则可以选择dhcp方式自动获取网络地址)。这种方式最简单,直接将虚拟网卡桥接到一个物理网卡上面,和linux下一个网卡绑定两个不同地址类似,实际上是将网卡设置为混杂模式,从而达到侦听多个IP的能力。在此种模式下,虚拟机内部的网卡(例如linux下的eth0)直接连到了物理网卡所在的网络上,可以想象为虚拟机和host机处于对等的地位,在网络关系上是平等的,没有谁在谁后面的问题。使用这种方式很简单,前提是你可以得到1个以上的地址。
用KVM配置Bridge方式:
首先需要确定你的host主机上用的网络连接方式为桥接方式,我的机器上的用的是一个叫br0的网桥。创建网桥的方式也很简单,以我的系统为例,网卡一个eno16777736,在目录/etc/sysconfig/network-scripts/下创建文件ifcfg-br0,然后修改文件ifcfg-eno16777736为:
BOOTPROTO=none
DEVICE=eno16777736
HWADDR=00:0c:29:09:0d:3d
NM_CONTROLLED=no
ONBOOT=yes
BRIDGE=br0
修改文件ifcfg-br0的内容为:
BOOTPROTO=static
DEVICE=br0
TYPE=Bridge
NM_CONTROLLED=no
IPADDR=192.168.7.183
NETMASK=255.255.255.0
GATEWAY=192.168.7.254

当然IP地址什么的要设置成自己所在的网段内,此处设置成静态的了,若有dhcp服务器(自家路由器),也可以设置成动态的,然后重启网络就可以了,如果重启不成功的话,试试生效了没有,没有生效的话,重启下系统,自然生效。

然后就该为guest虚拟机配置网桥网络了:

在虚拟机的XML配置文件中device下添加interface标签即可,标签如下:

<interface type='bridge'>
  <mac address='52:54:00:84:e9:e1'/>
  <source bridge='br0'/>
  <model type='rtl8139'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

当然也可以先定义一下这个网络,然后在添加到虚拟机的XML文件中,给它起名为br0.xml,这个文件中可以写一些网络的详细配置参数,大致的形式如下:

<network>
  <name>br0</name>
  <uuid>fb48b969-b9f4-e859-d957-50aedd850fb4</uuid>
  <forward  mode='bridge'>
    <bridge name ='br0'/>
  </forward>
</network>
然后用libvirt来定义并开启这个网络,配置文件中的interface标签当然还是不能少,用上面的就好,名字正好一致了:
virsh net-define br0.xml
virsh net-start br0
然后就可已启动客户机,检查网络连接了。


2.NAT(网络地址转换模式)
使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。很显然,如果你只有一个外网地址,此种方式很合适。
KVM虚拟机Nat方式上网:
virsh net-list
查看当前活跃的网络,可以看到一个default网络,这个就是一个默认的Nat网络了。
virsh net-dumpxml default
可以查看该网络的详细配置如下:
<network>
  <name>default</name>
  <uuid>75dbebde-fc15-4350-8a06-f1432f9e6d30</uuid>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr0' stp='on' delay='0' />
  <mac address='52:54:00:bc:f2:65'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254' />
    </dhcp>
  </ip>
</network>
可以看到该网络搭建在一个网桥virbr0上,这个网桥在安装并启动libvirt的时候自动生成。然后在客户机的XML配置文件中添加标签interface内容如下:
<interface type='network'>
   <mac address='52:54:00:c7:18:b5'/>
   <source network='default'/>
   <model type='virtio'/>
   <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
则可以让客户机用nat方式来上网了,经验证,客户机可以获取到122网段,2到254之间的一个ip地址。
我们可以直接编辑修改default网络的配置:
virsh net-edit default
也可以直接将default网络干掉,然后再重新定义:
virsh net-undefine default 
重新创建一个default.xml文件,自定义其中的内容,可以指定某个mac地址对应某个ip,指定某个ip段。例如下面的内容,name对应的是客户机的名字。
<network>
  <name>default</name>
  <uuid>dc69ff61-6445-4376-b940-8714a3922bf7</uuid>
  <forward mode='nat'/>
  <bridge name='virbr0' stp='on' delay='0' />
  <mac address='52:54:00:81:14:18'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254' />
      <host mac='00:25:90:eb:4b:bb' name='guest1' ip='192.168.5.13' />
      <host mac='00:25:90:eb:34:2c' name='guest2' ip='192.168.7.206' />
      <host mac='00:25:90:eb:e5:de' name='guest3' ip='192.168.7.207' />
      <host mac='00:25:90:eb:7e:11' name='guest4' ip='192.168.7.208' />
      <host mac='00:25:90:eb:b2:11' name='guest5' ip='192.168.7.209' />
    </dhcp>
  </ip>
</network>
然后用命令:
virsh net-define default.xml
virsh net-start default

启用一个客户机,检查网络时候可用。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 配置KVM虚拟机的网络,Bridge和Nat方式,kvmnat

相关文章

  • hadoop学习笔记(三)——WIN7+eclipse+hadoop2.5.2部署,hadoopwin7
  • Nova client源码分析---nova list命令,nova---nova
  • [Sqoop]利用sqoop对mysql执行DML操作,sqoopdml
  • HBase扫描器与过滤器,HBase扫描器过滤器
  • Hadoop之——伪分布安装,hadoop伪分布
  • 云服务器之间实时文件同步和文件备份的最简单高效的免费方案,实时文件备份
  • python 操作 azure 虚拟机,pythonazure
  • CentOS 下面解决libvirt版本过低、升级冲突问题,centoslibvirt
  • Hbase shell操作(完整版记录),hbaseshell
  • 在linux下制作libxxx.so 动态库,linuxlibxxx.so

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • 修改 openstack 中 nova boot 创建实例只能在10个以内的限制,openstacknova
    • MongoDB 安装与启动,MongoDB安装启动
    • MapReduce中Shuffle过程整理,mapreduceshuffle
    • Spark Standalone 以及 HDFS系统环境搭建,standalonehdfs
    • OutOfMemoryError PermGen space 的解决办法(头痛了几天),permgenspace
    • Hadoop中查看一个文件位置信息,
    • Docker exec与Docker attach,dockerexecattach
    • hadoop一些常见报错的解决方案,hadoop解决方案
    • Install Docker on Mac OS X,installdocker
    • Docker image的工作原理,dockerimage

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有