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

Существует столько опций, разнообразие является испугом ума. Некоторые более популярные платформы GUI включают.

4
14.09.2012, 00:43
5 ответов

Это - предложенное обходное решение, которое могло бы работать на Вас.

Попытайтесь играть время владения, обеспеченное сервером DHCP на стороне клиента с помощью dhcp-оценки (пример тут же). Установите значение ниже, чем время, изменившись между сетями.

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

0
27.01.2020, 21:02
  • 1
    я не вижу как dhcp-eval помог бы, но это действительно приводило меня думать, возможно, что я могу использовать supersede option dhcp-lease-time 1200 –  Old Pro 15.09.2012, 06:16
  • 2
    Нет, который не работал также. Я установил send dhcp-lease-time 1200; supersede option dhcp-lease-time 1200; но даже день спустя после того, как арендный договор истек, клиент DHCP автоматически не получал новый IP-адрес. Возможно из-за пути VMware обновляет системные часы при возобновлении приостановленного VM. –  Old Pro 16.09.2012, 22:48

При установке второго сетевого соединения "только для хоста" с хостом можно следить за его основным сетевым соединением (соединениями) для наблюдения, когда 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.

0
27.01.2020, 21:02

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

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

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

1
27.01.2020, 21:02

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

0
27.01.2020, 21:02

Вот (возможно, слишком) простой скрипт для вас 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

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

# Call nettest.sh every 5 minutes
*/5 * * * * /usr/local/sbin/nettest.sh 2>&1> /dev/null
0
27.01.2020, 21:02

Теги

Похожие вопросы