Можно ли настроить OpenBSD так, чтобы у него был IP1 внутри (на хостах, в hostname.en0, сокеты привязывались к IP1), но преобразовывали его в IP2, когда пакет поступает в Ethernet. Кроме того, пакеты для IP2 должны быть получены и доставлены службам, привязанным к IP1.
Я думаю, это возможно в Linux, с iptables
брандмауэр (что-то вроде DNAT / SNAT), но теперь я хочу сделать это на OpenBSD.
Любым способом могу настроить маршрутизацию реальной LAN.
Это очень легко сделать с помощью pf(4)
и это nat
, binat
и rdr
правила.
Похоже, вы специально хотите изучить binat
правила; способ написания всех этих правил изменился пару выпусков назад (с nat ... -> ...
, чтобы pass ... nat-to ...
), но с OpenBSD 5.2 он должен быть следующим (пример взят непосредственно из http://www.openbsd.org/faq/pf/nat.html#binat):
web_serv_int = "192.168.1.100"
web_serv_ext = "24.5.0.6"
pass on tl0 from $web_serv_int to any binat-to $web_serv_ext`
Дополнительную информацию о NAT и перенаправлении трафика в OpenBSD смотрите здесь:
http://www.openbsd.org/faq/pf/nat.html
http://www.openbsd.org/faq/pf/rdr.html
Это должно быть более или менее выполнимо с псевдонимом на интерфейсе и небольшой магией PF / NAT. Вы вообще смотрели Руководство по PF?
Вы можете изменить ядро, заменив IP1 на IP2 для исходящего трафика и наоборот.
Какой протокол вы имеете в виду?