Использование двух интернет каналов при удаленном доступе

. Просмотров: 7072

Рейтинг:  5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
 

Ранее в своей статье MikroTik и два канала в интернет я описал как сделать стабильный доступ в интернет из локальной сети. 

Теперья хочу поделиться идеями как сделать такой же стабильный доступ для удаленных клиентов.

 

Удаленные клиенты у меня пользуются следующими сервисами:

 

  • Телефония по протоколу sip.
  • Почта Exchange OWA & RPC over HTTP
  • Работа с файлами HTTPS (WebDav)
  • 2x Application любой порт TCP на который настроишь.

Из всех этих программ только у 2x клиента есть возмjжность задать дополнительный адрес для подключения, если не доступен основной.

Но выход есть и в этом случае. И называется он dyndns.org. Идем на этот сайт, регистрируемся там, и создаем свой адрес. Например blabla.dyndns.org.

1. Настройка маршрутизатора.
Реализовал я это небольшим изменением моего скрипта для переключения с одного провайдера на другого: 

:local username "dydnsLogin"
:local password "dyndnsPassword"
:local hostname "blabla.dyndns.org"
:local dyndnsForce false

:local PingCount 3;

:local CheckIp1 82.199.96.143;
:local CheckIp2 195.210.128.39;

:local eTo "email@address";

:local rName [/system identity get name];
:local rDate [/system clock get date];
:local rTime [/system clock get time];
:local eSubj ($rName . " " . $rDate . " " . $rTime);

:local isp1 [/ping $CheckIp1 count=$PingCount];
:local isp2 [/ping $CheckIp2 count=$PingCount];

:local BackGw [/ip route get [find comment="gw2"] disable];
#if main ISP is DOWN and backup ISP is UP then:
:if (($isp1=0) && ($isp2=$PingCount) && ($BackGw=true)) do={
:log warning "Set routes to backup ISP";
/ip route disable [find comment="gw1"];
/ip route enable [find comment="gw2"];
/tool e-mail send to=$eTo subject=($eSubj . " Main ISP is DOWN") body="Set routes to backup ISP";
:set dyndnsForce true
}

:local MainGw [/ip route get [find comment="gw1"] disable];

#if main ISP is UP then:
:if (($isp1=$PingCount) && ($MainGw=true)) do={
:log warning "Set routes to main ISP";
/ip route enable [find comment="gw1"];
/ip route disable [find comment="gw2"];
/tool e-mail send to=$eTo subject=($eSubj . " Main ISP is UP") body="Set routes to main ISP";
:set dyndnsForce true
}

:if ($dyndnsForce = true) do={
   :set dyndnsForce false
# get the current IP address from the internet (in case of double-nat)
   /tool fetch mode=http address="checkip.dyndns.org" src-path="/" dst-path="/dyndns.checkip.html"
   :local result [/file get dyndns.checkip.html contents]

# parse the current IP result
   :local resultLen [:len $result]
   :local startLoc [:find $result ": " -1]
   :set startLoc ($startLoc + 2)
   :local endLoc [:find $result "" -1]
   :local currentIP [:pick $result $startLoc $endLoc]
   :log info "UpdateDynDNS: currentIP = $currentIP"
   /tool fetch user=$username password=$password mode=http address="members.dyndns.org" src-path="/nic/update?hostname=$hostname&myip=$currentIP" dst-path="/dyndns.txt"
   :local result [/file get dyndns.txt contents]
   :log info ("UpdateDynDNS: Dyndns Update Result: ".$result)
#   :put ("Dyndns Update Result: ".$result)

#} else={
#   log info ("UpdateDynDNS: No dyndns update needed")
}

Теперь при пропадании связи с основным провайдером, шлюз по умолчанию переключается на второго провайдера и меняется запись на сервере dyndns.org

 

2. Настройка доступа к почте и файлам.

2.1 Прячем наш TMG сервер за маршрутизатор, так чтобы у него не было внешнего адреса. Я это реализовал через отдельнй vlan  и небольшую сеточку.

2.2 На маршрутизаторе MikroTik пробрасываем 443 порт на TMG сервер.

2.3 Настраиваем сертификат для почтового сервера. Я рекомендую использовать покупной. Для экономии можно взять самый простой сертификат на одно имя, например mail.test.com, но тогда придется повозиться с настройкой Exchange сервера для работы с одним сертификатом. Если у вас есть деньги можете взять мультиименной сертификат и прописать в него все доступные имена для вашего сервера, как из локальной сети так и из внешней. Как я говорил, я пошел по эконом варианту и приобрел сертификат на одно имя mail.test.com

2.4 Публикуем на TMG сервер Exchange с нашим сертификатом.

2.5 На внешнем DNS сервере для нашего домена прописываем псевдоним типа mail.test.com. CNAME blabla.dyndns.org.

Если все сделано правильно, почта будет доступна и по адресу mail.test.com как по OWA так  и по RPC. Т.к. для доступа к файлам также используется http, то и это должно работать.

 

3. Доступ к программам.

Т.к. с программами мы работаем через 2x клиента, то у него в подключении можно просто прописать адрес сервера blabla.dyndns.org

 

4. Телефония

Для телефонии я использую Астериск (Elastix). Т.к. Астериск находится за NAT-ом, его необходимо правильно настроить.

В файле sip_general_custom.conf добавляем следующие записи:

externhost=blabla.dyndns.org ; имя для внешнего адреса
externrefresh=10 ; Как часто получать адрес хоста, указанного в externhost
localnet=192.168.8.0/255.255.255.0 ; локальная сеть

перегружаем Астериск.

Все, для клиентов SIP также в адресе сервера указываем blabla.dyndns.org

 

Все.

 

Комментарии  

0 # Дмитрий 30.07.2014 00:27
Доброго времени суток!

Во-первых - ОЧЕНЬ полезные статьи. Спасибо огромное!

К сожалению, я не программер, но понадобилось воспользоваться материалом этой статьи по прямому назначению и просьба такая: пожалуйста, подскажите обновлённый скрипт для RouterOS 6.x?
Скрипт из этой статьи не работает (основной и резервный канал переключаются, но вот IP для DynDNS имени остаётся от "основного" соединения, даже при переключении на "резервный" канал).

Спасибо заранее!

Недостаточно прав для комментирования