Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

В разделе рассматривается решение задачи организации доступа к сети Интернет. Предполагается, что каждый ISP будет анонсировать про протоколу BGP маршрут по умолчанию. Также предполагается, что каждый провайдер выдает пул публичных адресов для организации NAT-трансляций на пограничных маршрутизаторах. Для мониторинга доступности ресурсов Интернет будет задействован механизм IP SLA. Решение текущей задачи разделено на следующие этапы:

Оглавление

Image Modified

Настройка доступа к локальной сети

Для увеличения доступности маршрутизаторов в сети воспользуемся протоколом VRRP. Объединим группы маршрутизаторов в один виртуальный маршрутизатор и назначим им общий IP-адрес, который и будет использоваться как шлюз по умолчанию для клиентских сетей. В процессе настройки сделаем маршрутизатор ESR1 VRRP-мастером. Далее настроим терминацию клиентского трафика, которая будет производиться на соответствующем саб-интерфейсе агрегированного канала.

Блок кода
titleESR1
collapsetrue
security zone Customer

security zone-pair Customer self
  rule 10
    action permit
    match protocol vrrp
    enable
  exit
  rule 20
    action permit
    match protocol icmp
    enable
  exit
exit
 
interface port-channel 1.100
 vrrp id 1
  vrrp ip 10.100.0.1/24
  vrrp priority 101
  vrrp group 1
  vrrp preempt disable
  vrrp
exit
Блок кода
titleESR2
collapsetrue
security zone Customer

security zone-pair Customer self
  rule 10
    action permit
    match protocol vrrp
    enable
  exit
  rule 20
    action permit
    match protocol icmp
    enable
  exit
exit
 
interface port-channel 1.100
  vrrp id 1
  vrrp ip 10.100.0.1/24
  vrrp group 1
  vrrp preempt disable
  vrrp
exit

Настройка BGP

Рассмотрим распространенный вариант организации стыка с интернет-провайдером — использование протокола BGP. При организации пиринга отфильтруем получаемую маршрутную информацию по протоколу BGP: разрешим только маршрут по умолчанию. Для сокращения времени определения недоступности BGP-пира рекомендуется использовать протокол BFD. 

Блок кода
titleESR1
collapsetrue
security zone-pair Untrusted self
  rule 10
    action permit
    match protocol tcp
    match destination-port port-range 179
    enable
  exit
  rule 20
    action permit
    match protocol udp
    match destination-port port-range 3784
    enable
  exit
exit
 
route-map BGP_IN
  rule 10
    match ip address 0.0.0.0/0
  exit
  rule 20
    action deny
  exit
exit
 
router bgp 64515
  neighbor 203.0.113.1
    remote-as 65500
    update-source gigabitethernet 1/0/1
    fall-over bfd
    address-family ipv4 unicast
      route-map BGP_IN in
      enable
    exit
    enable
  exit
  enable
exit
Блок кода
titleESR2
collapsetrue
security zone-pair Untrusted self
  rule 10
    action permit
    match protocol tcp
    match destination-port port-range 179
    enable
  exit
  rule 20
    action permit
    match protocol udp
    match destination-port port-range 3784
    enable
  exit
exit
 
route-map BGP_IN
  rule 10
    match ip address 0.0.0.0/0
  exit
  rule 20
    action deny
  exit
exit
 
router bgp 64515
  neighbor 203.0.113.129
    remote-as 65400
    update-source gigabitethernet 1/0/1
    fall-over bfd
    address-family ipv4 unicast
      route-map BGP_IN in
      enable
    exit
    enable
  exit
  enable
exit


Проверим, что BGP-соседство установлено, и маршрут по умолчанию присутствует на обоих маршрутизаторах:

Блок кода
titleПроверка BGP
collapsetrue
ESR1# sh bgp neighbors
BGP neighbor is 203.0.113.1
    BGP state:                          Established
    Type:                               Static neighbor
    Neighbor address:                   203.0.113.1
    Neighbor AS:                        65500
    Neighbor ID:                        8.8.8.8
    Neighbor caps:                      refresh enhanced-refresh restart-aware AS4
    Session:                            external AS4
    Source address:                     203.0.113.2
    Weight:                             0
    Hold timer:                         108/180
    Keepalive timer:                    27/60
    RR client:                          No
    Address family ipv4 unicast:      
      Send-label:                       No
      Default originate:                No
      Default information originate:    No
      Incoming route-map:               BGP_IN
      Preference:                       170
      Remove private AS:                No
      Next-hop self:                    No
      Next-hop unchanged:               No
    Uptime (d,h:m:s):                   01,16:16:19
    BFD address:                        203.0.113.1
    BFD state:                          Up       
    BFD interval:                       0.300 s
    BFD timeout:                        1.500 s
 
ESR1#     sh bgp ipv4 unicast neighbor 203.0.113.1 routes
Status codes: u - unicast, b - broadcast, m - multicast, a - anycast
              * - valid, > - best
Origin codes: i - IGP, e - EGP, ? - incomplete
 
     Network              Next Hop             Metric  LocPrf      Weight Path       
*> u 0.0.0.0/0            203.0.113.1          --      100         0      65500 ?
 
ESR2# sh bgp neighbors 
 BGP neighbor is 203.0.113.129
    BGP state:                          Established
    Type:                               Static neighbor
    Neighbor address:                   203.0.113.129
    Neighbor AS:                        65400
    Neighbor ID:                        203.0.113.129
    Neighbor caps:                      refresh enhanced-refresh restart-aware AS4
    Session:                            external AS4
    Source address:                     203.0.113.130
    Weight:                             0
    Hold timer:                         137/180
    Keepalive timer:                    31/60
    RR client:                          No
    Address family ipv4 unicast:      
      Send-label:                       No
      Default originate:                No
      Default information originate:    No
      Incoming route-map:               BGP_IN
      Preference:                       170
      Remove private AS:                No
      Next-hop self:                    No
      Next-hop unchanged:               No
    Uptime (d,h:m:s):                   00,18:07:05
    BFD address:                        203.0.113.129
    BFD state:                          Up       
    BFD interval:                       0.300 s
    BFD timeout:                        1.500 s
 
ESR2#   sh bgp ipv4 unicast neighbor 203.0.113.129 routes
Status codes: u - unicast, b - broadcast, m - multicast, a - anycast
              * - valid, > - best
Origin codes: i - IGP, e - EGP, ? - incomplete
 
     Network              Next Hop             Metric  LocPrf      Weight Path       
*> u 0.0.0.0/0            203.0.113.129        --      100         0      65400 ?

Настройка проверки работоспособности канала

Одним из вариантов проверки работоспособности канала связи является проверка доступности ресурсов в сети Интернет. В рамках задачи настроим несколько IP SLA-тестов, по результатам которых будем определять, подходит ли данный узел для работы в сети Интернет. 
Ниже приведена настройка IP SLA-тестов на основном маршрутизаторе ESR1: 

Блок кода
titleESR1
collapsetrue
ip sla
ip sla logging status
ip sla test 1
  icmp-echo 8.8.4.4 source-ip 203.0.113.2 num-packets 5
  enable
exit
 
ip sla test 2
  icmp-echo 77.88.44.242 source-ip 203.0.113.2 num-packets 5
  enable
exit
 
ip sla schedule all life forever start-time now


С помощью track-менеджера настроим реакцию на IP-SLA тесты: если оба теста завершились ошибочно, переключаемся на резервный канал, меняя VRRP-мастера.

Блок кода
titleESR1
collapsetrue
track 1
  description "Check Internet"
  track sla test 1 mode state fail
  track sla test 2 mode state fail
  enable
exit
 
interface port-channel 1.100
  vrrp priority track 1 decrement 10
exit
 
interface port-channel 1.300
  vrrp priority track 1 decrement 10
exit


Проверить статус IP SLA  тестов и состояние track-менеджера можно следующим образом:

Блок кода
collapsetrue
ESR1# sh ip sla test status
Test      Type           Source                                 Destination                            Status         Last Run              Description           
-------   ------------   ------------------------------------   ------------------------------------   ------------   -------------------   --------------------  
1         icmp-echo      203.0.113.2                            8.8.4.4                                Fail           2024-02-16 14:02:12   --                    
2         icmp-echo      203.0.113.2                            77.88.44.242                           Successful     2024-02-16 14:02:09   --
 
ESR1# sh track 1
Track 1:
  State:         Down
  Changes count: 3 (last 12081,10:48:29)
  Mode:          And
  Delay up:      0s
  Delay down:    0s
  Description:   Check Internet
 
Conditions:
 
Type        ID                     State   Mode             Last change (d,h:m:s)       VRF                               
---------   --------------------   -----   --------------   -------------------------   --------------------------------  
SLA         2                      False   State fail       00,10:48:29              --                                
SLA         1                      True    State fail       00,10:48:29              --                                
 
Actions:
 
VRRPs:
  ID 1 priority of the interface port-channel 1.100 : 101

Настройка Source NAT

Функция Source NAT (SNAT) используется для подмены адреса источника у пакетов, проходящих через сетевой шлюз. При прохождении пакетов из локальной сети в публичную сеть адрес источника заменяется на один из публичных адресов шлюза. Дополнительно к адресу источника может применяться замена порта источника. При прохождении пакетов из публичной сети в локальную происходит обратная подмена адреса и порта.

В текущей схеме SNAT используется для предоставления доступа в Интернет хостам, находящимся в локальной сети. Приведем пример настройки SNAT для клиентов Customer. Соответствующая подсеть будет натироваться в свой публичный адрес, предоставленный интернет-провайдером.
Создадим профиль адресов локальный сети, для которых будет выполняться SNAT:

Блок кода
titleESR1
collapsetrue
object-group network Customers_POOL
  ip prefix 10.100.0.0/24
exit
Блок кода
titleESR2
collapsetrue
object-group network Customers_POOL
  ip prefix 10.100.0.0/24
exit


Опишем профиль публичных адресов, предоставленных интернет-провайдерами:

Блок кода
titleESR1
collapsetrue
object-group network Public_POOL
  ip address-range 203.0.113.2-203.0.113.126
exit
Блок кода
titleESR2
collapsetrue
object-group network Public_POOL
  ip address-range 203.0.113.130-203.0.113.254
exit


Настроим прохождение клиентского трафика между соответствующими зонами безопасности:

Блок кода
titleESR1
collapsetrue
security zone-pair Customer Untrusted
  rule 10
    action permit
    match source-address object-group Customers_POOL
    enable
  exit
exit
Блок кода
titleESR2
collapsetrue
security zone-pair Customer Untrusted
  rule 10
    action permit
    match source-address object-group Customers_POOL
    enable
  exit
exit


Сконфигурируем непосредственно SNAT:

Блок кода
titleESR1
collapsetrue
nat source
  pool Customer_Public_IP
    ip address-range 203.0.113.3
  exit

  ruleset SNAT
    to zone Untrusted
    rule 10
      match source-address object-group Customers_POOL
      action source-nat pool Customer_Public_IP
      enable
    exit
  exit
exit
Блок кода
titleESR2
collapsetrue
nat source
  pool Customer_Public_IP
    ip address-range 203.0.113.130
  exit
 
  ruleset SNAT
    to zone Untrusted
    rule 10
      match source-address object-group Customers_POOL
      action source-nat pool Customer_Public_IP
      enable
    exit
  exit
exit


Для просмотра cконфигурированного функционала и текущих NAT-трансляций можно воспользоваться следующими командами:

Блок кода
titleПроверка NAT
collapsetrue
ESR1# sh ip nat source rulesets  SNAT
 
Description:                 --
VRF:                         --
To:                          zone 'Untrusted'
 
Rules:
------
Order:                       10
Description:                 --
Matching pattern:
    Protocol:                any
    Source address:          10.100.0.0/24
    Destination address:     any
Action:                      pool Customer_Public_IP
Status:                      Enabled
--------------------------------------------------------------------------------
 
ESR1# sh ip nat  translations
Prot   Inside source           Inside destination      Outside source          Outside destination     Pkts         Bytes       
----   ---------------------   ---------------------   ---------------------   ---------------------   ----------   ----------  
icmp   10.100.0.100            8.8.8.8                 203.0.113.3             8.8.8.8                 --           --

Настройка коммутаторов уровня ядра

Блок кода
titleMES_Ядро_1
collapsetrue
vlan database
 vlan 100
exit
!
interface vlan 100
 name Internet
exit
!
interface range Port-Channel1-5
 switchport general allowed vlan add 100
exit
!
Блок кода
titleMES_Ядро_2
collapsetrue
vlan database
 vlan 100
exit
!
interface vlan 100
 name Internet
exit
!
interface range Port-Channel1-5
 switchport general allowed vlan add 100
exit
!
Блок кода
titleПояснения
collapsetrue
Создание пользовательской VLAN для сервиса Интернет


Добавление VLAN в Port-Channel

Настройка коммутаторов уровня агрегации

Блок кода
titleMES_Агрегация_Stack
collapsetrue
vlan database
 vlan 100
exit
!
interface vlan 100
 name Internet
exit
!
interface range Port-Channel1-4
 switchport general allowed vlan add 100
exit
!
Блок кода
titleПояснения
collapsetrue
Создание пользовательской VLAN для сервиса Интернет


Добавление VLAN в Port-Channel

Настройка коммутаторов уровня доступа

Блок кода
titleMES_Доступ
collapsetrue
vlan database
 vlan 100
exit
!
interface vlan 100
 name Internet
exit
!
interface Port-Channel1
 switchport general allowed vlan add 100
exit
!
interface range GigabitEthernet1/0/1-24
 switchport general allowed vlan add 100 untagged
 switchport general pvid 100
exit
!
Блок кода
titleПояснения
collapsetrue
Создание пользовательской VLAN для сервиса Интернет


Добавление VLAN в Port-Channel



Добавление VLAN для сервиса Интернет на клиентский порт со снятием метки на выходе
Помещение нетегированного трафика на порту во VLAN 100