KVM&OVS組網配置案例-2

0.配置要求

  • 1.使用ovs創(chuàng)建一個網橋,網橋上添加宿主機eth0接口,接口為trunk,可轉發(fā)所有vlan的數據
  • 2.使用KVM創(chuàng)建并圖形安裝兩個linux虛擬機vm1,vm2。
  • 3.vm1關聯ovs的vlan10接口,vm2關聯ovs的vlan20接口。
  • 4.vm1獲取vlan10的IP地址,vm2獲取vlan20IP地址。
  • 5.vlan10,vlan20的網關在宿主機eth0接口連接的物理交換機上,物理交換機開啟vlan10,vlan20的DHCP功能,為vm1,vm2自動分配地址。

1. 環(huán)境準備

1.1 安裝必要軟件

# 安裝 OVS 和 KVM 相關工具
sudo apt update
sudo apt install openvswitch-switch qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager

1.2 驗證 OVS 和 KVM 狀態(tài)

sudo systemctl status openvswitch-switch libvirtd

2. 配置 OVS 網橋

2.1 創(chuàng)建 OVS 網橋 ovs-br0

sudo ovs-vsctl add-br ovs-br0

2.2 將宿主機物理網卡 eth0 添加為 Trunk 端口

# 將 eth0 添加到 ovs-br0,并允許所有 VLAN(1-4094)
sudo ovs-vsctl add-port ovs-br0 eth0 trunk=10,20  # 僅允許 VLAN 10 和 20(根據實際需求調整)
sudo ovs-vsctl add-port ovs-br0 eth0 tag=*  # tag=*或0表示允許所有VLAN標簽的數據通過

2.3 驗證 OVS 配置

sudo ovs-vsctl show

輸出應包含以下信息:

Bridge ovs-br0
    Port eth0
        trunks: [10, 20]
    Port ovs-br0
        Interface ovs-br0
            type: internal

3. 創(chuàng)建 KVM 虛擬機

3.1 創(chuàng)建虛擬機磁盤

# 創(chuàng)建 vm1 和 vm2 的磁盤鏡像
sudo qemu-img create -f qcow2 /var/lib/libvirt/images/vm1.qcow2 10G
sudo qemu-img create -f qcow2 /var/lib/libvirt/images/vm2.qcow2 10G

3.2 創(chuàng)建虛擬機并關聯 OVS 接口

# 創(chuàng)建 vm1(VLAN 10)
sudo virt-install \
  --name vm1 \
  --ram 1024 \
  --vcpus 1 \
  --disk path=/var/lib/libvirt/images/vm1.qcow2 \
  --os-type linux \
  --os-variant ubuntu20.04 \
  --network bridge=ovs-br0,model=virtio,virtualport_type=openvswitch,virtualport_options:tag=10 \
  --graphics spice \
  --console pty,target_type=serial \
  --cdrom /path/to/ubuntu-20.04.iso  # 關鍵:掛載 ISO

# 創(chuàng)建 vm2(VLAN 20)
sudo virt-install \
  --name vm2 \
  --ram 1024 \
  --vcpus 1 \
  --disk path=/var/lib/libvirt/images/vm2.qcow2 \
  --os-type linux \
  --os-variant ubuntu20.04 \
  --network bridge=ovs-br0,model=virtio,virtualport_type=openvswitch,virtualport_options:tag=20 \
  --graphics spice \
  --console pty,target_type=serial \
  --cdrom /path/to/ubuntu-20.04.iso

3.3 安裝操作系統

通過 SPICE/VNC 控制臺完成操作系統的安裝過程。
安裝完成后,虛擬機會自動從磁盤啟動。

3.4 驗證虛擬機接口

# 查看虛擬機接口名稱(例如 vnet0 和 vnet1)
virsh domiflist vm1
virsh domiflist vm2

4. 驗證 OVS 端口 VLAN 配置

# 查看 OVS 端口 VLAN 標記
sudo ovs-vsctl list port | grep -E 'name|tag'

輸出應類似:

name                : "vnet0"
tag                 : 10

name                : "vnet1"
tag                 : 20

name                : "eth0"
trunks              : [10, 20]

5. 虛擬機網絡配置

5.1 啟動虛擬機并獲取 DHCP 地址

# 進入 vm1 控制臺(按 Enter 激活)
virsh console vm1

# 在 vm1 內執(zhí)行:
dhclient -v eth0  # 自動獲取 VLAN 10 的 IP

# 進入 vm2 控制臺
virsh console vm2

# 在 vm2 內執(zhí)行:
dhclient -v eth0  # 自動獲取 VLAN 20 的 IP

5.2 驗證 IP 地址

# 在 vm1 內:
ip addr show eth0  # 應顯示類似 192.168.10.x/24

# 在 vm2 內:
ip addr show eth0  # 應顯示類似 192.168.20.x/24

5.3 驗證網關連通性

# 在 vm1 內:
ping 192.168.10.1  # VLAN 10 網關(假設物理交換機 VLAN 10 網關 IP)

# 在 vm2 內:
ping 192.168.20.1  # VLAN 20 網關

6. 物理交換機配置(補充說明)

確保物理交換機滿足以下條件:

  1. 連接宿主機的端口配置為 Trunk,允許 VLAN 10 和 20。
  2. VLAN 10 和 20 已啟用 DHCP 服務(例如通過 DHCP 中繼或本地 DHCP 服務器)。

7. 故障排查

7.1 虛擬機無法獲取 IP

  • 檢查 OVS VLAN 標記
    sudo ovs-vsctl get port vnet0 tag
    sudo ovs-vsctl get port vnet1 tag
    
  • 檢查物理交換機 Trunk 配置:確保允許 VLAN 10 和 20。

7.2 虛擬機之間無法通信

  • 設計隔離:VLAN 10 和 20 默認隔離,若需跨 VLAN 通信,需在物理交換機或宿主機配置路由。

總結

通過以上步驟,您完成了以下配置:

  1. OVS 網橋 ovs-br0 作為 Trunk 接口連接物理網絡。
  2. 兩個虛擬機分別接入 VLAN 10 和 20。
  3. 虛擬機通過物理交換機的 DHCP 服務自動獲取 IP。
  4. VLAN 間隔離由物理交換機和 OVS 共同實現。
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容