Автоматически приобретать новый IP-адрес в новой сети

Я запускаю виртуальную машину Centos на ноутбуке, используя мостовое сетевое соединение, чтобы избежать проблем с двойным NAT, с адресом, назначенным через DHCP. Это отлично работает, пока я не переведу ноутбук в другую сеть, после чего виртуальная машина не заметит, что она находится в другой сети и продолжает использовать старый IP-адрес, что приводит к потере подключения.

В настоящее время я управляю этим путем ручного запуска ifdown и ifup для сброса сетевого подключения, но я бы предпочел автоматический способ сделать это. Предложения?

Заметки:

  • Все сети имеют DHCP-серверы.
  • Виртуальная виртуальная машина правильно получает аренду IP-адресов в каждой сети при подключении интерфейса.
  • Я не могу изменять настройки на серверах DHCP.
  • Сети находятся в разных диапазонах IP-адресов.

5 Solutions collect form web for “Автоматически приобретать новый IP-адрес в новой сети”

Отредактируйте хосты /etc/network/interfaces :

 auto eth0 post-up VBoxManage controlvm nameofyourboxhere setlinkstate1 on post-down VBoxManage controlvm nameofyourboxhere setlinkstate1 off 

Должны делать именно то, что вы хотите! Можно, конечно, улучшить, но я думаю, что показал вам путь.

Это рекомендуемое решение, которое может сработать для вас.

Попытайтесь возиться с временем аренды, предоставляемым сервером DHCP на стороне клиента, используя dhcp-eval (пример находится прямо там). Установите значение ниже, чем изменение времени между сетями.

Например, если вам требуется 30 минут, чтобы добраться из офиса до дома, установите его на 20 минут, чтобы ваша виртуальная машина была лишена аренды, как только вы вернетесь домой.

Если вы настроили второе сетевое соединение «только для хоста» с вашим хостом, вы можете посмотреть его основные сетевые подключения, чтобы увидеть, когда изменяется IP-адрес. Что-то вроде…

 while sleep 60 ; do new_ip="`ssh host_ip ifconfig en1 | grep 'inet ' | awk '{print $2}'`" if [ "$new_ip" != "$old_ip" ] ; then ifdown eth0 ; ifup eth0 fi old_ip="$new_ip" done 

Или, если вы более знакомы с OS X, чем я, вы могли бы, вероятно, подключить сетевую подсистему к ssh от хоста к гостю вместо этого и избежать опроса раз в минуту.

Однако это требует от вас возможности ssh между хостом и гостем без пароля. Вы можете использовать ключ без пароля, которому разрешено запускать скрипт ifconfig en1 .

Похоже, что это больше проблема с тем, что вы используете для виртуализации (VMWare или VirtualBox или что-то еще), когда он не сообщает виртуальной машине, что соединение было сброшено, а так как виртуальная машина все еще имеет аренду DHCP из первой сети , он не знает, что нужно получить новый. Вместо того, чтобы пытаться поиграть с виртуальной машиной, посмотрите, есть ли у вас что-то, что вы используете для виртуализации, кнопка с одним щелчком мыши или что-то там, где вы можете включить / отключить виртуальную сетевую карту на виртуальной машине, чтобы при ее сбросе она была вынуждена захватить новый IP.

Вот вам (возможно, слишком) простой скрипт для CentOS VM, который сделает то, что вы ищете. Я рекомендую разместить этот скрипт в / usr / local / sbin, так как это не системный скрипт, и он запускается root.

 #!/bin/bash # nettest.sh # Get the gateway address from the routing table gateway=$(netstat -rn | awk '/^0.0.0.0/ {print $2}') # Try and ping the gateway ping -c 1 ${gateway} # If the ping succeeds, exit. if [ $? == 0 ]; then exit # Otherwise take down and bring up the network interface else ifdown eth0 ifup eth0 exit fi 

Как только это будет сделано, поместите эту запись в корневой файл корневого каталога или в /etc/cron.d/nettest.cron , и все будет установлено:

 # Call nettest.sh every 5 minutes */5 * * * * /usr/local/sbin/nettest.sh 2>&1> /dev/null 
  • Попытка установить кластер, DHCP не запускается
  • Подмена или удаление имени хоста DHCP-клиента в ответ на сервер DHCP
  • Создание виртуального интерфейса для постоянного доступа к интерфейсу DHCP с тем же ip
  • Служба isc-dhcp-relay не работает
  • настроить порт для запроса dhcp в uboot
  • Сервер DHCP не отвечает на запросы от гостя KVM
  • как решить проблему сетевого DHCP при установке Debian?
  • Как настроить DHCP, чтобы загрузка была завершена даже без DHCP-сервера?
  • Проблемы с DHCP Virtualbox
  • Как настроить беспроводную точку доступа с двумя картами Wi-Fi и Ethernet как WAN на debian?
  • Сервер Debian не отображается в списке DHCP на маршрутизаторе
  • Linux и Unix - лучшая ОС в мире.