arp и роутинг во FreeBSD

Dasha30

Проблема: надо на FreeBSD 5.3 сделать так, чтобы комп отвечал на ARP запросы про какой-то левый адрес, не входящий ни в одну из его подсетей. Или иным способом сделать так, чтобы он принимал пакеты для этого левого адреса и передавал их дальше.
Для тех, кто очет знать, почему такие условия задачи, расскажу сказку:
В маленьком подразделении большой бюрократической организации есть локальная сеть. Ей сверху админами выделена подсеть, скажем, 10.0.0.16/28 и DNS зона xxx.abc.ru.
Есть в этой сети сервер (redhat который держит почту, шелл и веб-сервер. Когда-то он был роутером и имел адрес на внутреннем интерфейсе 10.0.0.17, адрес на внешнем интерфейсе 10.0.55.2 и gateway 10.0.55.1. А еще адрес 10.0.55.2 был записан где-то сверху в DNS как host.abc.ru, причем именно это имя известно всем и все им пользуются до сих пор.
Потом роутером поставили отдельную машину (тоже redhat). И сделали ему адрес на внешнем интерфейсе 10.0.66.2 и gateway 10.0.66.1 (это тот же физический интерфейс, что и 10.0.55.1). А вот весь роутинг снаружи в нашу сеть почему-то оставили через 10.0.55.2.
При это надо было соранить доступность host.abc.ru. Поэтому сервер стал все пакеты не для своей сети отправлять с адреса 10.0.55.2, а новый роутер стал отвечать ARP запросы про 10.0.55.2 и приходящие для этого адреса пакеты переправлять на 10.0.0.17.
Потом было решено роутер снова заменить. На новый роутер поставили FreeBSD. Только повторить один в один настройки не вышло - arp на отрез отказался добавлять запись, не входящую ни в одну из подсетей его интерфейсов. Поставить на внеший интерфейс адрес 10.0.55.2 нельзя, потому что тогда он начинает сам хавать пакеты, не переправляя их дальше. Другой адрес из той сети поставить, наверное, можно было бы, но вдруг обидится кто... Про ту сеть почти ничего не известно.
И вот вопрос - как сделать так, чтобы 10.0.55.2 работал, при том, что изменить настройки кого-то снаружи почти невозможно?

Marinavo_0507

в портах есть proxyarpd или типа того

janlynn

proxy ARP

Dasha30

В портах нашелся choparp, который, возможно, спасет положение.
Интерсно, а почему в BSD нельзя этого сделать с помощью arp?

tokuchu

Я может быть текст не осилил, но зачем нужно делать что-то с помощью arp? Какой-нибудь хитрый роутинг или NAT не поможет?

sergey_m

Действительно arp(8) не позволяет добавить статическую запись, если нет интерфейса в этой сети. Хотя ничего запретного в этом нет и мне кажется, ядро это позволяет. Я мог бы добавить эту функциональность в arp(8 если ты возьмешься тестировать. Пиши мне мыло.
Оставить комментарий
Имя или ник:
Комментарий: