У меня есть "безголовый" * хост NIX - назовем его "foo", который должен быть доступен через SSH и VNC-tunneled-over-SSH в произвольной частной локальной сети 192.168.xy /24. Иногда я хочу физически переместить 'foo' из одной локальной сети в другую, так что 'x' зависит от локальной сети, и я хочу, чтобы 'y' был постоянным, с упорядоченным списком альтернатив для обработки конфликта распределения.
Поэтому, хотя мне нужен статический адрес (для цели с SSH), мне также нужно, чтобы он был динамическим (чтобы соответствовать подсети локальной сети, к которой он был подключен).
Да, некоторые маршрутизаторы допускают "особый соус", такой как резервирование DHCP или дополнительную конфигурацию маршрутизации, но допустим, что у меня нет доступа к маршрутизатору, но я могу ожидать, что он предоставит DHCP.
Итак, если бы я делал это вручную, я бы настроил 'foo' на использование DHCP при загрузке, и как только я получу оболочку, я могу посмотреть на адрес шлюза, чтобы выяснить мою подсеть, 192.168.x.0, где «х» - это то, что меняется от одной локальной сети к другой; затем я отредактировал бы /etc /network /interfaces (или эквивалентный), чтобы переключиться с DHCP на статический, синтезируя адрес из 'x' и константу 'y' (сначала пингуя 192.168.xy, чтобы проверить, занят ли он, и если так выбрав следующий «y» из списка предопределенных вариантов, поэтому в менее оптимальных ситуациях мне может понадобиться попробовать несколько адресов при запуске SSH), а затем перезапустить сетевой сервис.
Более хитрым вариантом будет локальная сеть без DHCP; в этом случае подсеть, вероятно, можно было бы определить путем выборки трафика локальной сети.
Если такая настройка может быть автоматизирована, то 'foo' может быть просто подключен к произвольной локальной сети и загружен, и будет хороший шанс найти его IP-адрес с первой попытки.
Есть ли какие-нибудь умные способы сделать то, что я после?
Помните, что вся конфигурация должна выполняться на хосте 'foo', и единственное предположение, которое можно сделать относительно целевой ЛВС, к которой он подключен, заключается в том, что он использует частную подсеть 192.168.xy /24.