воскресенье, 3 ноября 2013 г.

Маршрутизация на Mikrotik при использовании ISA 2006 для аутентификации.

Вводная: Имеется сеть со следующей структурой

Локальная сеть подключена к микротику, в нём указан в качестве шлюза на 0.0.0.0 адрес Microsoft ISA 2006 сервер (далее ISA) 192.168.0.2. К которому подключены два провайдера (основной PPPoE и резервный на статике). Минусы данного решения в том, что 
  1. ISA очень коряво работает с несколькими внешними линиями - встроенных средств переключения нет, приходится работать скриптами, плюс при переключении между каналами требуется перезагружать сервис ISA. Что при достаточно большом количестве правил может занимать приличное время. 
  2. Привязка к серверу - в случае падения сервера, придётся бежать в серверную и перетыкать провода из него в микротик (или другой резервный сервер) и настраивать подключение в интернет через него (хотя бы чтобы у некоторых был доступ в сеть, пусть без доменной авторизации). 
  3. Достаточно сложно виртуализировать данный сервер (по крайней мере в моём случае при использовании XenServer) - либо через vlan прокидывать линки от провайдера, либо занимать сетевые разъёмы на гипервизоре и передавать их напрямую в виртуалку (теряется 2 разъёма, что не очень хорошо, лучше их агрегировать для работы с СХД). При такой схеме достаточно проблемной становится миграция между серверами и некоторые другие вещи.
  4. Получается, что ISA-сервер смотрит напрямую в интернет, что не совсем хорошо. Так как на Windows всегда гораздо больше эксплойтов и прочей гадости.

Отказываться от ISA сервера смысла нет - так как весь доступ в интернет настроен посредством доменных групп и пользователей. Да и сервер кроме выше перечисленных проблем вполне устраивает.

Задача: Перевести подключение провайдеров на микротик, чтобы получилась следующая схема. 

То есть при переходе с локальной сети на микротик, он отправляет пакеты для 0.0.0.0/0 на ISA сервер. ISA решала о возможности доступа пользователю и отправляла (или нет, если доступа у пользователя нет) обратно на микротик, где пакеты уже и уходили в интернет, по основному или в случае недоступности основного по резервному каналу.

Решение: Для начала отключаем провода от провайдера с ISA и втыкаем их в свободные порты на микротике.  Теперь в параметрах подключения к локальной сети (на ISA) прописываем два адреса - в нашем случае это будут 192.168.0.2/24 (который будет смотреть в локальную сеть) и 10.0.0.1/30 который будет смотреть на микротик. Шлюзом для данного соединения будет 10.0.0.2 (который мы пропишем на микротике). Теперь перезапускаем службу межсетевого экрана и переходим к настройке микротика.

/ip address
#Добавляем адреса для локальной сети
add address=192.168.0.1/24 interface=ether1 network=192.168.0.0
add address=10.0.0.2/30 interface=ether1 network=10.0.0.0
#Добавляем адрес для ISP2 (статический)
add address=11.22.33.44/25 interface=ether4 network=11.22.33.0

Далее сразу настроим PPPoE соединение со основным провайдером ISP1
/interface pppoe-client
add allow=chap,mschap1,mschap2 comment="ISP1 PPPoE" disabled=no interface=ether5 name=pppoe-out1 password=Pa$$worD user=pppoeuser
Обращаю ваше внимание, что отсутствует параметр "Add default Route"! - маршрут мы создадим далее вручную.

Теперь перейдём к основной части настройки - нам нужно сделать PBR (Policy-based routing).
http://www.opennet.ru/base/net/bsd_pbr_route.txt.html
В сегодняшних компьютерных сетях  высокой производительности, возникает необходимость ввыполнении пересылки пакетов соответственно определенной политике (правилу или набору правил),которая, в некотором отношении, выходит за границы традиционных принципов работы протоколов маршрутизации. PBR используется там, где, в силу различных обстоятельств, необходимо дифференцировать трафик по какому-либо признаку, и выбирать различный дальнейший маршрут длякаждого случая отдельно.
Достоинства PBR    1. выбор маршрута, основанный на источнике - позволяет пропускать трафик, приходящий из различных мест, через разные каналы подключения к Интернет    2. эффективное использование имеющихся каналов подключения к Интернет    3. расширение возможностей динамической маршрутизации

Что такое PBR?
PBR предоставляет механизм реализации пересылки (forwarding)/ маршрутизации(routing) пакетовданных, основанный на политике, представляющей собой набор правил, определенной администраторамисети. Это предоставляет более гибкий механизм для обработки пакетов на маршрутизаторах, дополняясуществующий механизм, предоставленный протоколами маршрутизации.Маршрутизаторы выбирают дальнейший путь следования пакетов данных по полю "адрес назначения", основываясь  на информациииз таблицы  статических маршрутов или полученной от динамических протоколов маршрутизации. Вместо выбора дальнейшего маршрута,основанного на адресе назначения, PBR позволяет администраторам сети определить свои правила, покоторым будет осуществляться маршрутизация пакетов.
Вначале промаркируем пакеты входящие с локальной сети, как пакеты которые надо обрабатывать таблицей LocalNetToISA, а пакеты входящие с адреса ISA-сервера, таблицей IsaToInet

/ip firewall mangle
#Добавляем маркировку пакетов для адресов входящих в микротик с локальной сети
add action=mark-routing chain=prerouting new-routing-mark=LocalNetToIsa src-address=192.168.0.0/24
#Добавляем маркировку пакетов для адресов входящих в микротик с сервера ISA
add action=mark-routing chain=prerouting new-routing-mark=IsaToInet src-address=10.0.0.1

Теперь прописываем маршруты и какой таблицей маршрутизации их требуется обрабатывать

/ip route
#Для пакетов у которых маркировка LocalNetToIsa шлюз по умолчанию будет ISA сервер
add distance=1 gateway=10.0.0.1 routing-mark=LocalNetToIsa
#Для пакетов у которых маркировка IsaToInet шлюзом будут выходы в интернет
#обратите внимание на параметр distance который отвечает за выбор основного и резервного маршрута
add distance=1 gateway=pppoe-out1 routing-mark=IsaToInet
add distance=2 gateway=11.22.33.1 routing-mark=IsaToInet

/ip route rule
add dst-address=192.168.0.0/24 table=main
add dst-address=10.0.0.1/32 table=main
add dst-address=44.55.66.30/32 table=main
add dst-address=11.22.33.0/25 table=main

Также настроим NAT для работы с ISA-сервера
/ip firewall nat
add action=masquerade chain=srcnat routing-table=IsaToInet src-address=10.0.0.1

На этом настройка закончена.

PS: http://wiki.mikrotik.com/wiki/Policy_Base_Routing - официальная вики по Policy Base Routing
http://nix.khd.ru/?p=133 - Policy based routing в Mikrotik














Комментариев нет:

Отправить комментарий