IP tunnel + IPSec + OSPF под Ubuntu и MikroTik
Здравствуйте.
Несколько раз уже поднимал тему грамотного соединения нескольких сетей с использованием разного маршрутизирующего оборудования и ПО. Вот снова я в раздумьях. Есть несколько филиалов (читай сетей /24), смотрящих в интернет через программный роутер под Ubuntu Server. Между филиалами построена full mesh VPN сеть при помощи демона tinc, работающего на каждом из программных роутеров. Под full mesh я понимаю то, что каждый роутер подключен к каждому другому роутеру. Но если посмотреть на всю ситуацию объективно сейчас мне не нужно, чтобы все роутеры были подключены друг к другу прямым каналом. Достаточно чтобы региональные центры имели связь между собой в таком формате, а розничные подразделения каждого региона были подключены к своему региональному центру, и через него подключались к остальным региональным центрам. Т.к. программно-аппаратных full mesh решений я не нашёл, а в ближайшее время нужно запустить ещё несколько подразделений я решил организовать подобную схему своими силами, прошу вас её прокомментировать: Обязательным условием является отсутствие выделенного сервера, к которому все подключаются. Хочется создать схему без клиента и сервера, чтобы не было стороны инициализирующей и принимающей подключения. Предположим есть четыре региональных центра: Ростов, Краснодар, Ставрополь, Волгоград. Между ними я поднимаю IP-IP тунели или GRE тунели. От каждого к каждому (Ростов-Краснодар, Ростов-Ставрополь, Ростов-Волгоград, Краснодар-Ставрополь, Краснодар-Волгоград, Ставрополь-Волгоград). Т.к. IP-IP или GRE тунели передают трафик в открытом режиме, на каждой из точек я разверну IPSec и буду шифровать трафик исходя из направления. Но т.к. я ленивый и писать статическую маршрутизацию для каждой сети мне лень, я разверну OSPF маршрутизацию, на всех тунельных и локальных интерфейсах маршрутизаторов. В таком случае если я захочу подключить розничное подразделение в Волгограде, я сделаю тунель только к волгоградскому офису с применением вышеописанной конфигурацией. Трафик из него будет попадать в любую сеть, через волгоградский филиал. Меня смущает несколько моментов. Где-то я читал, что если в подобной схеме отключится IPsec трафик пойдёт в открытом виде. О OSPF ничего не знаю и поэтому хочу услышать заработает ли всё это в моей схеме? Или может стоит обратиться к чему-то ещё? |
Всё оказалось не так сложно как могло показаться на первый взгляд.
Для тестов оставил Mikrotik дома. Отключил в нём фаервол для доступа из вне. Между офисным шлюзом и домом сначала поднял GRE тунель. Пример для ubuntu пример для MikroTik, к слову, если создавать его из GUI или веб интерфейса - нужно отдельно создать адрес и отдельно создать сам тунель. После поднятия тунеля железки видят друг друга через тунельные интерфейсы. Для запуска динамической маршрутизации в Ubuntu понадобилось поставить один пакет и немного его настроить. Вот пример под CentOS, но у меня он заработал без проблем, после я закоментировал строку про "соседа", которая явно на него указывает, выключил пароли (почему-то не заработали с МТ), изменил ID зоны т.к. MT понимает ID похожие на IP адрес я указал 0.0.0.1. В Микротике всё настраивается аналогично, просто в нескольких окнах: отдельно зона, отдельно сети и интерфейсы. Всё заработало достаточно быстро маршруты прописались пакеты побежали, правда в логах увидел нестыковку MTU тунельных интерфейсов и быстренько поправил. С шифрованием бился очень долго, ибо мне нужен не тунельный, а транспортный режим: IPSec только шифрует канал и не создаёт тунель. Пакет racoon под ubuntu в принципе не завёлся. Остановился на openswan. Путём проб и ошибок дошёл до вот такого конфига: Код:
config setup В итоге у меня сейчас есть две точки, связанные тунелем GRE, с поднятой динамической маршрутизацией по OSPF и шифрующийся трафик. Дальше попробую перевести все точки Ubuntu на подобную схему и быть может перейду на HW маршрутизаторы от MikroTik. Из вопросов которые накопились в процессе создания всего: Для GRE тунеля между двумя точками я взял подсеть 192.168.20.0/30. 192.168.20.1 со стороны Ubuntu, 192.168.20.2 со стороны MT. В спецификации и настройках OSPF сказано, что маршрутизатор ищет соседей путём рассылки широковещательных пакетов. Стоит ли мне при подключении ещё одного узла выделять ещё одну /30 сеть или можно расширить существующую с /30 до /29 и использовать адреса для других тунелей из /29 сети? Намного ли это упростит работу OSPF? Я очень мало сталкивался с шифрованием и защитой информации, к слову в pptp настраивается три типа авторизации и три типа шифрования. Сейчас авторизация проходит по PSK, как мне кажется это не самое лучшее решение. У IPSec возможностей намного больше и если не сложно поясните на пальцах что лучше использовать в соотношении цена/качество (безопасность/нагрузка на оборудование)? Может есть в сети адекватные обзоры по данной тематике? Про мои опасения по поводу падения IPSec. В схеме три элемента: GRE тунель, демон OSPF маршрутизации, IPSec шифрование. Если падает тунель, OSPF удаляет маршрут - трафик никуда не пойдёт. Если упадёт OSPF, маршрутов опять таки не будет и трафик не пойдёт. Если отключится IPSec - одна из сторон будет отправлять шифрованный трафик, а вторая не шифрованый. Связи не будет, но перехватив пакеты с не шифрованной стороны наверное можно что-то из-них получить. |
Цитата:
у вас должны быть правила для отправки трафика через туннель: если одно правило не выполняется - трафик не передаётся. к сожалению, не могу помочь с вашей инфраструктурой, но могу предложить следующий вариант, но с перестрой схемы сети и добавления оборудования: сделать VPN S2S через OpenVPN или IPSec только для нужных направлений. для каждого туннеля выбрать свою сеть. для всех сетей руками записать маршруты (не ленитесь). |
Цитата:
Цитата:
Пока работают три маршрутизатора, планируется ещё. |
Цитата:
|
Цитата:
Цитата:
|
Время: 23:59. |
Время: 23:59.
© OSzone.net 2001-