Как получить доступ к гостевой виртуальной с CentOS, используя дополнительный IP?
У меня есть выделенный сервер в Hetzner. В котором я установил CentOS 7.4, внутри него у меня KVM с другим CentOS 7.4.
Я запросил дополнительный ip от Hetzner, у которого есть Mac, выделенный для целей виртуализации.
Я хотел бы, чтобы гость имел доступ к Интернету и чтобы эта виртуальная машина была доступна из Интернета.
Вот данные с двух ips, которые у меня есть с роботом Hetzner.
Основной IP: AA.BBB.CCC.DD
Gateway: AA.BBB.CCC.1
Netmask: 255.255.255.192
Broadcast: AA.BBB.CCC.63
Дополнительный IP: AA.BBB.CCC.EE
Gateway: AA.BBB.CCC.1
Netmask: 255.255.255.192
Broadcast: AA.BBB.CCC.63
Это файл /etc/sysctl.d/99-hetzner.conf
### Hetzner Online GmbH installimage
# sysctl config
net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1
# ipv6 settings (no autoconfiguration)
net.ipv6.conf.default.autoconf=0
net.ipv6.conf.default.accept_dad=0
net.ipv6.conf.default.accept_ra=0
net.ipv6.conf.default.accept_ra_defrtr=0
net.ipv6.conf.default.accept_ra_rtr_pref=0
net.ipv6.conf.default.accept_ra_pinfo=0
net.ipv6.conf.default.accept_source_route=0
net.ipv6.conf.default.accept_redirects=0
net.ipv6.conf.all.autoconf=0
net.ipv6.conf.all.accept_dad=0
net.ipv6.conf.all.accept_ra=0
net.ipv6.conf.all.accept_ra_defrtr=0
net.ipv6.conf.all.accept_ra_rtr_pref=0
net.ipv6.conf.all.accept_ra_pinfo=0
net.ipv6.conf.all.accept_source_route=0
net.ipv6.conf.all.accept_redirects=0
Это начальная конфигурация только что установленного и запущенного хоста
DEVICE=enp0s31f6
ONBOOT=yes
BOOTPROTO=none
IPADDR=AA.BBB.CCC.DD
NETMASK=255.255.255.255
SCOPE="peer AA.BBB.CCC.1"
IPV6INIT=yes
IPV6ADDR=2a01:4f8:13b:1801::2/64
IPV6_DEFAULTGW=fe80::1
IPV6_DEFAULTDEV=enp0s31f6
Это предыдущий файл, модифицированный, чтобы получить мост
DEVICE=enp0s31f6
ONBOOT=yes
HWADDR=90:1b:0e:ee:05:4e
BOOTPROTO=none
IPADDR=AA.BBB.CCC.DD
NETMASK=255.255.255.192
SCOPE="peer AA.BBB.CCC.1"
BRIDGE=br0
Это файл br0, который я создал
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=AA.BBB.CCC.DD
NETMASK=255.255.255.192
SCOPE="peer AA.BBB.CCC.1"
ONBOOT=yes
DELAY=0
Кто-нибудь знает, какую настройку нужно сделать в гостевой системе CentOS?
Что-то не так с тем, что я опубликовал выше?
Большое спасибо за помощь.
2 ответа
Во-первых, вам нужно создать виртуальный сетевой интерфейс гостя, используя виртуальный MAC-адрес, который Хецнер назначил вам и связал с br0
в вашей хост-системе. Например (libvirt XML):
<interface type='bridge'>
<mac address='00:0c:29:34:b3:a1'/>
<source bridge='br0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>
</interface>
Затем вы настраиваете гостевую ОС с соответствующим IP-адресом, маской сети и шлюзом. IP-адрес не назначен хосту.
Пожалуйста, предоставьте дополнительную информацию, какая у вас платформа виртуализации? Есть ли консоль для доступа к хост-машине? Как vmware (клиент vsphere), proxmox (веб-интерфейс), openstack (веб-интерфейс).
Я думаю, что вам нужно проверить мост интерфейса на этой машине и убедиться, что интерфейс виртуальной сети (обычно интерфейс интерфейса) указан как член моста вместе с сетевым интерфейсом хоста (enp0s31f6).
Пожалуйста, используйте следующую команду, чтобы узнать, правильна ли сеть, и опубликуйте результаты.
# ifconfig -a
# brctl show
Спасибо