Уже два дня голову ломаю... не получается:
Есть две локалки: 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
>[оверквотинг удален]
>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
>Вы говорите, что туннель работает, т.е. вы пингуете с одной сети другую? Но редирект, это значит, что на удаленном нттр-сервере клиентом будет не приватный адрес (в отличии от пинга), а публичный, соответственно ответ пойдет от того удаленного роутера через шлюз по умолчанию, а не через ваш туннель.
У меня подозрение, что к вам не возвращаются ответы. Проверьте тспдампом.
> Но редирект, это значит, что на удаленном нттр-сервере клиентом будет не
> приватный адрес (в отличии от пинга), а публичный, соответственно ответ пойдет
> от того удаленного роутера через шлюз по умолчанию, а не через
> ваш туннель.
> У меня подозрение, что к вам не возвращаются ответы. Проверьте тспдампом.Спасибо за подсказку! Так и есть. А я не догадался. Сделал на удалённом роутере так:
ipfw add 20000 fwd 192.168.20.4 ip from 192.168.1.20 to any
т.е. все ответы от веб-сервера принудительно заворачивать на вход в туннель. Работает вроде...Осталось теперь разобраться с самим 3G линком. Вчера поточное видео можно было тянуть сносно, а сегодня даже консолью нельзя нормально пользоваться и пинги до 10 секунд периодически :( Интересно, это лечится?
>[оверквотинг удален]
>> ваш туннель.
>> У меня подозрение, что к вам не возвращаются ответы. Проверьте тспдампом.
> Спасибо за подсказку! Так и есть. А я не догадался. Сделал на
> удалённом роутере так:
>ipfw add 20000 fwd 192.168.20.4 ip from 192.168.1.20 to any
> т.е. все ответы от веб-сервера принудительно заворачивать на вход в туннель. Работает
> вроде...
> Осталось теперь разобраться с самим 3G линком. Вчера поточное видео можно было
> тянуть сносно, а сегодня даже консолью нельзя нормально пользоваться и пинги
> до 10 секунд периодически :( Интересно, это лечится?3G - полная фигня, ИМХО. Там такие задержки, что аналогично расстоянию от вас до Луны, если линка - витая пара :-))
Вообще я бы порекомендовал, доработать ваш ipfw: включить фильтрацию, приоритизацию т.д. Очень помогает в "узких" местах.
> 3G - полная фигня, ИМХО. Там такие задержки, что аналогично расстоянию от
> вас до Луны, если линка - витая пара :-))А что делать. Никаких иных бюджетных способов для дальней связи нет. Но я несколько расстороен реальным положением вещей, надо сказать. Мобильный интернет меня до сих пор интересовал только в объёме яндекс-пробок, и мне вполне хватало. Вот решил повертеть поближе 3G. Линк колбасит по скорости и задержкам просто на глазах, от плавного просмотра видео с мегапиксельной IP-камеры до "убей себя об клавиатуру" в консоли :( Закажу внешнюю направленную антенну, может легче станет. Ну и в той пластилиновой местности, куда я всё закинуть собираюсь, может поменьше радиоканал забит будет, чем в городе.
> Вообще я бы порекомендовал, доработать ваш ipfw: включить фильтрацию, приоритизацию т.д.
> Очень помогает в "узких" местах.Ну там особо нечего разруливать. Это любительский проект некой автономной фигни, будет передаваться телеметрия и команды управления в основном, ну и живую картинку с камеры хотелось забирать, по возможности. Другого конкурирующего трафика не предполагается.
>[оверквотинг удален]
>> вас до Луны, если линка - витая пара :-))
> А что делать. Никаких иных бюджетных способов для дальней связи нет. Но
> я несколько расстороен реальным положением вещей, надо сказать. Мобильный интернет меня
> до сих пор интересовал только в объёме яндекс-пробок, и мне вполне
> хватало. Вот решил повертеть поближе 3G. Линк колбасит по скорости и
> задержкам просто на глазах, от плавного просмотра видео с мегапиксельной IP-камеры
> до "убей себя об клавиатуру" в консоли :( Закажу внешнюю направленную
> антенну, может легче станет. Ну и в той пластилиновой местности, куда
> я всё закинуть собираюсь, может поменьше радиоканал забит будет, чем в
> городе.В нашем Зажопье такая же проблема, как вариант - CDMA, до мегабита с вменяемыми задержками.
>> Вообще я бы порекомендовал, доработать ваш ipfw: включить фильтрацию, приоритизацию т.д.
>> Очень помогает в "узких" местах.
> Ну там особо нечего разруливать. Это любительский проект некой автономной фигни, будет
> передаваться телеметрия и команды управления в основном, ну и живую картинку
> с камеры хотелось забирать, по возможности. Другого конкурирующего трафика не предполагается.Я о "окрытом" вайерволе. Безопасности мало не бывает :-)
читайте "FreeBSD и два провайдера"