Muff's website forum
FreeBSd => Маршрутизация => Тема начата: Goffanon от Февраля 13, 2013, 03:10:38 pm
-
Добрый вечер.
Настроил туннель посредством OpenVPN (статья http://muff.kiev.ua/content/openvpn-postroenie-tunelya)
Возникла проблема маршрутизации.
данные BSD1
Внешний IP vr0 параметры значения не имеют
Внутренняя виртуальная точка туннеля 192.168.2.10
Внутренний интерфейс fx0 192.168.0.250
данные BSD2
Внешний IP vr0 параметры значения не имеют
Внутренняя виртуальная точка туннеля 192.168.2.20
Внутренний интерфейс fx0 192.168.1.250
Точки туннеля пингуются обе с обоих машин.
Фаерволл стоит открытый, НАТ на внешних интерфейсах висит.
Прописываю маршруты так:
На BSD1
route add -net 192.168.1.0/24 192.168.2.20
На BSD2
route add -net 192.168.0.0/24 192.168.2.10
с BSD1 пингую внутренний адрес BSD2 192.168.1.250
с BSD2 пингую внутренний адрес BSD1 192.168.0.250
А вот компьютеры в сетях 192.168.0.0 и 192.168.1.0 не пингуются :(
ЗЫ может я полный дуб, но не пойму в чем проблема.
-
Так понимаю, для сети 192.168.1.0/24 шлюзом на всех машинах указан 192.168.1.250, а для 192.168.0.0/24 192.168.0.250 соответственно? Тогда по сути все верно, должно работать.
"Послушайте" tcpdump-ом трафик, как он ходит.
-
Да вот настройки в сетях:
Для сети 192.168.0.0/24 маршрутизатор 192.168.0.250 (шлюз, Днс кеширующий, все тут висит)
Для сети 192.168.1.0/24 маршрутизатор 192.168.1.250 (шлюз, Днс кеширующий)
Адреса внутренних интерфейсов с серверов в обе стороны пингуются, т.е. с BSD1 пингую внутренний адрес BSD2 и наоборот...
""Послушайте" tcpdump-ом трафик, как он ходит." завтра проверю, разницы нет на каком сервере слушать?
-
Разница, где "слушать" - есть. Нужно найти, где "затык".
Поэтому запускаем с клиента, например с 192.168.0.33 (с ключем -t, если это виндовая машина), пинг на 192.168.1.33 и слушаем по ходу прохождения пакета:
1. BSD1 - Внутренний интерфейс
2. BSD1 - Туннель
3. BSD2 - Туннель
4. BSD2 - Внутренний интерфейс
Чтобы отфильтровать трафик, tcpdump желательно запускать с ключем "proto ICMP".
-
:) Все разобрался.
Я дуб :)
Если конкретнее, то стояли семерки в сетях, и в настройках было запрещено сетевое обозрение. Так что проблема была в конечных точках.
Сегодня для чистоты эксперимента подключил две ВинХП. Полет нормальный. Все отлично.
Однако всплыла другая проблема, статический маршрут.
Если прописываю руками маршруты все отлично, а если добавляю в rc.conf то маршрут не появляется.
В rc.conf прописал такие строки:
BSD1
static_routes="lan2"
route_lan2="-net 192.168.1.0/24 192.168.2.20"
BSD2
static_routes="lan1"
route_lan1="-net 192.168.0.0/24 192.168.2.10"
Почему автоматически маршруты не прописываются пока не могу понять, ковыряюсь дальше.
-
Настройте зебру из пакета quagga и не выносите себе мозг.
http://muff.kiev.ua/content/quagga-prevrashchenie-servera-v-polnofunktsionalnyi-marshrutizator#zebra (http://muff.kiev.ua/content/quagga-prevrashchenie-servera-v-polnofunktsionalnyi-marshrutizator#zebra)
-
Настройте зебру из пакета quagga и не выносите себе мозг.
http://muff.kiev.ua/content/quagga-prevrashchenie-servera-v-polnofunktsionalnyi-marshrutizator#zebra (http://muff.kiev.ua/content/quagga-prevrashchenie-servera-v-polnofunktsionalnyi-marshrutizator#zebra)
Читал. Но мне пока надо соединить просто 2 сетки... хотелось бы обойтись просто записью пары маршрутов на обоих серверах. Расширение в ближайшие несколько лет не планируется поэтому и такой мощный инструмент для маршрутизации как quagga и не требуется.
У меня есть подозрение что маршрут не прописывается автоматом из за того что тунель не успевает подняться. Можно ли как либо прописать маршруты через конфиг OpenVPN что бы они прописывались именно после создания туннеля? Или еще каким либо образом "задержать" запись маршрута?
-
Да, можно попробовать.
В rc.conf добавьте такую запись (для BSD1):
cloned_interfaces="tun0"
ifconfig_tun0="inet 192.168.2.10 netmask 255.255.255.255"
После ребута проверьте, добавились ли маршруты и корректно ли работает туннель. Если все гуд - тогда вносите изменения и на BSD2.
-
Сегодня в ночь проверю, поэкспериментирую.
-
Тоннель есть, а маршрут через rc.conf не поднимается :( может скриптом его в крон засунуть? Если еще какие нить варианты есть? И как вообще посмотреть причину того что не создается маршрут? В каком логе будет об этом запись?
-
А может все таки зебра?
-
Хех... ну чтож попробуем зебру, заодно и разберемся что же это за африканский зверь такой :)
В ночь попробую, утром расскажу о результатах.
-
Насетапить можно и днем. На работу не влияет.
А с маршрутами уже после окончания рабочего дня поработать...
-
:) фришки в другой фирме админю, а на основном месте работы ща завал и времени нет. Так что домой приду вечером спокойно с кружечкой чая сяду поставлю все и попробую.
-
Немного некропостинга.
Получилось добавить маршрут без дополнительного ПО.
Возможно было бы интересно упомянуть это в статье.
В самом openvpn.conf можно прописать строку типа
route <сеть> <маска> <шлюз>
ЗЫ вот что значит "курить" маны невнимательно изначально.
-
Это да. Но я решал вопрос, почему не бегает трафик :)