Уже два дня голову ломаю... не получается:
Есть две локалки: 192.168.0 и 192.168.1 Они соединены туннелем на OpenVPN в режиме tun. С обоих локалок через туннель пингуются все хосты, т.е. сам туннель работает как задумано. Для определённости, мы находимся на FreeBSD сервере/роутере с доступом в интернет, туннелем и локалкой 192.168.0.Теперь, надо сделать странное. В удалённой локалке есть машина 192.168.1.20 с веб-сервером. На этот веб-сервер надо проброить порт доступный из интернета, но не на роутере в той удалённой локалке, а на нашем местном FreeBSD сервере. (Смысл в том, что удалённая локалка реально удалённая и подключается к нашему туннелю 3G модемом с приватным ip).
Настройки FreeBSD сервера. Интерфейсы:
msk0 - смотрит в интернет с белым адресом x.x.x.x
msk1 - смотрит в локалку 192.168.0
tun1 - туннель OpenVPN с адресами 192.168.20.1 --> 192.168.20.2 на роутер в сети 192.168.1
Таблица маршрутов:
Destination Gateway Flags Refs Use Netif Expire
default xxxxxx UGS 0 78938117 msk0
x.x.x.0/23 link#1 U 0 190 msk0
xxxxxx link#1 UHS 0 30 lo0
localhost link#9 UH 0 36426915 lo0
192.168.0.0 link#2 U 0 103345641 msk1
192.168.1.0 192.168.20.2 UGS 0 32121 tun1
192.168.20.0 192.168.20.2 UGS 0 67 tun1
192.168.20.1 link#12 UHS 0 4 lo0
192.168.20.2 link#12 UH 0 0 tun1
Находясь на FreeBSD сервере делаю пинг 192.168.1.20 - ОК.
С машины 192.168.0.2 захожу броузером на http://192.168.1.20/ - ОК.
Пишу в конфиг ipfw проброс порта:
ipfw nat 1 config if msk0 log same_ports reset redirect_port tcp 192.168.1.20:80 8000
Пытаюсь зайти на http://xxxxxx:8000/ - фиг вам.
Для очистки совести вешаю на комп в местной локалке веб-сервер и делаю:
ipfw nat 1 config if msk0 log same_ports reset redirect_port tcp 192.168.0.2:80 8000
Захожу по тому же адресу без проблем.
Вопрос: что я забыл? Почему не работает проброс порта через туннель?
ЗЫ: файервол весь открыл, ничего блокироваться не должно, таже фигня:
20000 allow ip from any to any via msk1
20020 allow ip from any to any via tun1
30000 nat 1 ip from any to any via msk0
65000 allow ip from any to any