Я пытаюсь создать виртуальная машина (гость), который должен действовать как маршрутизатор (ubntu 14.04). Хост - это машина CentOS 7 (4x LAN). В гость должен получить публичный ip адрес над этим eth0
(гость), который связан с enp0s20f0
(хозяин) над br0
(хозяин).
В Проблема это то, что гость не получает ip адрес.
Дополнительная информация:
enp0s20f0
- enp0s20f3
) соединены мостами br0
- br3
(хозяин) к eth0
- eth3
(гость).br2
: Там есть bootproto=static
так что я могу подключить хозяин к гость а потом в интернетЭскиз:
+---------------------------------------------------------------------------------------------------------+ |host: CentOS 7, KVM, qemu | | +------------------------------------------------------------------------------------+ + - - - - - -+ | | |guest (VM): ubuntu 14.04 router, firewall | |other guests | | | | (VM) | | | | +--------------------------------------------------------------------------------+ | | | | | | | | | | | | | firewall | | | | | | | | | | | | | ++------------+---------+-------------+-------+-------------+------+------------++ | | | | | +------------+ +-------------+ +-------------+ +------------+ | | | | | |PROBLEM: | | | | | | | | | | | | |eth0 | |eth1 | |eth2 | |eth3 | | + - - - - - -+ | | | |dhcp | |static | |static | |static | | X | | +------------------------------------------------------------------------------------+ X | | |not working | |lan zone | |dmz | |wlan zone | X | | +----+-------+ +-----+-------+ +-------+-----+ +-----------++ X | | | | | | X | | | | | X X X X |X | | +------+---------+ +-----+------------+ +-+-------------X--+ ++-----------------+ | | | | | | | | | | | | | | | | | | | | | | | br0 | | br1 | | br2 | | br3 | | | | | | | | BOOTPROTO=static | | | | | | BOOTPROTO=none| | BOOTPROTO=none | | IP: a local ip | | BOOTPROTO=none | | | +-------+--------+ +---------+--------+ +----------+-------+ +---------+--------+ | | | | | | | | | | | | | | | | | | | | +-------+--------+ +---------+--------+ +----------+-------+ +---------+--------+ | | | | | | | | | | | | |enp0s20f0 | |enp0s20f1 | |enp0s20f2 | |enp0s20f3 | | +---------------------------------------------------------------------------------------------------------+ | | | | | | | | | | | | | | | | +--------X-------+ +---------X--------+ +---------XX-------+ +----------XX------+ XXXXX X XXXXXX XX XX loc LAN XXX X other server (dmz) XXX wlan zone XX X XXXXXXXX X XXXXXX XXX X internet XXXXX XXXXXXXXX XXXXXXXXX XXX
Конфиги:
Гость:
cat /etc/network/interfaces #[...] lo [...] # The primary network interface auto eth0 iface eth0 inet dhcp # The lan auto eth1 iface eth1 inet static address 192.168.x.y netmask 255.255.255.0 broadcast 192.168.x.255 # the dmz auto eth2 iface eth2 inet static address 10.0.p.q netmask 255.255.255.0 broadcast 10.0.p.255 # The wirelles zone auto eth3 iface eth3 inet static address 192.168.v.w netmask 255.255.255.0 broadcast 192.168.v.255
Хост:
cat /etc/sysconfig/network-scripts/ifcfg-* NAME=br0 DEVICE=br0 NAME=br2 NAME=br3 TYPE=Bridge NAME=br1 TYPE=Bridge TYPE=Bridge ONBOOT=yes TYPE=Bridge BOOTPROTO=static ONBOOT=yes BOOTPROTO=none ONBOOT=yes ONBOOT=yes BOOTPROTO=none NM_CONTROLLED=no BOOTPROTO=none IPADDR=10.0.0.10 NM_CONTROLLED=no DELAY=0 NM_CONTROLLED=no NETMASK=255.255.255.0 DELAY=0 DEFROUTE=no DELAY=0 GATEWAY=10.0.p.q DEFROUTE=no PEERDNS=no DEFROUTE=no DNS1=10.0.p.q 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=no # IPV6_DEFROUTE=no # IPV4_FAILURE_FATAL=no # IPV6_PEERDNS=no # IPV6_PEERROUTES=yes # IPV6_PEERDNS=no # IPV6INIT=no # IPV6_PEERROUTES=yes # IPV6_FAILURE_FATAL=no # IPV6_PEERROUTES=yes # IPV6_AUTOCONF=no # IPV6_FAILURE_FATAL=no DEVICE=br0 # IPV6_FAILURE_FATAL=no # IPV6_DEFROUTE=no DEVICE=br3 DEVICE=br1 # IPV6_PEERDNS=no # IPV6_PEERROUTES=yes #IPV6_FAILURE_FATAL=no DEVICE=br2 NAME=enp0s20f0 NAME=enp0s20f1 NAME=enp0s20f2 NAME=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=Ethernet TYPE=Ethernet TYPE=Ethernet TYPE=Ethernet BOOTPROTO=none BOOTPROTO=none BOOTPROTO=none BOOTPROTO=none ONBOOT=yes ONBOOT=yes ONBOOT=yes ONBOOT=yes BRIDGE=br0 BRIDGE=br1 BRIDGE=br2 BRIDGE=br3 NM_CONTROLLED=no NM_CONTROLLED=no NM_CONTROLLED=no NM_CONTROLLED=no # 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=yes # IPV4_FAILURE_FATAL=no # IPV4_FAILURE_FATAL=no # IPV4_FAILURE_FATAL=no # 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=yes # IPV6_FAILURE_FATAL=no # IPV6_FAILURE_FATAL=no # IPV6_FAILURE_FATAL=no # IPV6_FAILURE_FATAL=no DEVICE=enp0s20f1 DEVICE=enp0s20f2 DEVICE=enp0s20f3 DEVICE=enp0s20f0
Все ip route
и все ifconfig
/ ip addr
возвращают правильные значения, за исключением eth0
(гость).
На бегу ifup eth0
в гость пытается получить IP-адрес (DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval [...]
) и с No DHCPOFFERS received.
Я рад каждой идее ...
Возможно, устройство вашего интернет-провайдера не передает DHCP-адреса MAC-адресу, который напрямую к нему не подключен. Вам нужно будет позвонить своему интернет-провайдеру, чтобы подтвердить это.
Если это так, вы можете использовать ebtables для подделки MAC-адреса виртуальной машины, например: