
Шлюз, раздающий интернет для локальной сети через двух провайдеров. Всё настроено на базе FreeBSD+pf.
Теперь понадобилось сделать VPN-шлюз, для доступа в локальную сеть извне. VPN-шлюз решено было расположить на отдельной машине в DMZ. На VPN-шлюзе настроен mpd5 (pptp).
Проблема в следующем. VPN доступ работает только через первого (основного) провайдера. Путём анализа сетевого трафика выяснилось, что протокол gre маршрутизируется назад к vpn-клиенту только через основной шлюз. Направить его на второго провайдера что-то не получается.
Вот часть pf.conf:
Код: Выделить всё
...
rdr on $ext_if_1 proto tcp from any to $ext_if_1 port pptp tag EXT_PPTP_1 -> $vpnsrv port pptp
rdr on $ext_if_2 proto tcp from any to $ext_if_2 port pptp tag EXT_PPTP_2 -> $vpnsrv port pptp
rdr on $ext_if_1 proto gre from any to $ext_if_1 tag EXT_GRE_1 -> $vpnsrv
rdr on $ext_if_2 proto gre from any to $ext_if_2 tag EXT_GRE_2 -> $vpnsrv
...
pass in quick from ($ext_if_1:network) tagged EXT_PPTP_1 keep state
pass in quick reply-to ($ext_if_1 $gw_1) tagged EXT_PPTP_1 keep state
pass in quick from ($ext_if_1:network) tagged EXT_GRE_1 keep state
pass in quick reply-to ($ext_if_1 $gw_1) tagged EXT_GRE_1 keep state
pass in quick from ($ext_if_2:network) tagged EXT_PPTP_2 keep state
pass in quick reply-to ($ext_if_2 $gw_2) tagged EXT_PPTP_2 keep state
pass in quick from ($ext_if_2:network) tagged EXT_GRE_2 keep state
pass in quick reply-to ($ext_if_2 $gw_2) tagged EXT_GRE_2 keep state
...
pass on $dmz_if proto gre from any to any
Подскажите, в чём ошибка.