Подключение к сети интернет

Подключение к сети интернет — речь подойдет про возможные схемы подключения компании к интернету с примерами реализации.

Когда только начинал заниматься сетями частенько задавался вопросом: как можно и нужно правильно создать энтерпрайзное подключение к провайдеру (ISP). Тогда бы мне такая статья здорово помогла, поэтому думаю материал полезный. Статья будет как всегда на примере настройки оборудования CISCO.


Виды подключений к ISP

Подключения к провайдерам разделяют на 4 вида:

Single-homed — подключение к одному провайдеру по 1 линку (1 link per ISP, 1 ISP) ;
Dual-homed — подключение к одному провайдеру несколькими линками (2+ links per ISP, 1 ISP). Здесь возможны комбинации:

  1. 1 роутер со стороны компании и 1 роутер со стороны провайдера;
  2. 1 роутер со стороны компании и 2 роутера со стороны провайдера;
  3. 2 роутера со стороны компании и 1 роутер со стороны провайдера;
  4. 2 роутера со стороны компании и 2 роутера со стороны провайдера

Multihomed — подключение к нескольким провайдерам, к каждому провайдеру 1 линк (1 link per ISP, 2+ ISPs). Опять же 1 или  несколько роутеров со стороны компании;
Dual multihomed — подключение к нескольким провайдерам, к каждому провайдеру несколько линков (2+ links per ISP, 2+ ISPs).

Подключение к сети интернет


Когда не нужен BGP

Центровым протоколом для подключения компаний к интернету является BGP. Но BGP для компании нужен не всегда. Его можно использовать при любом виде подключения к ISP, технически всё будет работать, однако в ряде случаев смысла в этом нет. Тут подробнее, рассмотрим несколько вариантов:

  • Имеется только 1 подключение к интернету и один публичный IP адрес (Single-homed);

Вне зависимости от наличия или отсутствия ресурсов для интернета, в этом случае на роутере используется статический маршрут на роутер провайдера. BGP не нужен.

ip route 0.0.0.0 0.0.0.0 IP-адрес_роутера_ISP 

Если нужно выставить ресурсы в интернет, это решается пробросом портов на роутере.

interface GigabitEthernet0
ip nat inside
...
!
interface GigabitEthernet1
ip address 209.165.200.225 255.255.255.252
ip nat outside
...
!
ip nat inside source static tcp 192.168.11.100 80 209.165.200.225 80
  • У компании 2 канала в  интернет (Dual-homed, Multihomed), но нет ресурсов, которые должны быть доступны с интернета;

Тогда обычно один канал основной, а второй резервный. BGP не нужен. Возможно и использования обоих каналов также без BGP. Рассказываю на примерах.


Пример 1

Есть граничный роутер компании, у него интерфейс GigabitEthernet0 подключен к одному провайдеру, а интерфейс GigabitEthernet1 к другому.

interface GigabitEthernet0
description -- BackUP ISP MTS 10Mbp/s --
ip address 91.223.100.162 255.255.255.192
ip access-group WAN_IN in
ip access-group WAN_OUT out
ip flow ingress
ip flow egress
ip nat outside
ip inspect FW out
ip virtual-reassembly in
ntp disable
no cdp enable
!
interface GigabitEthernet1
description -- Main ISP Rostelekom 30Mbp/s --
ip address 62.183.37.2 255.255.255.252
ip access-group WAN_IN in
ip access-group WAN_OUT out
ip flow ingress
ip flow egress
ip nat outside
ip inspect FW out
ip virtual-reassembly in
ntp disable
no cdp enable

Ростелеком основной и быстрый интернет, запасной и медленный МТС. Два маршрута по умолчанию:

ip route 0.0.0.0 0.0.0.0 62.183.37.1 track 100 - на Ростелеком
ip route 0.0.0.0 0.0.0.0 91.223.100.161 20 - на МТС

Первый маршрут отслеживается треком 100, у второго AD=20.

track 100 list boolean and
object 101
object 102
object 103
delay down 10 up 5
!
track 101 ip sla 101 reachability
!
track 102 ip sla 102 reachability
!
track 103 ip sla 103 reachability

Комбинированный трек 100 проверяет 3 условия доступности и имеет задержку в срабатывании.

ip sla 101
icmp-echo 62.183.37.1 source-interface GigabitEthernet1
threshold 1000
timeout 1500
frequency 3
ip sla schedule 101 life forever start-time now
ip sla 102
icmp-echo 8.8.8.8 source-interface GigabitEthernet1
threshold 1000
timeout 1500
frequency 3
ip sla schedule 102 life forever start-time now
ip sla 103
http get http://93.158.76.12 source-ip 62.183.37.2
ip sla schedule 103 life forever start-time now

Первая SLA мониторит доступность роутера Ростелекома по ICMP, но этого недостаточно, так как роутер может быть доступен, а интернет он не раздаёт по каким-то причинам. Поэтому есть ещё два SLA: мониторинг DNS Гугла и критически важного для работы HTTP-сервера.

event manager applet ISP-MAIN-UP
event track 100 state up
action 1.0 cli command "enable"
action 1.1 cli command "clear ip nat trans *"
action 1.2 cli command "conf t"
action 1.3 cli command "int tu16"
action 1.4 cli command "tunnel source gigabitEthernet 1"
event manager applet ISP-MAIN-DOWN
event track 100 state down
action 1.0 cli command "enable"
action 1.1 cli command "clear ip nat trans *"
action 1.2 cli command "conf t"
action 1.3 cli command "int tu16"
action 1.4 cli command "tunnel source GigabitEthernet 0"

Ну и собственно при срабатывании трека 100 в DOWN происходит следующее:

  • Заменяется статический маршрут на маршрут с AD 20;
  • Очищается трансляция NAT, так как внешний интерфейс теперь другой (interface GigabitEthernet0);
  • Подменяется интерфейс в туннеле DMVPN.

Если же трек 100 опять имеет состояние UP, то всё возвращается на свои места. Задержка в срабатывании нужна чтобы вот это "мероприятие" не скакало туда-сюда.

Подробнее о комбинированном треке: //xgu.ru/wiki/Cisco_Enhanced_Object_Tracking

Недостаток этого метода в том, что при работоспособности обоих провайдеров, второй провайдер никак не используется.


Пример 2

В случае 2 роутеров со стороны компании и по 1 линку с каждого роутера компании к провайдеру/провайдерам (Dual-homed, Multihomed), может использоваться протокол HSRP (Hot Standby Router Protocol). Про основные понятия HSRP можно прочитать тут.

HSRP довольно-таки древний протокол, впервые он появился ещё в 10 версии IOS. Поэтому современные прошивки IOS 12+ или 15+ его гарантированно знают со всеми фичами.

Эту схему можно настроить и на коммутаторах 3 уровня, понятно, никто не будет использовать коммутаторы для подключения к ISP. Однако внутри компании такая схема может быть внедрена в критически важной точке для отказоустойчивости. Вот что говорится в курсе ENCOR (by INE):

Точно так же как и в прошлом примере в деле отслеживание доступности с помощью трека. Роль активного роутера передаётся в зависимости от состояния трека.

Примерная реализация будет такая, 2 граничных роутера R1 и R2, интерфейс GigabitEthernet0 каждого роутера смотрит во внутреннюю сеть компании 192.168.1.0/24. Шлюз по умолчанию для компьютеров компании, это IP адрес виртуального роутера — 192.168.1.254.

Интерфейс GigabitEthernet1 каждого роутера подключен к своему провайдеру. Пусть для определенности это будут всё те же Ростелеком и МТС, тогда для R1:

interface GigabitEthernet0
ip address 192.168.1.1 255.255.255.0
ip nat inside
standby 10 ip 192.168.1.254
standby 10 priority 200
standby 10 preempt
standby 10 track 100 decrement 60
!
interface GigabitEthernet1 
description -- Main ISP Rostelekom 30Mbp/s -- 
ip address 62.183.37.2 255.255.255.252 
ip access-group WAN_IN in 
ip access-group WAN_OUT out 
ip flow ingress 
ip flow egress 
ip nat outside 
ip inspect FW out 
ip virtual-reassembly in 
ntp disable 
no cdp enable
...
ip route 0.0.0.0 0.0.0.0 62.183.37.1

А для роутера R2:

interface GigabitEthernet0
ip address 192.168.1.2 255.255.255.0
ip nat inside
standby 10 ip 192.168.1.254
standby 10 priority 150
standby 10 preempt
!
interface GigabitEthernet1 
description -- BackUP ISP MTS 10Mbp/s -- 
ip address 91.223.100.162 255.255.255.192 
ip access-group WAN_IN in 
ip access-group WAN_OUT out 
ip flow ingress ip flow egress 
ip nat outside 
ip inspect FW out 
ip virtual-reassembly in 
ntp disable 
no cdp enable 
...
ip route 0.0.0.0 0.0.0.0 91.223.100.161

Трек 100 отслеживает доступность внешних ресурсов для интерфейса GigabitEthernet1 роутера R1:

track 100 ip sla 100 reachability
delay down 10 up 5 
!
ip sla 100 icmp-echo 8.8.8.8 source-interface GigabitEthernet1 
threshold 1000 
timeout 1500 
frequency 3 
ip sla schedule 100 life forever start-time now

Когда трек 100 имеет состояние UP, то активный роутер R1. У него приоритет 200, что больше приоритета 150 для R2. Все пакеты форвардятся через R1 на Ростелеком.

Когда доступность DNS Гугла 8.8.8.8 через Ростелеком пропадает, трек 100 переводится в состояние DOWN. При этом происходит уменьшение приоритета роутера R1 из-за строчки:

 standby 10 track 100 decrement 60

Теперь его приоритет 200-60=140, то есть меньше чем у R2. За счёт команды:

standby 10 preempt

роутер R2 перехватывает роль активного роутера и пакеты форвардятся уже через МТС.

Если на на внутреннем интерфейсе роутеров GigabitEthernet0 используется ACL, то необходимо разрешить мультикаст адрес обмена информацией для HSRP группы. Для HSRPv1 это 224.0.0.2.

В случае работоспособности обоих провайдеров, второй провайдер по прежнему простаивает. Возникает вопрос: а зачем такая схема вообще нужна? Оборудования использовано в 2 раза больше по сравнению с первым примером, при этом результат тот же самый. Для этого следующий пример.

Пример 3

В случае с HSRP можно задействовать оба канала интернета. И реализовать распределение нагрузки. Для этого создается 2 группы HSRP на одном интерфейсе. Называется такая конфигурация MHSRP (Multiple HSRP).

Тут есть проблема, но буду рассказывать по порядку. Получаем для роутера R1:

interface GigabitEthernet0
ip address 192.168.1.1 255.255.255.0
ip nat inside
standby 10 ip 192.168.1.254
standby 10 priority 200
standby 10 preempt
standby 10 track 100 decrement 60
standby 20 ip 192.168.1.253
standby 20 priority 150
standby 20 preempt

Для роутера R2:

interface GigabitEthernet0
ip address 192.168.1.2 255.255.255.0
ip nat inside
standby 10 ip 192.168.1.254
standby 10 priority 150
standby 10 preempt
standby 20 ip 192.168.1.253
standby 20 priority 200
standby 20 preempt
standby 20 track 200 decrement 60

Для важных хостов, которым нужен быстрый интернет, шлюзом по умолчанию настраивается 192.168.1.254, для остальных 192.168.1.253.

Трек 100 мониторит доступность ресурсов через интерфейс GigabitEthernet1 роутера R1. Трек 200 через интерфейс GigabitEthernet1 роутера R2. В случае падения одного из провайдеров доступ в интернет перетекает на работоспособный роутер для обеих групп HSRP.

Здесь есть ещё интересный момент. Пусть один провайдер упал и обе группы HSRP активны на интерфейсе GigabitEthernet0, допустим, роутера R1. Поскольку у каждой HSRP группы свой MAC адрес, то на одном интерфейсе будет 2 разных MAC адреса. Это должно поддерживаться на уровне железа (чипсетом роутера).

Для старых железок (на чипсетах Lance и QUICC) такую конфигурацию сделать не получится, она не заработает.

Некоторая информация о MHSRP от CISCO здесь.

Возвращаемся к проблеме: а как нам в одном сегменте раздать адреса с разными шлюзами с помощью DHCP? Не руками же вбивать? Без костылей не обойтись. Нужно настроить пользовательский класс DHCP на нужных машинах через GPO, сделать на DHCP политику и подменить через политику шлюз.

Поэтому у MHSRP тоже есть свой жирный минус.

Пример 4

Всё то же самое, но раздавать интернет будем в разных VLANs. Придётся воспользоваться методом Router-on-a-Stick, чтобы прокинуть транковый канал с роутера.

Конфигурация для R1:

interface GigabitEthernet0.10
encapsulation dot1Q 10
ip address 192.168.10.1 255.255.255.0 
ip nat inside 
standby 10 ip 192.168.10.254 
standby 10 priority 200 
standby 10 preempt 
standby 10 track 100 decrement 60
!
interface GigabitEthernet0.20
encapsulation dot1Q 20
ip address 192.168.20.1 255.255.255.0 
ip nat inside 
standby 20 ip 192.168.20.254 
standby 20 priority 150 
standby 20 preempt

Конфигурация для R2:

interface GigabitEthernet0.10
encapsulation dot1Q 10
ip address 192.168.10.2 255.255.255.0 
ip nat inside 
standby 10 ip 192.168.10.254 
standby 10 priority 150 
standby 10 preempt
!
interface GigabitEthernet0.20
encapsulation dot1Q 20
ip address 192.168.20.2 255.255.255.0 
ip nat inside 
standby 20 ip 192.168.20.254 
standby 20 priority 150 
standby 20 preempt
standby 20 track 200 decrement 60

Тут решается сразу несколько проблем:

  • Нет проблемы 2 MAC на интерфейсе, так как это не MHSRP;
  • Никакой возни с DHCP и клиентами

Такая настройка более оптимальна. Подробнее тут. Единственное что: название статьи некорректно, это не MHSRP.


Отказоустойчивый кластер

Не рассматриваю варианты отказоустойчивого кластера, так как такой "отказоустойчивый" кластер имеет единую точку отказа. Это точка подключения к провайдеру.

Такие кластера отличает наличие "шнурка" между активным и резервным устройствами. Через этот интерфейс резервное устройство мониторит активное и если активное недоступно, то перехватывает роль.

Подобные реализации поддерживают многие производители. Кому интересно создание кластера на базе ASA, можно почитать здесь.


Заключение

Примеров настройки подключений к интернету может быть значительно больше: GLBP, VRRP, .. Могут встретиться самые неожиданные варианты конфигураций, смотришь в конфигурацию и диву даёшься, как это вообще смогли придумать. Но в общем-то самые ходовые примеры были рассмотрены.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *