Networking

qemu,kvm:訪客:未收到 DHCPOFFERS

  • December 12, 2014

我正在嘗試設置一個虛擬機(訪客),它應該充當路由器(ubntu 14.04)。主機是 CentOS 7 機器(4x LAN)。來賓應該通過它的eth0( guest ) 獲得一個公共 IP 地址,該地址通過( host )連接到enp0s20f0( host )。br0

問題是,客人沒有獲得IP地址。


更多資訊:

  • 主機( enp0s20f0- ) 的所有介面enp0s20f3都通過網橋br0- br3( host ) 連接到eth0- eth3( guest )。
  • LAN 介面(主機)沒有bootproto
  • 網橋(主機)沒有bootproto,除了br2:有bootproto=static這樣我可以將主機連接到來賓,然後連接到網際網路

草圖:

+---------------------------------------------------------------------------------------------------------+
|主機:CentOS 7、KVM、qemu |
| +------------------------------------------------------------------------------------+ + - - - - - -+ |
| |來賓 (VM):ubuntu 14.04 路由器、防火牆 | |其他客人|
| | | (虛擬機) | |
| | +--------------------------------------------------------------------------------+ | | |
| | | | | | |
| | | 防火牆| | | |
| | | | | | |
| | ++------------+---------+-------------+-------+-------------+------+------------++ | | |
| | +------------+ +-------------+ +-------------+ +------------+ | | |
| | |問題:| | | | | | | | | |
| | |eth0 | |eth1 | |eth2 | |eth3 | | + - - - - - -+ |
| | |dhcp | |靜態 | |靜態 | |靜態 | | X |
| +-------------------------------------------------- ------------------------------------------------+ X |
| |不工作 | |區域網路區| |dmz | |wlan 區 | X |
| +----+-------+ +-----+--------+ +--------+-----+ +----- ------++ X |
| | | | | X |
| | | | XXXX |X |
| +------+---------+ +-----+------------+ +-+--------- ----X---+ +-----------------+ |
| | | | | | | | | |
| | | | | | | | | |
| | br0 | | br1 | | br2 | | br3 | |
| | | | | | BOOTPROTO=靜態 | | | |
| | BOOTPROTO=無| | BOOTPROTO=無 | | IP:本地ip | | BOOTPROTO=無 | |
| +-------+--------+ +---------+--------+ +----------+-------+ +---------+--------+ |
| | | | | |
| | | | | |
| | | | | |
| +-------+--------+ +---------+--------+ +----------+-------+ +---------+--------+ |
| | | | | | | | | |
| enp0s20f0 | enp0s20f1 enp0s20f2 enp0s20f3 |
+---------------------------------------------------------------------------------------------------------+
| | | | | | | | 
| | | | | | | | 
+--------X-------+ +---------X--------+ +---------XX- ------+ +----------XX------+ 
XXXXXX X XXXXXX XX 
XX loc LAN XXX X 其他伺服器 (dmz) XXX wlan zone XX 
X XXXXXXXXX X XXXXXX XXX X 
網際網路 XXXXXX XXXXXXXXX XXXXXXXXX XXX 

配置:

客人:

貓 /etc/網路/介面
#[...] 它 [...]
# 主網路介面
自動 eth0
iface eth0 inet dhcp

# 區域網路
汽車 eth1
iface eth1 inet 靜態
地址 192.168.xy
網路遮罩 255.255.255.0
廣播 192.168.x.255

# DMZ
自動 eth2
iface eth2 inet 靜態
地址 10.0.pq
網路遮罩 255.255.255.0
廣播 10.0.p.255

# 無線區域
自動 eth3
iface eth3 inet 靜態
地址 192.168.vw
網路遮罩 255.255.255.0
廣播 192.168.v.255

主持人:

貓 /etc/sysconfig/network-scripts/ifcfg-*

名稱=br0 設備=br0 名稱=br2 名稱=br3 
TYPE=網橋 NAME=br1 TYPE=網橋 TYPE=網橋 
ONBOOT=yes TYPE=橋接 BOOTPROTO=static ONBOOT=yes 
BOOTPROTO=none ONBOOT=yes ONBOOT=yes BOOTPROTO=none 
NM_CONTROLLED=無 BOOTPROTO=無 IPADDR=10.0.0.10 NM_CONTROLLED=無 
延遲=0 NM_CONTROLLED=無網路遮罩=255.255.255.0 延遲=0 
DEFROUTE=no DELAY=0 網關=10.0.pq DEFROUTE=no 
PEERDNS=no DEFROUTE=no DNS1=10.0.pq PEERDNS=no 
# PEERROUTES=yes PEERDNS=no NM_CONTROLLED=no # PEERROUTES=yes 
# IPV4_FAILURE_FATAL=no # PEERROUTES=yes DELAY=0 # IPV4_FAILURE_FATAL=no
#IPV6INIT=no #IPV4_FAILURE_FATAL=no DEFROUTE=yes #IPV6INIT="no" 
#IPV6_AUTOCONF=no #IPV6INIT=no PEERDNS=yes #IPV6_AUTOCONF=no 
#IPV6_DEFROUTE=no #IPV6_AUTOCONF=no #PEERROUTES=yes #IPV6_DEFROUTE=no 
# IPV6_PEERDNS = 否 # IPV6_DEFROUTE = 否 # IPV4_FAILURE_FATAL = 否 # IPV6_PEERDNS = 否 
#IPV6_PEERROUTES=yes #IPV6_PEERDNS=no #IPV6INIT=no #IPV6_PEERROUTES=yes 
#IPV6_FAILURE_FATAL=否#IPV6_PEERROUTES=是#IPV6_AUTOCONF=否#IPV6_FAILURE_FATAL=否
DEVICE=br0 # IPV6_FAILURE_FATAL=no # IPV6_DEFROUTE=no DEVICE=br3 
設備=br1 # IPV6_PEERDNS=否 
# IPV6_PEERROUTES=是 
#IPV6_FAILURE_FATAL=否 
設備=br2 

名稱=enp0s20f0 名稱=enp0s20f1 名稱=enp0s20f2 名稱=enp0s20f3 
HWADDR="ab:cd:ef:gh:ij:kl" HWADDR=ab:cd:ef:gh:ij:mn HWADDR=ab:cd:ef:gh:ij:op HWADDR=ab:cd:ef:gh :ij:qr
UUID="[...]" UUID=[...] UUID=[...] UUID=[...] 
TYPE=乙太網 TYPE=乙太網 TYPE=乙太網 TYPE=乙太網 
BOOTPROTO=none BOOTPROTO=none BOOTPROTO=none BOOTPROTO=none 
ONBOOT=yes ONBOOT=yes ONBOOT=yes ONBOOT=yes 
橋=br0 橋=br1 橋=br2 橋=br3 
NM_CONTROLLED=否 NM_CONTROLLED=否 NM_CONTROLLED=否 NM_CONTROLLED=否 
#PERSISTENT_DHCLIENT=1 #DEFROUTE=no #DEFROUTE=no #DEFROUTE=no 
#DEFROUTE=no #PEERDNS=yes #PEERDNS=yes #PEERDNS=yes 
#PEERDNS=yes #PEERROUTES=yes #PEERROUTES=yes #PEERROUTES=yes 
#PEERROUTES =是#IPV4_FAILURE_FATAL =否#IPV4_FAILURE_FATAL =否#IPV4_FAILURE_FATAL =否
#IPV4_FAILURE_FATAL=yes #IPV6INIT="no" #IPV6INIT=no #IPV6INIT=no 
#IPV6INIT=no #IPV6_AUTOCONF=no #IPV6_AUTOCONF=no #IPV6_AUTOCONF=no 
#IPV6_AUTOCONF=no #IPV6_DEFROUTE=yes #IPV6_DEFROUTE=yes #IPV6_DEFROUTE=yes 
#IPV6_DEFROUTE=no #IPV6_PEERDNS=yes #IPV6_PEERDNS=yes #IPV6_PEERDNS=yes 
#IPV6_PEERDNS=yes #IPV6_PEERROUTES=yes #IPV6_PEERROUTES=yes #IPV6_PEERROUTES=yes 
#IPV6_PEERROUTES =是#IPV6_FAILURE_FATAL =否#IPV6_FAILURE_FATAL =否#IPV6_FAILURE_FATAL =否
# IPV6_FAILURE_FATAL=無設備=enp0s20f1 設備=enp0s20f2 設備=enp0s20f3 
設備=enp0s20f0 

  • 所有ip route和所有ifconfig/ip addr都返回正確的值,除了eth0( guest )。
  • 在執行ifup eth0時,來賓嘗試獲取一個 IP 地址 ( DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval [...]) 並使用No DHCPOFFERS received.

我對每一個想法都很滿意…

您的 ISP 的設備可能沒有將 DHCP 地址提供給未直接連接到它的 MAC 地址。您需要致電您的 ISP 來確認這一點。

如果是這樣,您可以使用 ebtables 來欺騙 VM 的 MAC,如下所示:

http://wiki.debian.org/BridgeNetworkConnections

引用自:https://serverfault.com/questions/649274