Fedora 14系統中的虛擬化網路詳解

佚名發表於2020-06-21

  Fedoara 14和RHEL 6[kvm]中為虛擬化提供了3種配置支援,

  1. Network Address Translation [NAT]

  2. 直接分配物理裝置 [PCI passthrough or SR-IOV]

  3. 共享物理裝置[Bridge]

  其中NAT是預設開啟的,如果要想外網能訪問虛擬機器多使用直接分配物理裝置或者橋接網路。

NAT:

  幾乎所有標準的libvirt都支援NAT作為虛擬網路[default virtual network],virsh net-list --all 可以檢視

  # virsh net-list --all

  Name State Autostart

  -----------------------------------------

  default active yes

  如果相應的xml配置檔案丟失,可以從模板中提取:

  # virsh net-define /usr/share/libvirt/networks/default.xml

  然後將虛擬網路標識為自動啟動:

  # virsh net-autostart default

  # virsh net-start default

  檢視橋接情況,virbr0 透過NAT和IP轉發與實體網路連通,不新增其它介面。

  # brctl show

  bridge name bridge id STP enabled interfaces

  virbr0 8000.000000000000 yes

  一般情況下libvirt會自動新增一些規則到iptables,並嘗試開啟ip_forward功能,但其它應用程式可能會禁止ip_forward,所以最好在/etc/sysctl.conf中新增一項:

  net.ipv4.ip_forward = 1

Briged:

  一般用於多網路卡機器上,NetworkManager不支援橋接,所以需要關閉NetworkManager服務,或者在網路裝置的配置檔案中新增一選項'NM_CONTROLLED=no'引數

  # vim /etc/sysconfig/network-scripts/ifcft-eth0

  DEVICE=eth0

  HWADDR=00:16:76:D6:C9:45

  ONBOOT=yes

  BRIDGE=br0

  新增br0配置

  DEVICE=br0

  ONBOOT=yes

  TYPE=Bridge

  BOOTPROTO=dhcp

  DELAY=0

  重啟網路服務

  service network restart

  brctl檢視

  # brctl show

  bridge name bridge id STP enabled interfaces

  br0 8000.f0def1341ae6 no eth0

  virbr0 8000.000000000000 yes

  配置iptables,允許橋接網路的流量轉發[用到physdev模組]

  # iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT

  配置以下核心引數也可以實現:

  net.bridge.bridge-nf-call-ip6tables = 0

  net.bridge.bridge-nf-call-iptables = 0

  net.bridge.bridge-nf-call-arptables = 0

相關文章