Chinaunix首页 | 论坛 | 博客
  • 博客访问: 885311
  • 博文数量: 254
  • 博客积分: 5350
  • 博客等级: 大校
  • 技术积分: 2045
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-27 13:27
文章分类

全部博文(254)

文章存档

2015年(1)

2014年(9)

2013年(17)

2012年(30)

2011年(150)

2010年(17)

2009年(28)

2008年(2)

分类: LINUX

2011-10-26 09:51:03

Xen bridge network and Xen Networking(转)

本文介绍了Xen桥接网络及出故障时可采用的工具和方法:

Xen桥接网络非常灵活,然而逻辑和管理方面也还算简单

 

桥接设备

  • bridge, 网桥;一般起名为:xenbr0, xenbr1, etc.
  • vif, 虚拟网络接口;一般起名为:vif0.0,vif0.1, etc.
  • veth/eth, 虚拟网络设备;一般起名为:eth0, etc.

桥接工具

  • /etc/xen/script/network-bridge, 网桥操作脚本
  • /etc/xen/script/vif-bridge, 虚拟接口操作脚本
  • brctl 工具,事实上以上两个脚本均调用了它

排查步骤

  • brctl show; 再看桥接是否OK。 
  • ethtool peth; 先看物理网卡通不通。
  • ifconfig vif; 看各虚拟接口是否正常。
  • ifconfig eth/veth; 看看虚拟网络设备是否正常。

链接

Xen网络联接方式

        Xen 提供了 3 种虚拟网络模型来供客户机访问物理设备——桥接、路由和 NAT。在桥接模式中,虚拟网络接口(vif)在外部局域网是可见的,在路由模型中,vif 在外部局域网是不可见的,但是 IP 是可见的。在 NAT 模型中,vif 在外部局域网不可见,它也没有一个外部可见的 IP 地址。

        在桥接模式下, brctl 工具被用来创建软件方式的桥接接口,一个物理网络接口然后附加到桥上。Xen 客户机域的后端 vif 能被附加到这个桥上。当桥接口接收到来自物理接口的包时,物理网络接口将依据各域的虚拟网卡的 MAC 地址转发它们到不同的域上。

        在路由模型下将使用 iptables 机制来进行路由。由物理接口所收到的所有的包将被驱动域的网络 IP 层所处理。驱动域(dom0)查找路由表条目并将包转发到不同的客户机 IP 地址。在路由模式下,驱动域连接 2 个不同的网段:内部由客户机使用的网段和连接外部网络的网段。

       在驱动域作为一个 NAT 网关时,驱动域仍然作为一个路由器,但是更进一步映射一个它自己的 IP 地址和端口到一个客户机的 IP 地址和端口。客户机的 IP 地址隐藏在驱动域后面对外部网络不可见。

        Linux 防火墙提供了 iptables ,而 bridge-utils 则提供了 etables 来进行基本的 MAC 地址过滤。也可以指定一个物理网卡给一个域使用。
                

     Xen网络结构相当灵活,适当配置可以“轻松”实现dom0/domU与物理网络三者之间的复杂拓扑。

桥接模式


 

                                                                          图一、Xen 桥接模式示意图

下图是个桥接的例子。
   

         veth0、vif0.0 是 dom0 的网络接口veth0 被重命名为 eth0xenbr0 接口是软桥接接口vif1.0 是运行的客户机的后端网络接口

        peth0、xenbr0、vif0.0、vif1.0 都共享同样的 MAC 地址 FE:FF:FF:FF:FF:FF,它是以太网的广播地址。这意味着实际的网络接口、dom0 的回环接口、客户机的后端接口都向 xenbr0 广播。当物理网卡接收到包时,它直接发送到桥接接口 xenbr0,这个桥接接口通过包的 MAC 地址决定将包转发到哪个域的后端接口。因此 peth0 不需要 IP,只需要 MAC 地址。物理接口的原先 IP 已经被告知给 eth0——驱动域的虚拟前端接口。    

        xenbr0 通过 MAC 地址是 00:11:25:F6:15:22 或者是 00:16:3e:45:e7:12 来决定包转发到 eth0 或者 vif1.0。客户域相应的前端接口被命名为 eth0。从 dom0 的角度看,客户机中 eth0 实际是 vif1.0。
brctl 命令的显示:

  1. [user@Dom0]# brctl show
  2. bridge name     bridge id               STP enabled    interfaces
  3. xenbr0          8000.feffffffffff       no             vif1.0
  4.                                                        peth0
  5.                                                        vif0.0

 

参考链接

阅读(948) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~