Пришло время соединять уже офисы. Для начала поднимем GRE-туннели. Это правильно с точки зрения отлавливания проблем, потому что если начать с IPSec, и GRE не взлетит, придется разбираться кто из них виноват. Потом обернем их в IPSec в транспортном режиме и запустим внутри OSPF.
GRE на микротике настраивается до безобразия просто. В интерфейсах переходим в раздел GRE Tunnel и жмем плюсик. Из настроек нас будут интересовать локальный внешний адрес и внешний же адрес удаленной железки. IPSec Secret не указываем, поскольку дважды шифровать данные смысла не имеет. Кроме того, снимаем галочку Allow Fast Path. Keepalive имеет два поля – первое задает период опроса, а во втором указывается количество пакетов до статуса “умер”. Настройки на обеих сторонах должны быть одинаковые. Ждем статуса “Running” и идем дальше.
IPSec настраивается чуть более муторно. Конкретные поддерживаемые параметры аппаратного шифрования для вашей железки подскажет Вики Микротика. Заработает, в принципе, с любыми параметрами, но без железной поддержки работать будет медленно и неэффективно. Например, популярный красный микротик именуется RB2011UiAS-2HnD-IN и аппаратного шифрования вообще не имеет.
Переходим в раздел IP -> IPSec. Открываем вкладку Profiles и настраиваем как раз параметры первой фазы. Будем использовать что-нибудь в стиле 3DES + MODP1024 ибо довольно стойкое и ресурсов жрёт не дофига. Но это уже на ваш вкус, найти баланс между стойкостью и скоростью придется самим. Если все будут работать с одинаковыми параметрами, можно обойтись одной записью, но Best Practice рекомендует использовать по профилю на туннель. Или хотя бы на каждую пару роутеров. DPD – это Dead Peer Detection или средство проверки насколько жив туннель. NAT Traversal поможет, если по дороге встретится NAT.
Вторая фаза настраивается на вкладке Proporsals, я выставлю MD5 + 3DES. Параноики могут указать свой Lifetime и PFS Group, чтобы каждый раз перегенерировать ключи приветствия. Здесь так же рекомендуется придерживаться правила “запись на туннель”. И да, не забываем давать понятные имена!
Теперь зайдем на вкладку Peers и добавим партнера. Укажем адрес партнера и профиль для первой фазы, который создавали ранее. Если партнер находится за NAT’ом (внешний адрес неизвестен) или мы хотим принимать подключения от всех, кто пройдет проверку – указываем в качестве внешнего адреса “0.0.0.0/0”, то есть “кто угодно”. Локальный адрес рекомендуется указывать для одного внешнего адреса и строго обязательно при использовании нескольких провайдеров. Галочка Passive сделает из роутера “сервер”, то есть сам он запросы никуда посылать не станет.
Далее заходим в раздел Identities, где указываем свежесозданный Peer и способ подтверждения того, что наш партнер это наш партнер. Стандартно, используется Pre-Shared Key, но можно заморочиться сертификатами, к примеру.
Осталось настроить политику для IPSec, в этом нам поможет вкладка Policies. На основной вкладке указываем настроенный Peer, локальный внешний адрес и внешний адрес партнера, а также протокол 47 (GRE). Галочка Tunnel должна быть снята! На вкладке Action выбираем Encrypt, Require, ESP и созданный ранее Proporsal для второй фазы.
Ждем согласования обеих фаз, установления соединения и поднятия GRE внутри. Теперь можно уже назначать адреса на обеих сторонах GRE-туннелей. Кстати, я рекомендую использовать подсеть /30, чтобы зря не разбазаривать адреса буквально в никуда.