Виртуальная сеть с мостовым соединением не смогла получить IP (DHCP) DHCPOFFERS не получено
Я новичок в сети и конфигурации виртуальных ящиков, я потратил несколько дней на решение этой проблемы. Моя цель - заставить работать сеть Bridged.
Когда я пытаюсь подключить интерфейс в моей виртуальной виртуальной машине, он пытается DHCPDISCOVER
сообщения, но в конце концов я получаю нет DHCPOFFERS
получено.
Я нахожу, где проблема.
На моем хосте у меня есть следующая конфигурация сетевого интерфейса (интерфейс, с которым я хочу иметь мост).
HWADDR=5c:9a:d8:68:45:ff
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp3s0
DEVICE=enp3s0
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=195.XX.YY.ZZ
NETMASK=255.255.255.0
NETWORK=195.XX.YY.0
GATEWAY=195.XX.YY.GGG
BROADCAST=195.XX.YY.255
DNS1=195.XX.YY.DDD
DNS2=8.8.8.8
DOMAIN=some.domain.com
Так что конфигурация статична.
Если использовать BridgedAdapter на интерфейсе, который, в свою очередь, использует dhcp для доступа к Интернету, все работает отлично. как и ожидалось.
Полагаю, что я что-то пропустил, или настройку нужно выполнить по-другому, если честно, я не очень понимаю, как работает внутренняя сеть с мостовыми соединениями.
Может быть, проблема может быть легко решена, но недостаточно знаний, чтобы решить ее самостоятельно, поэтому я спрашиваю здесь.
Пожалуйста, помогите решить эту проблему. Спасибо всем заранее за любую помощь
1 ответ
Конфигурирование моста в вашей ситуации не является тривиальным, потому что нет dhcp и потому что IP-адрес, который вы хотите иметь для вашей виртуальной машины, является публичным, а не частным. Я настоятельно рекомендую вам использовать вместо этого NAT, потому что в этом случае я уверен, что нет никаких юридических последствий.
Если вы настаиваете на использовании публичного IP-адреса для вашего гостя (и, повторяю, вы делаете это вопреки моему совету), вы можете использовать тот же метод, который используется, когда это разрешено законом, то есть, например, когда вы пытаюсь занять личный адрес.
Вам нужно будет найти IP, который еще не занят. Предположим, вы определили, что X - это бесплатный IP-адрес в вашем диапазоне. Тогда все, что вам нужно сделать, это настроить гостя для статического IP.
Отредактируйте файл гостя /etc/network/interfaces и сделайте так, чтобы он выглядел следующим образом:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address X
netmask 255.255.255.0
gateway TheIP.Of.Your.Gateway
dns-nameservers 8.8.8.8 8.8.4.4
Выше предполагается, что eth0 является именем сетевой карты гостя, если она не использует соответствующую (enp3s0?). Теперь перезагрузите гостевую виртуальную машину, и у вас все получится.
Как вы узнаете адрес X? Прежде всего, вам придется отслеживать трафик на своем обычном интерфейсе (enp3s0). Используйте Wireshark для этого, вы можете Google, чтобы узнать, как его использовать. Тогда у вас есть два варианта.
используйте бесплатный IP-адрес X, то есть тот, который вы никогда не видели. Возможно, у вашего провайдера есть контрмеры, чтобы заблокировать это, после того, как весь ваш трафик должен пройти через его шлюз, и, если он не хочет, чтобы вы украли публичный IP-адрес, я не смог бы его винить.
используйте занятый IP-адрес. Запишите IP-адрес и MAC-адрес компьютера в вашем диапазоне IP-адресов, а затем подделайте его. Другими словами, в сетевую панель VirtualBox вставьте поддельный MAC-адрес для MAC-адреса гостевого NIC и используйте IP-адрес в качестве вашего X-адреса выше. Эта штуковина будет хорошо работать, когда исходный компьютер простаивает, но наверняка вызовет проблемы в других ситуациях из-за конфликта, присущего наличию двух машин с одинаковыми MAC-адресами и IP-адресами.
Позвольте мне также добавить, что существуют методы отслеживания использования поддельного IP-адреса для вас.
По этим и юридическим причинам я настоятельно призываю вас использовать NAT.