CentOS设置虚拟网卡做NAT方式和Bridge方式桥接

http://www.centoscn.com/CentOS/config/2015/0225/4736.html

摘要:KVM虚拟机网络配置的两种方式:NAT方式和Bridge方式。Bridge方式的配置原理和步骤。Bridge方式适用于服务器主机的虚拟化。
问题?客户机安装完成后,需要为其设置网络接口,以便和主机网络,客户机之间的网络通信。事实上,如果要在安装时使用网络通信,需要提前设置客户机的网络连接。

KVM 客户机网络连接有两种方式:

  • 用户网络(User Networking):让虚拟机访问主机、互联网或本地网络上的资源的简单方法,但是不能从网络或其他的客户机访问客户机,性能上也需要大的调整。NAT方式。
  • 虚拟网桥(Virtual Bridge):这种方式要比用户网络复杂一些,但是设置好后客户机与互联网,客户机与主机之间的通信都很容易。Bridge方式。

本文主要解释Bridge方式的配置。


Bridge方式原理

Bridge方式即虚拟网桥的网络连接方式,是客户机和子网里面的机器能够互相通信。可以使虚拟机成为网络中具有独立IP的主机。

桥接网络(也叫物理设备共享)被用作把一个物理设备复制到一台虚拟机。网桥多用作高级设置,特别是主机多个网络接口的情况。

如上图,网桥的基本原理就是创建一个桥接接口br0,在物理网卡和虚拟网络接口之间传递数据。

Bridge方式的适用范围:服务器主机虚拟化。

网桥方式配置步骤

1、编辑修改网络设备脚本文件,增加网桥设备br0

vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO=static
IPADDR=10.0.112.39
NETMASK=255.255.255.0
GATEWAY=10.0.112.1
DEFROUTE=yes

上述配置将虚拟网卡配置在了10.0.112.* 网段。如果不需要静态地址,可以把配置地址的相关项屏蔽。如:

DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO=dhcp

2、编辑修改网络设备脚本文件,修改网卡设备eth0

DEVICE="eth0"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE=Ethernet
BOOTPROTO=none
BRIDGE="br0"
NAME="System eth0"
HWADDR=44:37:E6:4A:62:AD

NM_CONTROLLED这个属性值,根据redhat公司的文档是必须设置为“no”的(这个值为“yes”表示可以由服务NetworkManager来管理。NetworkManager服务不支持桥接,所以要设置为“no”。),但实际上发现设置为“yes”没有问题。通讯正常。

3、重启网络服务

#service network restart

4、校验桥接接口

#brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.4437e64a62ad       no              eth0

客户机配置

客户机安装时注意,网络要选择用br0桥接方式。

图形化的方式:

文本方式:

编辑修改虚拟机配置文件 /etc/libvirt/qemu/v1.xml,增加如下内容

<interface type='bridge'>
      <mac address='52:54:00:da:c3:dc'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

虚拟机启动后,验证网络接口是否正常:

# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.4437e64a62ad       no              eth0
                                                                              vnet0

最新文章

  1. ZeroMQ接口函数之 :zmq_msg_more - 指出是不是还有更多的消息部分可以接收
  2. andriod studio
  3. jquery ajax error函数详解
  4. centos 常用命令
  5. Android中Base64的简单使用
  6. 基于MVC的应用框架之Struts前奏
  7. Windows Socket 最大连接数
  8. AVG()和to_date()函数的使用
  9. 版本控制工具--GIT 基本命令(1)
  10. Javascript/15-1-14
  11. (二)《Java编程思想》——t h i s 关键字
  12. android.view.InflateException: Binary XML file line #7: Error inflating class(OOM)
  13. Selenium 2.0与Selenum 3.0介绍
  14. Finance财务软件(自定义报表专题)
  15. Logstash读取Kafka数据写入HDFS详解
  16. 解决eclipse中Tomcat服务器的server location选项不能修改的问题
  17. Python不支持函数重载
  18. BPF+XDP比较全的资料都在这里
  19. 数据库的完整性约束(ForeignKey ,Unique)
  20. JavaScript实现弹出层(以layer.open为例)

热门文章

  1. 通过程序校验xml文档学习笔记
  2. Wilddog - 野狗常用知识点
  3. 简单的form表单操作(Servlet)
  4. HDU 1394 Minimum Inversion Number(线段树/树状数组求逆序数)
  5. 如何用JavaScript在页面上显示一个时间钟表
  6. BundleConfig 的使用 通配符
  7. Gender, Genre, and Writing Style in Formal Written Texts
  8. by maintaining a log containing a record of each transaction’s activities - The Commit/Rollback Protocol
  9. wajueji
  10. JAVA 调用matlab 出错总结