Xinetd прослушивает IP-адрес, не назначенный интерфейсу

Xinetd прослушивает IP-адрес, не назначенный интерфейсу

Возможно ли каким-то образом использовать Xinetd (или любое другое решение) для прослушивания входящих пакетов для IP-адреса, который не назначен интерфейсу, и запустить демон (как это делает Xinetd)?

Итак, моя Linux-машина — это GW по умолчанию, все пакеты отправляются на нее. Я хотел бы распознавать определенные пакеты с IP-адресом назначения, который не привязан к интерфейсу, и реагировать на него (запускать демон)

Спасибо!

решение1

Да, включить 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-адрес системы, куда отправить пакет. Если ответа нет, он не вернется к отправке пакета на gw по умолчанию. Вместо этого он выдаст ошибку.

решение2

В Linux маршруты типа local являются петлевыми и будут доставлены на localhost. Также известны какЛюбойIP.

Маршрутизируйте префикс настолько большим, насколько это необходимо. Если вы используете IPv6, возможно, зарезервируйте целый /64 для этой цели, скажем 2001:db8:bdd2:c0e::/64. Маршрутизируйте его на этот хост (Linux box), а в Linux box отправьте его на local.

Настройте xinetd для прослушивания нужного порта.

В результате любой IP-адрес в этой сети, скажем 2001:db8:bdd2:c0e::138, будет завершаться на этом сервере и запускать серверную программу.

Связанный контент