Назад | Перейти на главную страницу

Заставить Linux отвечать на определенные запросы ARP

Я пытаюсь выполнить определенный трюк с маршрутизацией, когда я хочу, чтобы мой сервер Linux отвечал на запросы arp для 10.0.0.1 на eth0, хотя

Эффект должен быть таким, что другие устройства на eth0 направит пакеты в 10.0.0.1 на мой сервер, где я могу обрабатывать их в PREROUTING и другие таблицы.

Могу ли я сделать это, желательно без дополнительного демона?


В соответствии с просьбой, вот моя мотивация (но обратите внимание, что этот вопрос не насчет предложений, как добиться этого разными способами - мне действительно интересно знать, возможно ли это выше, а не разумно ли это :-)).

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

Это объясняет два ограничения в вопросе: guest машина не всегда может быть включена, поэтому упомянутый маршрут не всегда будет присутствовать - это исключает прокси-ARP. Кроме того, я не могу утверждать 10.0.0.1 к eth0, поскольку очень сложно заставить Linux перенаправить пакет, предназначенный для адреса, который ядро ​​считает локальным. В local таблица маршрутизации имеет приоритет 0 согласно ip rule, например.

А как насчет использования псевдонимов IP, таких как eth0: 1? Это заставит интерфейс отвечать на ARP и позволит вам управлять его поведением с помощью iptables.

Кроме того, неясно, почему proxy-arp здесь не поможет, поскольку вы можете прервать ожидаемое поведение с помощью правил iptables.

Можете ли вы подробнее объяснить, чего вы пытаетесь достичь?