Если честно - не буду Я лучше поставлю на концах абсолютно понятные HP Procurve 7100dl. Мне совершенно не светит использовать в работе нечто, не являющееся стандартом шифрования данных (это я про EoIP). Я лучше Микротики оставлю рулить каналами, а туннели буду поднимать на HP с помощью IPSec. Ибо у всех, кроме Mikrotik, туннели IPSec это именно туннели
Еще раз сейчас перечитал мануал по IPSec. Не нашел ни строчки о маршрутах, а также где настраивать NAT-t. Также не вижу информации о IP-адресах туннеля. Прот НАТ-т вот что есть: "В ситуации когда IPSec пакеты сгенерированы с использованием AH (Authentification Header) не достаточно применения технологии NAT. Структура IP пакета, подверженного обработке IPSec протоколом меняется, что делает невозможным его правильное распознавание. Для устранения этой проблемы прибегают к технологии NAT-Traversal, которая инкапсулирует IPSec трафик в UDP пакеты и передаёт их по сети в виде привычного маршрутизируемого сетевого трафика. На принимающей стороне от пакета отбрасывается UDP заголовок и концевик и на стек протокола IPSec поступают полученные данные." и "RouterOS Mikrotik имеет следующие средства для работы с IPSec: создание политик для шифрования правил, автоматическую генерацию ключей, ручное создание правил для шифрования трафика, работу как в транспортном режиме, так и в режиме туннелирования, средства мониторинга. Кроме того, в файерволе системы предусмотрен механизм NAT-T, о котором было рассказано выше."
Где его искать в настройках - не говорится ни слова. Далее. Читаем - "результате маршрутизаторы 192.168.1.1 и 192.168.1.2 будут обмениваться ключами и создадут безопасный шифрованный туннель между сетями 192.168.20.0 и 192.168.10.0." Ага, только хорошо бы еще поиметь описание, как направить трафик в этот туннель.
В общем я так понимаю, что еще никто не пробовал использовать IPSec и Mikrotik OS. Официальный саппорт тоже молчит.
в настройках IPSec указывается в Policies>Action режим туннеля и его адреса фейковые а в ip>firewall>nat, во вкладке action вместо masquerade, что направляет все пакеты на шлюз по-умолчанию, нужно указать src-nat=адрес туннеля, по-идее он будет заворачивать пакеты в туннель.
Да в том-то и проблема, что у туннеля нет своего адреса
Закладка General
Src.Addr: внеш. адрес1 Src.Port: все Dest.Addr: внеш. адрес2 Dest.Port: все Protocol: все
Маршрут до удаленной сети не активен (192.168.1.0/24 -> внешний интерфейса рутера в HQ например) Пакеты между двумя внеш. интерфейсами в торче выглядят как протокол IPsec (50). При попытке пропинговать удаленную частную сеть пакет не инкапсулируется, а тупо отправляется на шлюз провайдера в виде icmp. Вопрос для меня пока неразрешимый - как же написать роут для туннеля, у которого нет своего IP-адреса...
GRE и EoIP это разный вид туннелирования, в первом случае туннелирование происходит посредством авторизации и шифрования, а второй сквозным пробрасывание всех данных, включая бродкасты.
EoIP - прозрачный мост (Ethernet over IP)
Т.о. получается, что IPSec-туннель непонятно зачем вообще нужен Если можно вязать сети только EoIP, то IPSec де-факто является ненужной надстройкой, которая отъедает полосу пропускания и ресурсы системы.
Вообще все это очень странно. Я сам вязал сети посредством IPSec c IKE и все прекрасно работало и не нуждалось в каких-либо доп. туннелях.
На этом предлагаю взять паузу до понедельника. Удачных Вам выходных
давайте решать проблемы по мере их поступления. для начала нам нужно прокинуть первую сеть ко-второму роутеру, без использования трансляции адресов, потому как НАТ не приемлем в данной ситуации. я правильно вас понял?
Используем NAT-T Где его искать?
Цитата(Админ @ 7.6.2008, 17:44)
Для этого создается туннелирование, какой туннель строить это другой вопрос. Потому как в любом случае, вам нужно доставлять фейковый адрес на второй роутер. Так?
Хм. Вот тут на самом деле вопрос скользкий По идее, самый правильный вариант, чтобы у пакетов были адреса внешних интерфейсов. В этом случае они будут правильно маршрутизироваться и с шифрованием будет все ок.
фактически если не брать IPSec у вас не отрабатывается туннелирование между двумя подсетями.
можно построить обычный EoIP и если IPSec работает нормально, то все должно работать.
Фактически я не понимаю как запихать в IPSec-туннель трафик. IPSec-туннель не виден! Его нет в интерфейсах, у него нет IP-адреса, его нет в Peers. Т.о. образом написать маршрут вида "частную сеть ищи в IPSec-туннеле" нельзя. Макарадить адреса тоже нельзя - пакеты дропаются. Что же делать? Ну вот опять Вы предлагаете решать проблему методом туннель по туннелю. Но ведь это расточительство! У меня полоса пропускания 1 мегабит.
Вы немного не так поняли, да ладно, если нужен именно IPSec, то давайте делать через IPSec. Для начала посмотрите статическую маршрутизацию в ту сеть, как отрабатывается процесс форвардинга пакетов с самого роутера.
Пакеты между внешними интерфейсами прекрасно ходят.
Между внутренними интерфейсами все хуже - пакет шифруется и отправляется через внешний интерфейс на шлюз провайдера. Провайдер его дропает.
Если пакеты уходят на шлюз по-умолчанию провайдера, значит роутер незнает маршрута. т.е. он не добавлен в ip>routes
Простите, но вы ошибаетесь. Вся маршрутизация TCP/IP построена на принципе нулевых маршрутов. Ни один рутер в мире не знает всех маршрутов. Задача каждого - отправить пакет до такого шлюза, который в конечном итоге будет знать, где искать сеть, в которой расположен адресат. Да и как я могу прописать все маршруты на пути от сети 81.211.xxx.xxx до сети 81.13.xxx.xxx??? В нашем случае рутеру надо знать2 вещи - нулевой маршрут и IP-адрес внешнего интерфейса устройства, за которым находится нужная частная сеть.
З.Ы. Я немного недопонял еще Ваш пост про метрики. При чем тут метрики?.. А в общем и целом это еще половина задачи. Задача в целом не только связать сети IPSec-туннелем, но и обеспечить работу с резервными каналами. Вот тут как раз уже нужны метрики будут...
можно через PPTP построить шифрованный канал с аутентификацией + через EoIP создать прозрачную сетевую среду, эмулирующую прямое Ethernet подключение между сетями
Давайте забудем о PPTP. Мне нужен функционал IPSec
Я правильно понял, что Вы предлагаете поставить сперва GRE-туннель, а затем поверх GRE-туннеля поставить еще и IPSec-туннель? А сколько они отожрут от полосы пропускания? А самое главное - расход процессорного времени! Да и вообще несколько громоздкая система получается. На мой взгляд GRE-туннель в данном случае абсолютно излишняя деталь интерьера Да и в общем, насколько я знаю, GRE-туннели в первую очередь нужны для работы протоколов OSPF и RIP, но никак не для построения VPN-туннелей. А еще в случае GRE-туннеля у меня нет уверенности, что трафик пойдет в IPSec-туннель, а не в GRE. Проброс трафика между локалками в GRE-туннеле абсолютно неприемлем, т.к. такое решение не обеспечивает шифрование трафика.
Тем более, что проблема не в построении IPSec-туннеля - он есть и исправно работает. Проблема в том, что трафик не идет в этот туннель. Как я понимаю, рутер, вместо того, чтобы поставить в заголовок UDP-пакетов IP-адрес внешнего интерфейса, упорно ставит туда адрес частной сети, потому что изначально пакет пришел из внутренней сети. Как можно этого избежать не изменяя сам пакет?
Пример несколько ущербный (простите ). Во-первых там внешние интерфейсы находятся в одной подсети. В реальном мире это практически невозможно. Во-вторых трафик между рутерами не маршрутизируется. А вот если бы он маршрутизировался, то тогда пакеты в частные сети 192.168.xxx.xxx просто бы дропались провайдерами. Однако вернемся к моей ситуации.
В лаборатории все замечательно работало. И пакеты туннелировались. Но как только я попытался поднять то же самое в реальном мире - появились проблемы. Причем проблемы не с IPSec как таковым, а с маршрутизацией пакетов.
На сегодняшний день картина такова - есть IPSec туннель, наличие которого можно определить только трассировкой.
И есть трафик из одной частной сети в другую, который невозможно направить в туннель. Вместо того, чтобы достигнуть удаленного роутера, пакеты отправляются на шлюз провайдера, где находят свою смерть.
Теперь возьмем случай если включить dst-src. Для HQ подменяем адреса назначения исходящего пакета с 192.168.2.1 на адрес 81.13.xxx.134. В этом случае пакет должен достигнуть рутера Branch, но его drop'ает рутер, т.к. пакет изменен.
В фаеруолле сейчас у меня вообще разрешено все.
Общий вопрос - как направить трафик в IPSec туннель, у которого нет своего IP-адреса, и которого нигде не видно?
P.S. "Виртуальные сети" в примере это EoIP, правильно? А EoIP суть есть GRE-туннели?
Эмм... Что-то я немного недопонимаю. Во-первых причем тут протокол пойнт-ту-пойнт? Я использую IPSec. В интерфейсах туннель IPSec вообще отсутствует, как, впрочем и еще где бы то ни было. Я понимаю лишь с помощью трассировки, что туннель установлен успешно (первый же узел - удаленный роутер). Как я понял из Ваших рекомендаций мне нужно маскарадить Destination IP? Я честно говоря не очень понимаю все механику процесса... У меня был опыт подобных решений реализованных на HP 7100 dl. Там все было понятно - роутер, увидев пакет с назначением во внутреннюю удаленную сеть, пришедший на внутренний интерфейс локального роутера, шифровал его с помощью IPSeс, и отправлял удаленному роутеру, взяв адрес роутера из таблицы машрутизации. В заголовке UDP-пакета стоял публичный адрес удаленного роутера. Т.о. роутеры по пути следования пакетов обрабатывали его безо всяких проблем. Естественно все это безобразие использовало технологию NAT-T. Теперь что касается Mirkotik: 1. Не вижу NAT-T вообще 2. Не могу пока что уяснить, какой IP-адрес светится в заголовке шифрованного UDP пакета. Есть подозрение, что адрес внутренних сетей. 3. При маскарадинге адресов назначения или исходного адреса пакет, как я понимаю, не принимается удаленным роутером, т.к. роутер видит, что пакет бы изменен. 4. Не могу понять, где я могу увидеть установленные IPSec туннели. В Peers ничего не видно.
Фаеруолл: Настроен маскарадинг всех пакетов во внутр. сеть филиала (должен присваиваться IP внешн. интерфейса). Весь трафик между внутренними сетями разрешен.
Фаеруолл: Настроен маскарадинг всех пакетов во внутр. сеть HQ (должен присваиваться IP внешн. интерфейса). Весь трафик между внутренними сетями разрешен.
Что получилось: IPSec туннель ставится без проблем, но пакеты во внутренние удаленные сети в тоннель не попадают. Вместо этого они отправляются рутером на шлюз провайдера, где и гибнут.