我正在尝试建立一个虚拟机(来宾)应充当路由器(ubntu 14.04)。主机是 CentOS 7 机器(4x LAN)。客人应该获得一个公共 IP地址在它的eth0
(客人),它连接到enp0s20f0
(主持人) 超过br0
(主持人)。
这问题是,客人没有获取 IP地址。
更多信息:
- 所有接口主持人(
enp0s20f0
-enp0s20f3
)通过桥梁连接br0
-br3
(主持人) 到eth0
-eth3
(客人)。 - LAN 接口(主机)没有启动协议
- 桥梁(主持人)没有启动协议,除了
br2
:有bootproto=static
,所以我可以连接主持人到客人然后上网
草图:
+--------------------------------------------------------------------------------------------------------+ |主机:CentOS 7,KVM,qemu | | +------------------------------------------------- -----------------------------------+ + - - - - - -+ | | | 来宾(VM):ubuntu 14.04 路由器,防火墙 | | 其他来宾 | | | | (虚拟机)| | | | +------------------------------------------------- -------------------------------+ | | | | | | | | | | | | | 防火墙 | | | | | | | | | | | | | ++------------+---------+-------------+-------+--- ----------+------+------------++ | | | | | +------------+ +-------------+ +-------------+ +----- -------+ | | | | | |问题:| | | | | | | | | | | | |eth0 | |eth1 | |eth2 | |eth3 | | + - - - - - -+ | | | |dhcp | |静态| |静态| |静态| |X | | +------------------------------------------------------------------------------------+ X | | |不工作 | |lan 区域 | |dmz | |wlan 区域 | X | | +----+-------+ +-----+-------+ +-------+-----+ +-------++ X | | | | | | 十| | | | | XXXX |X | | +------+---------+ +-----+------------+ +-+-------------X--+ ++-----------------+ | | | | | | | | | | | | | | | | | | | | | | | br0 | | br1 | | br2 | | br3 | | | | | | | | BOOTPROTO=静态 | | | | | | BOOTPROTO=none| | BOOTPROTO=none | | IP:本地 IP | | BOOTPROTO=none | | | +-------+--------+ +---------+--------+ +----------+ -------+ +---------+--------+ | | | | | | | | | | | | | | | | | | | | +-------+--------+ +---------+--------+ +----------+ -------+ +---------+--------+ | | | | | | | | | | | | |enp0s20f0 | |enp0s20f1 | |enp0s20f2 | |enp0s20f3 | | +--------------------------------------------------------------------------------------------------------+ | | | | | | | | | | | | | | | | +--------X-------+ +---------X--------+ +---------XX-------+ +----------XX------+ XXXXXX XX 本地 LAN XXX X 其他服务器 (dmz) XXX wlan 区域 XX XXXXXXXXX XXXXXXXXX 互联网 XXXXX XXXXXXXXX XXXXXXXXX XXX
配置:
客人:
猫/等/网络/接口 #[...] 瞧 [...] # 主网络接口 自动 eth0 iface eth0 inet dhcp # 局域网 自动 eth1 iface eth1 inet 静态 地址 192.168.xy 网络掩码 255.255.255.0 广播 192.168.x.255 # 非军事区 自动 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
主持人:
猫/等/系统配置/网络脚本/ifcfg-* 名称=br0 设备=br0 名称=br2 名称=br3 类型=桥梁 名称=br1 类型=桥梁 类型=桥梁 ONBOOT=是 TYPE=桥接 BOOTPROTO=静态 ONBOOT=是 BOOTPROTO=无 ONBOOT=是 ONBOOT=是 BOOTPROTO=无 NM_CONTROLLED=否 BOOTPROTO=无 IPADDR=10.0.0.10 NM_CONTROLLED=否 延迟=0 NM_CONTROLLED=无网络掩码=255.255.255.0 延迟=0 DEFROUTE=无 DELAY=0 GATEWAY=10.0.pq DEFROUTE=无 PEERDNS=否 DEFROUTE=否 DNS1=10.0.pq PEERDNS=否 # PEERROUTES=是 PEERDNS=否 NM_CONTROLLED=否 # PEERROUTES=是 #IPV4_FAILURE_FATAL=否 #PEERROUTES=是 DELAY=0 #IPV4_FAILURE_FATAL=否 #IPV6INIT=否 #IPV4_FAILURE_FATAL=否 DEFROUTE=是 #IPV6INIT="否" #IPV6_AUTOCONF=否 #IPV6INIT=否 PEERDNS=是 #IPV6_AUTOCONF=否 #IPV6_DEFROUTE=否 #IPV6_AUTOCONF=否 #PEERROUTES=是 #IPV6_DEFROUTE=否 #IPV6_PEERDNS=否 #IPV6_DEFROUTE=否 #IPV4_FAILURE_FATAL=否 #IPV6_PEERDNS=否 #IPV6_PEERROUTES=是 #IPV6_PEERDNS=否 #IPV6INIT=否 #IPV6_PEERROUTES=是 #IPV6_FAILURE_FATAL=否 #IPV6_PEERROUTES=是 #IPV6_AUTOCONF=否 #IPV6_FAILURE_FATAL=否 设备=br0 # IPV6_FAILURE_FATAL=否 # IPV6_DEFROUTE=否 设备=br3 设备=br1#IPV6_PEERDNS=no #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=无 BOOTPROTO=无 BOOTPROTO=无 BOOTPROTO=无 ONBOOT=是 ONBOOT=是 ONBOOT=是 ONBOOT=是 桥=br0 桥=br1 桥=br2 桥=br3 NM_CONTROLLED=否 NM_CONTROLLED=否 NM_CONTROLLED=否 NM_CONTROLLED=否 #PERSISTENT_DHCLIENT=1 #DEFROUTE=否 #DEFROUTE=否 #DEFROUTE=否 # DEFROUTE=否 # PEERDNS=是 # PEERDNS=是 # PEERDNS=是 # PEERDNS=是 # PEERROUTES=是 # PEERROUTES=是 # PEERROUTES=是 #PEERROUTES=是 #IPV4_FAILURE_FATAL=否 #IPV4_FAILURE_FATAL=否 #IPV4_FAILURE_FATAL=否 #IPV4_FAILURE_FATAL=是 #IPV6INIT="否" #IPV6INIT=否 #IPV6INIT=否 #IPV6INIT=否 #IPV6_AUTOCONF=否 #IPV6_AUTOCONF=否 #IPV6_AUTOCONF=否 #IPV6_AUTOCONF=否 #IPV6_DEFROUTE=是 #IPV6_DEFROUTE=是 #IPV6_DEFROUTE=是 #IPV6_DEFROUTE=否 #IPV6_PEERDNS=是 #IPV6_PEERDNS=是 #IPV6_PEERDNS=是 #IPV6_PEERDNS=是 #IPV6_PEERROUTES=是 #IPV6_PEERROUTES=是 #IPV6_PEERROUTES=是 #IPV6_PEERROUTES=是 #IPV6_FAILURE_FATAL=否 #IPV6_FAILURE_FATAL=否 #IPV6_FAILURE_FATAL=否 #IPV6_FAILURE_FATAL=否 设备=enp0s20f1 设备=enp0s20f2 设备=enp0s20f3 设备=enp0s20f0
所有
ip route
和所有ifconfig
/ip addr
都返回正确的值,除了eth0
(客人)。在
ifup eth0
运行客人尝试获取 IP 地址 (DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval [...]
) 并No DHCPOFFERS received.
我对每个想法都很高兴......
答案1
您的 ISP 设备可能不会向与其不直接连接的 MAC 地址提供 DHCP 地址。您需要致电您的 ISP 进行确认。
如果是这样,您可以使用 ebtables 来欺骗 VM 的 MAC,如下所示: