Packet Filter



Как сделать rdr правило, позволяющее подключаться к серверам, находящимся в той же сети, что и клиенты?

Правила rdr не позволяют переадресовать соединения обратно в сеть, из которой производится подключение (так как при этом ответные пакеты пойдут напрямую клиенту и не будут сопоставлены с правилом rdr). Однако существует возможность совместить rdr с трансляцией адресов для получения нужного результата. Ниже приведен пример таких правил:
# Определение интерфейсов
#
ext_if="sk0"
int_if="sk1"

# Определение внутреннего сервера и портов
#
server="10.10.10.100"
ports="www https"

# Переадресовать внешние соединения на сервер
#
rdr pass on $ext_if inet proto tcp to ($ext_if) port { $ports } -> $server

# Переадресовать внутренние соединения на сервер с трансляцией адреса
#
rdr pass on $int_if inet proto tcp to ($ext_if) port { $ports } tag LANRDR \
	-> $server
nat on $int_if tagged LANRDR -> ($int_if:0)

OpenBSD.ru www@openbsd.ru
$RuOBSD: pf.html,v 1.7 2010/11/01 10:57:48 dinar Exp $