Дано – Есть офис “левый”, офис “правый” и офис под кодовым именем “центр”. От центрального офиса на периферию прокинуты IPSec-туннели. Они работают, с ними все хорошо, где-то даже failover какой-нибудь может быть. А вот туннелей между боковыми офисами нету и не предвидится.
Требуется – Обеспечить прохождение траффика между офисами через уже имеющиеся туннели. То есть так, чтобы пакеты шли, например, из “левого” офиса в “центр” и затем дружной стайкой летели в “правый”.
Решение – Ну, формально, у D-Link’а есть мануал на эту тему. Однако там все описано по принципу “делай раз, делай два” и нифига не объясняется. А от обилия цифр, букв и непривычных слов, вообще становится немножко грустно.
Сразу замечания:
- Я попробую объяснить что нужно сделать в принципе. Без указания конкретных шагов. За step-by-step инструкцией – по ссылке выше.
- До того, как читать вышеуказанный мануал, я попробовал решить задачу “в лоб” простым добавлением маршрутов. Для тех, что захочет попробовать сделать так же, сообщаю, что оно нифига не работает и пакеты не доходят даже до промежуточного роутера. При том, что связь до “центра” есть полноценная и роутер и его сетка доступны в полной мере, но потребуется еще конфигурирование самих туннелей.
- Описанная схема является, фактически, разорванным кольцом. Ну, то есть туннель между “левым” и “правым” офисом тоже есть, но какой-то из этих трех туннелей отвалился. Причины разрыва нас сейчас не волнуют, а вот возможность попасть в “дальнюю” сеть через работающие связи как раз очень интересует.
Итак, что же надо, наконец, уже сделать, чтобы все уже таки заработало? Будем предполагать, что в “линейном варианте” все настроено, соседи друг друга видят.
Сперва, как обычно, занимаемся планированием. Берем карандаш, лист бумаги и рисуем наши связности. Нужно это для понимания какие роутеры куда должны иметь возможность попасть и через где. Затем для каждого туннеля пишем в куда мы должны будем попадать через каждый из его выходов. Далее, заводим разного рода объекты. В частности, нужно создать адреса дальних сетей, в которые мы будем ходить через промежуточный роутер. Если у нас роутеры соединены по принципу “каждый с каждым”, то эти объекты уже созданы и вполне себе используются имеющимися туннелями. Иначе придется пройти по всем железякам и проверить, что нужные объекты существуют.
А вот здесь начинается магия. Фактически, нам требуется сделать две вещи – сказать маршрутами, как можно попасть в “дальнюю” сеть (тут все просто и очевидно) и сказать то же самое в настройках самих туннелей. Для этого сперва объединяем в IPv4-группы все адреса согласно купленным билетам тем группам адресов, которые будут доступны через туннели. Именно группы нужны потому, что в настройках туннеля невозможно указать список адресов – нужен один объект, группа подходит в полный рост. Для линейной схемы из мануала сети будут следующие:
- На роутере B. Локальная сеть для туннеля – локальная и есть, удаленная – сети роутеров A и C.
- На роутере C аналогично
- А вот на роутере А чуть хитрее:
- в сторону B локальные сети – A и C, удаленные – сеть B
- в сторону C локальные сети – A и B, удаленные – C
Другими словами,”Local Net” – это сети, для которых роутер готов принимать пакеты через этот туннель. Даже если они совсем не локальные, а вовсе даже удаленные – неважно. Принимать пакеты для них должен – значит локальные. С “Remote Net” история ровно та же – неважно, есть ли указанная сеть на удаленном роутере, важно должен ли он знать, что с этими адресами делать дальше.
PS: Полез искать эту статью у себя и выяснил, что оно не опубликовано и вообще болтается в черновиках. Вот исправляю эту досадную оплошность..