Возможно ли как-то использовать Xinetd (или любое другое решение )для прослушивания входящих пакетов для IP-адреса, который не назначен интерфейс и запустить демон (, как это делает Xinetd)?
Таким образом, моя Linux-машина является GW по умолчанию, все пакеты отправляются на нее. Я хотел бы распознавать определенные пакеты с IP-адресом назначения, который не привязан к интерфейсу, и реагировать на него (запускать демон)
Спасибо!
Да, включите настройку net.ipv4.ip_nonlocal_bind
:
echo "net.ipv4.ip_nonlocal_bind = 1" > /etc/sysctl.d/enable-nolocal-bind.conf"
sysctl net.ipv4.ip_nonlocal_bind=1
(последняя — «включить сейчас», первая строка — сделать это постоянным). Теперь вы можете привязывать демонов к любому IP-адресу.
Однако это может работать не так, как вы ожидали. В той же локальной сети компьютеры не используют GW по умолчанию для связи. Они отправляют пакеты напрямую, например. выполнение ARP-запросов, чтобы узнать MAC-адрес системы, куда отправить пакет. Если ответа нет, он не вернется к отправке пакета на шлюз по умолчанию. Вместо этого произойдет сбой с ошибкой.
В Linux маршруты типа local являются петлевыми и будут доставлены на локальный хост. Также известен как AnyIP .
Направьте префикс любого размера. Если вы используете IPv6, возможно, зарезервируйте для этой цели весь /64, скажем, 2001:db8:bdd2:c0e::/64
. Направьте это на этот хост (ящик Linux), а в ящике Linux отправьте на локальный.
Настройте xinetd для прослушивания нужного порта.
Конечный результат: любой IP-адрес в этой сети, скажем 2001:db8:bdd2:c0e::138
, завершится на этом поле и запустит серверную программу.