Network

    內容表格
    沒有標頭

    版本為 12:07, 14 Nov 2024

    到這個版本。

    返回到 版本存檔.

    查閱目前版本

    在 RHEL5 update4 KVM 下設定 Virtual machine 時 Network 有兩種選項. 1.Virtual network 2.Shared physical device 但預設的只有 Virtual network.
    先來看看在 RHEL5 update 4 KVM 的環境預設會建立一個 bridge,由 QEMU 所提供出的 virbr0 預設安裝 Virtual machine 時網路卡的選擇也就是這種 Virtual network .
     
    • Virtual network - virbr0
    • 1.QEMU 會在你的 Linux 產生一個 bridge 虛擬裝置 "virbr0" .virbr0 不只是個單純的 NAT 而已,他是一個 NAT + DHCP 的架構,所有的 Virtual machine 都會透過 virbr0 來指派一個私人網域 (private IP).預設為 192.168.122.2 ~ 192.168.122.254 (在他的設定檔中可以定義其 DHCP 可指定的 IP 範圍).
      2.其預設的 default gateway 為 192.168.122.1/24 ,所有在這架構下的 Virtual Machine 虛擬機器的封包都必須透過這 NAT 去連結到其他的網路.
      3. 如同一般的 NAT 所有的 Virtual Machine 虛擬機器都是被隱藏在 private 私人網域,所以外部不能直接連接到 Virtual Machine 虛擬機器上.

      這一個是由 Qemu 所產生所以設定檔存放在 /etc/libvirt/qemu/networks/default.xm

    <network>
      <name>default</name>
      <uuid>49a0ceb-5662-4a61-8149-98ea750d393b</uuid>
      <bridge name="virbr0" />
      <forward/>
      <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>
     
    其中的 ip address 是 default gateway IP,range 則是DHCP clients 所能使用的範圍,都可以依據需求做改變.
    • Shared physical device
    如果要使用第二種 "Shared physical device" 時需要經過手動設定才能使用.此時所有的 Virtual machine 的網路裝置就會像是串接在一個 Hub 或是 Switch 上,只要是同區段的 IP 都可以互通. 在 Linux 下網路的模式有一個東西叫做 Bridge mode,有點像將多個 NIC Adapter ports 透過一個虛擬出來的 Bridge(Switch) 全部串在一起,再透過一個虛擬出來的網路裝置出去,這就像是把 Linux 當成一個 switch 來使用了.
    在一般的 Linux 環境下的方法也很簡單:我們也可以透過下面幾個簡單的指令來產生自己所需要的 Bridge 裝置出來.下面的圖示你可以很清楚的看出來虛擬 NIC 和實體 NIC 是如何透過 bridge 模式串接在一起.
     

    1.目標是用 eth0 來產生一個 bridge(bri0)

    [root@benjr ~]# ifconfig eth0 0.0.0.0
    [root@benjr ~]# brctl addbr bri0
    [root@benjr ~]# brctl addif bri0 eth0

    2.看這一些 eth 是在哪一個 bridge 上.

    [root@benjr ~]# brctl show
    bridge name     bridge id               STP enabled     interfaces
    bri0            8000.001517785dd6       no              eth0
    virbr0          8000.000000000000       yes

    3.設定一組 IP ,方便遠端管理使用.

    [root@benjr ~]# ifconfig bri0 192.8.1.3
    [root@benjr ~]#
    ifconfig bri0
    bri0      Link encap:Ethernet  HWaddr 00:15:17:78:5D:D6 
              inet addr:192.8.1.3  Bcast:192.8.1.255  Mask:255.255.255.0
              inet6 addr: fe80::215:17ff:fe78:5dd6/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:14767 errors:0 dropped:0 overruns:0 frame:0
              TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:679328 (663.4 KiB)  TX bytes:9626 (9.4 KiB)

    4.最後 Allow IP forwarding

    [root@benjr ~]# vi /etc/sysctl.conf
    net.ipv4.ip_forward = 1
    [root@benjr ~]#sysctl –p

    之後所有設定在 eth0(bri0) 的 Virtual Machine 都可以互通了!!可以將剛剛的步驟寫在 /etc/rc.local,讓他在開機時候就會生效.
    5.reload libvirt

    [root@benjr ~]# service libvirtd reload

    如果要讓 Virtual Machine 可以立即選擇 "Shared physical device" 需將 libvirtd 的服務重新載入設定.

    • Set fixed MAC address for your virtual system
    另外最後的一個選項是我們自己指派給虛擬網卡一個 MAC address ,要設定虛擬網路裝置的 mac 他是有一個規則性的. mac :XY:XX:XX:XX:XX:XX ,mac 使用16進制來顯示 X 可為任何的16進制(0~9,A,B,C,D,E,F), Y 則只能使用 2, 6, A 或 E.
    Powered by MindTouch Core