1. 程式人生 > >RHEL 6.1 KVM虛擬機器橋接物理機網路

RHEL 6.1 KVM虛擬機器橋接物理機網路

RHEL6.1 KVM虛擬機器橋接物理機網路

一、KVM預設網路配置

1、kvm上網有兩種配置: a. NAT,支援主機與虛擬機器的互訪,也支援虛擬機器訪問網際網路,但不支援外界訪問虛擬機器。 b. bridge(橋接),可以使用虛擬機器成為網路中具有獨立IP的主機,不但能上網,也能讓別人訪問虛擬機器。 2、虛擬機器安裝完成時,預設的NAT,網絡卡為“Realtek RTL8139 Family PCI Fast Ethernet NIC,地址是一個私有網段,我分配到的IP是192.168.122.148。

3、在伺服器端檢視kvm橋接情況,三組對比資料如下:
a.沒有虛擬機器執行時
[

[email protected] ~]# brctl show


 
b.有一臺虛擬機器執行時
[[email protected] ~]# brctl show


 
c.有兩臺虛擬要執行時
[[email protected] ~]# brctl show

當執行一臺虛擬機器時,就會自動建立一個虛擬網絡卡vnet。

4、virbr0的配置檔案在/var/lib/libvirt/network目錄下,預設配置為:
[[email protected] ~]# cat /var/lib/libvirt/network/default.xml


 

二、配置bridge上網方式

1、建立橋接器(br0)
在/etc/sysconfig/network-scripts目錄下,建立一個ifcfg-br0 檔案,其型別設為Bridge:
[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=bridge
BOOTRPOTO=none IPADDR=192.168.162.100 NETMASK=255.255.255.0
ONBOOT=yes 2、將物理介面橋接到橋接器
修改ifcfg-eth0(有些是ifcfg-em1),只需要註釋掉其IP相關資訊,加上“BRIDGE=br0”,將其橋接到br0上。
[
[email protected]
~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NM_CONTROLLED=yes
ONBOOT=yes
#IPADDR=192.168.1.100 #NETMASK=255.255.255.0
BOOTPROTO=none            //若有dhcp伺服器,可改為dhcp,這樣就不需要在guestOS中手動配置IP
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
BRIDGE=br0 注:如果是雙網絡卡或是多網絡卡,請參照下文

3、重啟物理機網路服務
[[email protected] ~]# service network restart

4、檢視當前橋接情況(有一個虛擬機器正在執行)
 

可以看出eth0橋接在br0上了,也可以看作eth0接在了br0這個交換機上

[[email protected] ~]# brctl show

5、將虛擬機器介面橋接到橋接器
[[email protected] ~]# brctl delif virbr0 vnet0
[[email protected] ~]# brctl addif br0 vnet0
[[email protected] ~]# brctl show

這樣,vnet0也接在了br0這個交換機上,所以vnet0的資料就能通過eth0傳送出去


 
 

6、在虛擬機器NIC中選擇virbr0

 注意:dhcp服務最終是給br0分配IP的,不會給eth0,但是物理機也是可以上網的。

三、配置NAT上網方式

NAT方式是kvm安裝後的預設方式。它支援主機與虛擬機器的互訪,同時也支援虛擬機器訪問網際網路,但不支援外界訪問虛擬機器。

檢查當前的網路設定:

#virsh net-list --all
Name State Autostart
-----------------------------------------
default active yes

default是宿主機安裝虛擬機器支援模組的時候自動安裝的。

檢查當前的網路介面:

#ifconfig
eth0      Link encap:Ethernet  HWaddr 44:37:E6:4A:62:AD  
          inet6 addr: fe80::4637:e6ff:fe4a:62ad/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:987782 errors:0 dropped:0 overruns:0 frame:0
          TX packets:84155 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:109919111 (104.8 MiB)  TX bytes:12695454 (12.1 MiB)
          Interrupt:17 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:240 (240.0 b)  TX bytes:240 (240.0 b)

virbr0    Link encap:Ethernet  HWaddr 52:54:00:B9:B0:96  
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2126 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:100387 (98.0 KiB)

virbr0-nic Link encap:Ethernet  HWaddr 52:54:00:B9:B0:96  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

其中virbr0是由宿主機虛擬機器支援模組安裝時產生的虛擬網路介面,也是一個switch和bridge,負責把內容分發到各虛擬機器。

幾個虛擬機器管理模組產生的介面關係如下圖:



從圖上可以看出,虛擬介面和物理介面之間沒有連線關係,所以虛擬機器只能在通過虛擬的網路訪問外部世界,無法從網路上定位和訪問虛擬主機。

virbr0是一個橋接器,接收所有到網路192.168.122.*的內容。從下面命令可以驗證:

# brctl show
bridge name     bridge id               STP enabled     interfaces
virbr0          8000.525400b9b096       yes             virbr0-nic

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.122.0   *               255.255.255.0   U     0      0        0 virbr0

同時,虛擬機器支援模組會修改iptables規則,通過命令可以檢視:

# iptables -t nat -L -nv
Chain PREROUTING (policy ACCEPT 16924 packets, 2759K bytes)
pkts bytes target     prot opt in     out     source               destination
Chain POSTROUTING (policy ACCEPT 2009 packets, 125K bytes)
pkts bytes target     prot opt in     out     source               destination        
 421 31847 MASQUERADE  all  --  *      *       192.168.122.0/24    !192.168.122.0/24   ----------->這條是關鍵,它配置了NAT功能。
Chain OUTPUT (policy ACCEPT 2011 packets, 125K bytes)
pkts bytes target     prot opt in     out     source               destination        

    
# iptables -t filter -L -nv
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination        
 1    74 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0           udp dpt:53    ---->由libvirt指令碼自動寫入
 0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0           tcp dpt:53    ---->由libvirt指令碼自動寫入
 3   984 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0           udp dpt:67    ---->由libvirt指令碼自動寫入
 0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0           tcp dpt:67    ---->由libvirt指令碼自動寫入
178K  195M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED    ---->iptables的系統預設
 2   168 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0                ---->iptables的系統預設
1148  216K ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0                ---->iptables的系統預設
 1    60 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22  ---->iptables的系統預設
16564 2721K REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited ---->iptables的系統預設
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination        
3726 3485K ACCEPT     all  --  *      virbr0  0.0.0.0/0            192.168.122.0/24    state RELATED,ESTABLISHED  ---->由libvirt指令碼自動寫入
3491  399K ACCEPT     all  --  virbr0 *       192.168.122.0/24     0.0.0.0/0                ---->由libvirt指令碼自動寫入
 0     0 ACCEPT     all  --  virbr0 virbr0  0.0.0.0/0            0.0.0.0/0                ---->由libvirt指令碼自動寫入
 0     0 REJECT     all  --  *      virbr0  0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable  ---->由libvirt指令碼自動寫入
 0     0 REJECT     all  --  virbr0 *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable  ---->由libvirt指令碼自動寫入
 0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited  ---->iptables的系統預設
Chain OUTPUT (policy ACCEPT 181K packets, 138M bytes)
pkts bytes target     prot opt in     out     source               destination

如果沒有default的話,或者需要擴充套件自己的虛擬網路,可以使用命令重新安裝NAT。

NAT方式的適用範圍

桌面主機虛擬化。

建立步驟

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

此命令定義一個虛擬網路,default.xml的內容:

<network>
  <name>default</name>
  <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>

也可以修改xml,建立自己的虛擬網路。

標記為自動啟動:

#virsh net-autostart default
Network default marked as autostarted

啟動網路:

#virsh net-start default
Network default started

網路啟動後可以用命令brctl show 檢視和驗證。

修改/etc/sysctl.conf中引數,允許ip轉發:

net.ipv4.ip_forward=1

客戶機安裝

客戶機安裝時注意,網路要選擇用NAT方式。

圖形化的方式:



相關推薦

RHEL 6.1 KVM虛擬機器物理網路

RHEL6.1 KVM虛擬機器橋接物理機網路 一、KVM預設網路配置 1、kvm上網有兩種配置: a. NAT,支援主機與虛擬機器的互訪,也支援虛擬機器訪問網際網路,但不支援外界訪問虛擬機器。 b. bridge(橋接),可以使用虛擬機器成為網路中具有獨立IP的主

Ubuntu14.04+KVM配置虛擬機器(bridge)

主機:Ubuntu14.04 64bit 虛擬機器:Ubuntu14.04 64bit VMM:KVM Bridge橋接原理原理 KVM安裝後預設的網路連結方式是NAT,此時虛擬機器只能夠與安裝在本機上的其餘虛擬機器通訊,虛擬機器的IP地址是

虛擬機器模式 ping 不通物理的問題

這種情況的出現也不知道為啥, 首先開啟虛擬機器 點 “編輯”裡的  “虛擬網路編輯器”--- 然後在“橋接到”那裡由“自動”改成“個人區域網”,右下角點應用...然後你會發現依然ping不通,所以這個時候你再回到這裡,把它改回“自動”,然後點應用... 他就居然可以ping

centos7 虛擬機器設定

虛擬機器網路橋接的好處是虛擬機器可以當做局域網裡的一個獨立的電腦 費了半天勁才搞定,寫篇日誌記錄一下,以便日後使用。 首先把安裝的虛擬機器的網路介面卡改為橋接模式(自動),然後把虛擬機器的虛擬網路編輯器中的VMnet0改為橋接模式並指定物理網絡卡。如果沒有VMnet0,需要到主機的網路

VMware虛擬機器模式配置

前述有配置過NAT模式的虛擬機器環境,這篇再簡單談談橋接模式的虛擬機器環境配置。 測試環境: 主機:64位Win10 宿主機IP:192.168.1.4 虛擬機器:ubuntu16.04 A虛擬機器IP:192.168.1.30 B虛擬機器IP:192.168.1.17

虛擬機器模式的配置

橋接模式不同於NAT共享模式,NAT共享模式中虛擬機器的IP網段與主機的IP網段並不一致, 當虛擬機器訪問網路時通過NAT轉換成主機IP訪問外部網路,而橋接模式 則相當於主機與虛擬機器在同一個網段下,使用各自的IP。 由於測試需要,目前有主機win7系統、虛擬機器A(linux kali系統

虛擬機器無法自動獲取IP的解決方法

在虛擬機器VM裡面裝了centos系統,網絡卡選用橋接方式。 剛開始的時候還能自動獲取到IP地址,突然有一天IP消失了,再怎麼重啟都無法獲取IP地址。因為之前是可以獲取IP,而且 VMware NAT Service 和 VMware DHCP Service 兩個已啟

設定虛擬機器模式以及解決模式上不了網以及ping不通主機的問題

一.VMware設定橋接模式 1.VMware -> 編輯->虛擬網路編輯器->更改設定 選擇VMnet0(橋接模式),選擇與主機同名網絡卡 ,主機可在在網路中心檢視網絡卡名稱 2.設定橋接模式  選擇橋接模式  二.解決上不了

解決虛擬機器模式上不了網的問題【轉載】

如果你的真實機的IP地址是通過ADSL撥號上網或者其他方式獲取到的IP地址,由於此時IP地址為公網IP,而虛擬機器要想實現上網,必須和真實機的IP地址保持同一網段,那麼你虛擬機器的IP地址也應設定為公網的IP,不過實際使用中是不能實現的(公網IP是唯一的,不能胡亂配置)。 那麼此時,如果要實現上網,可以

VMWare虛擬機器模式無法上網提示 "connect: Network is unreachable"

今天在VMWare上裝了臺虛擬機器,當我選擇橋接模式,並且配完靜態IP和DNS後,手動ping百度,結果提示"connect: Network is unreachable"。 一開始以為是防火牆的問

Win10 Hyper-V 搭建虛擬機器 模式

使用win10 的Hyper-V 去建立一個centos的時候發現虛擬機器能ping通網路,宿主機不能ping虛擬機器,而Hyper-V沒有VM的橋接模式可以選擇,為了讓虛擬機器可以和宿主機同網段,需要搭建網橋才可以 在 Hyper-V 管理器建立虛擬交換機

關於vagrant+virtualbox 的虛擬機器網絡卡沒有地址的解決方法

HWADDR=08:00:27:b7:76:1b BOOTPROTO=static IPADDR=172.17.140.3 ONBOOT=yes DEVICE=enp0s8 GATEWAY=172.17.140.1 不用dncp,改用靜態ip配置,在物理機所在網段找到沒有佔

虛擬機器模式下連線網路失敗解決

虛擬機器設定使用了靜態ip,ip,閘道器,子網掩碼都沒有問題,死活上不了網主機的ip情況虛擬機器的設定也重啟了網絡卡服務等,就是無法上網。後面,查閱資料,在參考資料1中,能夠解決基本問題,但是主機能夠ping同虛擬機器192.168.1.126,而虛擬機器無法ping 192

ubuntu12.04 vmware虛擬機器問題導致的閘道器不可達的解決

路由器組成的區域網,ubutnu虛擬機器是1.88的靜態IP. 路由器閘道器是1.1 [email protected]:/etc# ping 192.168.1.1 PING 192.168.1.1 (192.168.1.1) 56(84) bytes of

解決win10下VM12虛擬機器模式不能上網的方法(親測可行)

本文的方法可解決如下兩個問題: 1。區域網中其他機器ping不通本機中的虛擬機器。 2。本機中的虛擬機器採用橋接模式不能上網,甚至主機也不能上網。 注意:自己區域網的IP起始地址及路由器地

VirtualBox導致Vmware的虛擬機器模式網路不通

VMware內的虛擬機器,設定為橋接後,無法連線外網。 物理主機IP地址:192.168.0.60,虛擬機器IP地址:192.168.0.61,閘道器地址:192.168.0.1 虛擬機器網路採用橋接模式: 從物理機無法ping通虛擬機器,虛擬機器也無法ping通閘道器。

CentOS虛擬機器模式

  1、 工作管理員。下圖所示5個服務啟動起來,不然連虛擬機器都不能啟動:   2、 開啟網路和共享中心,找到你正在上網的那個網絡卡--屬性:   沒有這個選項的話,點選安裝--服務--新增--從磁碟安裝--找到VMWare安裝目錄下的netbridge.inf安裝即可

Fedora14 使用虛擬機器上網 靜態配置固定IP 和宿主機IP在同一網段的方法 及 若干問題解決(NFS掛載第一步)

要進行NFS掛載,第一步是使虛擬機器橋接上網,橋接上網下面的小框 不用勾選。下面要將其IP地址和宿主機IP配置在同一網段,破費周折終於成功。 記錄下步驟: 一,我最初是參照http://hi.baidu.com/%D1%E3%C9%F9%C1%F4/blog/item/b0

ESXI虛擬機器轉換成物理[V2P]

    一直以來我們在做虛擬化的時候都會做一件事情就是P2V,而很少人做V2P,其實在實際情況中我們可能會遇到這種情況,至於原因可想而知,無非是效能得不到滿足、無法在虛擬化平臺上正常執行, 雖然說這種情況很少,但是還是會存在的,所以這裡我們說一下關於V2P的那些事情,V2P其

openstack中虛擬機器怎麼與物理通訊

How-to-connection-ns-outside 環境配置 網路介面 vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED