天天看點

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 Networking

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 bridge network and Xen Networking

     Xen網絡結構相當靈活,适當配置可以“輕松”實作dom0/domU與實體網絡三者之間的複雜拓撲。

橋接模式

Xen bridge network and Xen Networking

                                                                          圖一、Xen 橋接模式示意圖

下圖是個橋接的例子。

Xen bridge network and Xen Networking

         veth0、vif0.0 是 dom0 的網絡接口。veth0 被重命名為 eth0。xenbr0 接口是軟橋接接口。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. [[email protected]]# brctl show
  2. bridge name     bridge id               STP enabled    interfaces
  3. xenbr0          8000.feffffffffff       no             vif1.0
  4.                                                        peth0
  5.                                                        vif0.0

參考連結

  • XenNetworking-XenSource

繼續閱讀