Примеры конфигураций будут предложены для несколько упрощенной схемы, приведенной ниже. Схема состоит из четырех маршрутизаторов, корневые маршрутизаторы соединены двумя линками, которые будут собраны в LAG.

В современных сетях в качестве IGP используются протоколы OSPF или ISIS. В предложенном дизайне будет использован OSPF. Все маршрутизаторы ядра сети помещаются в OSPF area 0.


Настройка доступа и общесистемных параметров, таких как AAA, CoPP, NTP, SSH и прочих

Core-R1
aaa accounting commands stop-only tacacs                                                    #настройка параметров авторизации AAA
aaa accounting login start-stop tacacs
aaa authentication login TACACS
  method tacacs
  method local
exit
aaa authentication login local
  method local
exit
aaa authorization commands tacacs

backup to fs://backups                                                                      #настройка сохранения конфигурации устройства на локальном устройстве
  memory-limit 50
  post-commit
exit

clock timezone gmt 7                                                                       #выбор часового пояса для сдвига системного времени относительно времени NTP-сервера

control-plane inband interface all                                                         #настройка защиты плоскости управления
  allow bfd
    any
    exit
  exit
  allow dhcp
    any
    exit
  exit
  allow icmp                                                                                 #Задание списка хостов, c которыми разрешено взаимодействие по icmp
    peer-list icmp
      icmp-type echo
      exit
      peer icmp_1
        source
          address-range 10.255.0.0-10.255.1.255
        exit
      exit
    exit
  exit
  allow igmp
    any
    exit
  exit
  allow ldp
    any
    exit
  exit
  allow microbfd
    any
    exit
  exit
  allow ntp                                                                                  #Задание списка хостов, c которыми разрешено взаимодействие по ntp 
    peer-list ntp
      peer ntp_1
        source
          address 10.10.0.1
        exit
      exit
      peer ntp_2
        source
          address 10.18.0.2
        exit
      exit
    exit
  exit
  allow ospf
    any
    exit
  exit
  allow pim
    any
    exit
  exit
  allow snmp                                                                              #Задание списка хостов, которым разрешен доступ к устройству по snmp
    peer-list snmp
      peer snmp_1
        source
          address 10.10.0.1
        exit
      exit
      peer snmp_2
        source
          address-range 10.255.2.0-10.255.2.15
        exit
      exit
    exit
  exit
  allow ssh                                                                                #Задание списка хостов, которым разрежен доступ к устройству по ssh
    peer-list ssh
      peer ssh_1
        source
          address 10.10.0.1
        exit
      exit
      peer ssh_2
        source
          address-range 10.255.2.0-10.255.2.15
        exit
      exit
    exit
  exit
exit

hostname Core-R1                                                                           #Задание имени устройства
            
hw-module maximum acl-entries 100                                                          #конфигурация блока распределения аппаратных ресурсов 
hw-module maximum ipv4 routes 3000000

interface mgmt 0/fmc0/1                                                                    #конфигурация OOB интерфейса
  ipv4 address 172.61.0.40/24
  vrf mgmt-intf
exit

load-balancing hash-fields ip-dst                                                         #настройка параметров балансировки трафика в LAG и ECMP
load-balancing hash-fields ip-src
load-balancing hash-fields mac-dst
load-balancing hash-fields mac-src
load-balancing hash-fields mpls labels
load-balancing lag in-port                                                                #настройка параметров балансировки трафика в LAG 
load-balancing lag shift 5

logging console warning                                                                   #настройка параметров логирования событий в терминал консольного подключения
logging crash-info rotate 5                                                               #количество файлов crash-info, сохраняемых на устройстве
logging host 10.10.0.1 vrf default                                                        #Задание адреса сервера удаленного журналирования,  на который будут отправляться SYSLOG-сообщения 
exit
logging host 10.18.0.2 vrf default                                                        #Задание адреса сервера удаленного журналирования,  на который будут отправляться SYSLOG-сообщения 
exit
logging monitor crit                                                                      #настройка параметров логирования событий в терминал подключения ssh
logging rotate 20                                                                         #задание количества файлов, используемых системой журналирования устройства в процессе ротации файлов журнала


ntp vrf default                                                                           #конфигурация блока протокола ntp
  authentication-key 54
    md5 encrypted 92A0137EB50C5AFE7A3295EA4B
  exit
  server 10.10.0.1                                                                        #задание предпочтительного сервера ntp
    prefer
  exit
  server 10.18.0.2                                                                        #задание дублирующего сервера ntp 
  exit
  source-address 10.255.0.2
  trusted-key 54
exit
 
snmp server client-list ECCM                                                              #задание списка snmp клиентов 
  prefix 10.250.111.48/30
exit

snmp server vrf default                                                                   #Включение snmp сервера в GRT
  community label private                                                                 #Блок конфигурации snmp community
    client-list ECCM
    community-name encrypted 99B7006092BDA0516
    version v2c
  exit

ssh server vrf default                                                                    #включение ssh сервера в глобальной таблице маршрутизации
  session-limit 10                                                                        #максимальное количество пользователей, одновременно подключенных по ssh
exit
ssh server vrf mgmt-intf                                                                  #включение ssh сервера в vrf mgmt-intf
  session-limit 10                                                                        #максимальное количество пользователей, одновременно подключенных по ssh
exit

system subint-utilization                                                                 #включение подсчет загрузки сабинтерфейсов в реальном времени
system qos-utilization                                                                    #включение подсчет загрузки qos policy в реальном времени 

tacacs-server host 10.10.0.3 vrf default                                                  #настройка AAA-сервера и ключа авторизации. 
  password encrypted D57F198A443192BDA05165A92342C14D                                    
  source-address 10.255.0.1
exit
tacacs-server timeout 5

user duty
  password encrypted $6$UUu.QNtbUyclUa2E$mo5AbZ0wYI9PB6zGi..fUWRca.ye/PjUzvecdXV3dMMdKAmITQGsSpT1/g30f29x44p2ZGzIEvcbm9XgVM2Mv.
exit

user field
  password encrypted $6$YMHzbGnlFhVUreE3$2yjAHsTjX9JQgzUgTuzNGPhSAHdvnguHwxhQDuSY4gsWMc38NX2N2Owcui5sP8sJ0MCWbC0nl1gVqQfdyaSHp/
exit



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

В качестве интерконнектов используются физические интерфейсы. MTU физического интерфейса по умолчанию составляет 1522 байт, и этого может оказаться достаточно для передачи Ethetnet-кадров и двух меток MPLS в сервисе L3VPN, однако при использовании L2VPN-сервисов размер MTU потребуется увеличить. Мы рекомендуем увеличить MTU до 9600 байт, чего будет достаточно для любых сценариев использования.
 
В некоторых случаях может потребоваться организация составных логических интерфейсов LAG bundle-ether, объединяющих несколько физических интерфейсов посредством протокола LACP. Для быстрого детектирования отказов по конкретным линкам и минимизации потерь трафика на каждом bundle-ether интерфейсе конфигурируется Micro-BFD-сессия.

Рекомендуется применять bundle-ether тогда, когда это действительно необходимо. Несмотря на то, что интерфейсы bundle-ether являются полнофункциональными и поддерживают различные способы балансировки трафика, следует иметь в виду особенности работы QOS на данном типе интерфейсов.

На всех интерфейсах следует настроить задержку поднятия интерфейса во избежание ситуации, когда на нестабильном, флапающем интерфейсе пытаются подниматься протоколы маршрутизации и т.д., увеличивая нагрузку на устройство и в некоторых случаях вызывая ненужные переключения и потери трафика. Также желательно уменьшить интервал округления статистики на интерфейсах, чтобы более точно в режиме реального времени оценивать изменение трафика.

В предложенном примере интерфейс bundle-ether применяется между маршрутизаторами Core-R1 и Core-R2.

Кроме того, в этом блоке показана конфигурация интерфейса loopback, который будет использован далее в настройках.

 
Core-R1
interface loopback 0
  ipv4 address 10.255.0.1/32
exit
interface bundle-ether 2
  bfd address-family ipv4 fast-detect                                      #включение и настройка micro-bfd сессии 
  bfd address-family ipv4 local-address 10.255.0.33                        #включение и настройка micro-bfd сессии 
  bfd address-family ipv4 neighbor 10.255.0.34                             #включение и настройка micro-bfd сессии 
  bfd rx-interval 25                                                       #задание таймеров на micro-bfd сессии  
  bfd tx-interval 25                                                       #задание таймеров на micro-bfd сессии     
  description "To Core-R2"
  ip mtu 9200                                                              #задание ip mtu на интерфейсе 
  ipv4 address 10.255.0.33/30
  load-interval 20                                                         #конфигурирование интервала расчета загрузки на интерфейсе
  mtu 9600                                                                 #задание mtu на интерфейсе 
exit

interface tengigabitethernet 0/0/3
  description "To Aggr-R3"
  hold-time up 5000                                                        #конфигурирование задержки поднятия интерфейса 
  ip mtu 9200
  ipv4 address 10.255.0.53/30
  load-interval 20                                                         #конфигурирование интервала расчета загрузки на интерфейсе
  mtu 9600
exit

interface tengigabitethernet 0/0/4
  description "To Aggr-R4"
  hold-time up 5000
  ip mtu 9200
  ipv4 address 10.255.0.46/30
  load-interval 20
  mtu 9600
exit
Core-R2
interface loopback 0
  ipv4 address 10.255.0.2/32
exit
interface bundle-ether 1
  bfd address-family ipv4 fast-detect
  bfd address-family ipv4 local-address 10.255.0.34
  bfd address-family ipv4 neighbor 10.255.0.33
  bfd rx-interval 25
  bfd tx-interval 25
  description "To Core-R1"
  ip mtu 9200
  ipv4 address 10.255.0.34/30
  load-interval 20
  mtu 9600
exit

interface tengigabitethernet 0/0/3
  description "To Aggr-R3"
   hold-time up 5000 
  ip mtu 9200
  ipv4 address 10.255.0.37/30
  load-interval 20
  mtu 9600
exit

interface tengigabitethernet 0/0/4
  description "To Aggr-R3"
   hold-time up 5000 
  ip mtu 9200
  ipv4 address 10.255.0.49/30
  load-interval 20
  mtu 9600
exit
Aggr-R3
interface loopback 0
  ipv4 address 10.255.0.3/32
exit

interface tengigabitethernet 0/0/1
  description "To Core-R1"
  hold-time up 5000  
  ip mtu 9200
  ipv4 address 10.255.0.54/30
  load-interval 20
  mtu 9600
exit

interface tengigabitethernet 0/0/2
  description "To Core-R2"
  hold-time up 5000 
  ip mtu 9200
  ipv4 address 10.255.0.38/30
  load-interval 20
  mtu 9600
exit

interface tengigabitethernet 0/0/4
  description "To Aggr-R4"
  hold-time up 5000 
  ip mtu 9200
  ipv4 address 10.255.0.41/30
  load-interval 20
  mtu 9600
exit
Aggr-R4
interface loopback 0
  ipv4 address 10.255.0.4/32
exit

interface tengigabitethernet 0/0/1
  description "To Core-R1"
  hold-time up 5000 
  ip mtu 9200
  ipv4 address 10.255.0.45/30
  load-interval 20
  mtu 9600
exit
interface tengigabitethernet 0/0/2
  description "To Core-R2"
  hold-time up 5000 
  ip mtu 9200
  ipv4 address 10.255.0.50/30
  load-interval 20
  mtu 9600
exit

interface tengigabitethernet 0/0/3
  description "To Aggr-R3"
  hold-time up 5000 
  ip mtu 9200
  ipv4 address 10.255.0.42/30
  load-interval 20
  mtu 9600
exit

Настройка протокола LACP, добавление физических интерфейсов в bundle-ether и их настройка.


Core-R1
lacp
  interface bundle-ether 2                                              #Конфигурация составного интерфейса 
  exit
  interface tengigabitethernet 0/0/1                                    #Конфигурация интерфейса - участника LAG
    bundle id 2                                                         #Задание номера группы агрегации, в которую включен интерфейс 
    bundle mode active                                                  #Задание режима работы агрегирующего интерфейса
  exit
  interface tengigabitethernet 0/0/2
    bundle id 2
    bundle mode active
  exit
exit
Core-R2
lacp
  interface bundle-ether 1
  exit
  interface tengigabitethernet 0/0/1
    bundle id 1
    bundle mode active
  exit
  interface tengigabitethernet 0/0/2
    bundle id 1
    bundle mode active
  exit
exit

Настройка OSPF

В настоящее время OSPF обладает рядом преимуществ перед IS-IS, включая более простую и понятную архитектуру, особенно для администраторов, привыкших к IP-сетям, так как OSPF изначально разработан для IP и не требует настройки CLNS. Он поддерживает более гибкое разделение на области (areas), где все области должны быть подключены к backbone (Area 0), что упрощает проектирование иерархических сетей. Различные типы LSA OSPF обеспечивают более детализированный контроль над распространением маршрутной информации.

При конфигурации OSPF следует настроить параметры, отвечающие за быструю сходимость, защиту от микропетель, синхронизацию с протоколом LDP, построение альтернативного маршрута посредством технологии LFA FRR.

Core-R1
router ospfv2 1
  area 0.0.0.0                                                                    #Указание area. Для CORE сегмента используется area 0
    interface bundle-ether 2
      ldp-igp-synchronization hold-time 20                                        #включение механизма синхронизации между протоколами OSPFv2 и LDP и указание времени, на которое будет завышена метрика для интерфейса без LDP
      network point-to-point                                                      #указание типа интерфейса OSPF
      retransmit-interval 1                                                       #установка интервала пересылки полученного LSA другим соседям
    exit
    interface tengigabitethernet 0/0/3
      bfd fast-detect                                                             #включение механизма BFD для OSPF соседей на интерфейсе 
      ldp-igp-synchronization hold-time 20
      network point-to-point
      retransmit-interval 1
    exit
    interface tengigabitethernet 0/0/4
      bfd fast-detect
      ldp-igp-synchronization hold-time 20
      network point-to-point
      retransmit-interval 1
    exit
    interface loopback 1
      passive
    exit
  exit
  auto-cost reference-bandwidth 100000000                                         #увеличение референсного значения скорости интерфейса. позволяет более корректно учитывать скорость интерфейсов вплоть до 100G
  graceful-restart                                                                #включение поддержки механизма OSPF Graceful Restart
  lfa include-all                                                                 #включение возможности построения LFA маршрутов для всех интерфейсов, участвующих в OSPF
  microloop-avoidance rib-update-delay 100                                        #включение механизма защиты от микропетель при перестроениях и указание задержки обновления таблицы маршрутизации
  route-calculation max-delay 50                                                  #указание задержки пересчета таблицы маршрутизации при изменении базы данных OSPF LSDB
  router-id 10.255.0.1                                                            #задание router ID для данного OSPF процесса. исключает выборы router-id из существующих интерфейсов.
exit
Core-R2
router ospfv2 1
  area 0.0.0.0
    interface bundle-ether 1
      ldp-igp-synchronization hold-time 20
      network point-to-point
      retransmit-interval 1
    exit
    interface tengigabitethernet 0/0/3
      bfd fast-detect
      ldp-igp-synchronization hold-time 20
      network point-to-point
      retransmit-interval 1
    exit
    interface tengigabitethernet 0/0/4
      bfd fast-detect
      ldp-igp-synchronization hold-time 20
      network point-to-point
      retransmit-interval 1
    exit
    interface loopback 1
      hello-interval 10
      passive
    exit
  exit
  auto-cost reference-bandwidth 100000000
  graceful-restart
  lfa include-all
  microloop-avoidance rib-update-delay 100
  route-calculation max-delay 50
  router-id 10.255.0.2
exit
Core-R3
router ospfv2 1
  area 0.0.0.0
    interface tengigabitethernet 0/0/1
      bfd fast-detect
      ldp-igp-synchronization hold-time 20
      network point-to-point
      retransmit-interval 1
    exit
    interface tengigabitethernet 0/0/2
      bfd fast-detect
      ldp-igp-synchronization hold-time 20
      network point-to-point
      retransmit-interval 1
    exit
    interface tengigabitethernet 0/0/4
      bfd fast-detect
      ldp-igp-synchronization hold-time 20
      network point-to-point
      retransmit-interval 1
    exit
    interface loopback 1
      hello-interval 10
      passive
    exit
  exit
  auto-cost reference-bandwidth 100000000
  graceful-restart
  lfa include-all
  microloop-avoidance rib-update-delay 100
  route-calculation max-delay 50
  router-id 10.255.0.3
exit
Core-R4
router ospfv2 1
  area 0.0.0.0
    interface tengigabitethernet 0/0/1
      bfd fast-detect
      ldp-igp-synchronization hold-time 20
      network point-to-point
      retransmit-interval 1
    exit
    interface tengigabitethernet 0/0/2
      bfd fast-detect
      ldp-igp-synchronization hold-time 20
      network point-to-point
      retransmit-interval 1
    exit
    interface tengigabitethernet 0/0/3
      bfd fast-detect
      ldp-igp-synchronization hold-time 20
      network point-to-point
      retransmit-interval 1
    exit
    interface loopback 1
      hello-interval 10
      passive
    exit
  exit
  auto-cost reference-bandwidth 100000000
  graceful-restart
  lfa include-all
  microloop-avoidance rib-update-delay 100
  route-calculation max-delay 50
  router-id 10.255.0.4
exit

Настройка LDP

Для распространения транспортных меток в сети применяется протокол LDP. В сетях, состоящих из небольшого количества MPLS-маршрутизаторов, использование LDP выглядит предпочтительным, так как он не требует сложной настройки, что снижает затраты на администрирование и уменьшает вероятность ошибок. Кроме того, LDP легко интегрируется с существующими протоколами, такими как OSPF и BGP, а при использовании LFA FRR позволяет минимизировать время восстановления сервисов при выходе из строя линков или узлов сети.

Ниже пример конфигурации MPLS и LDP:

Core-R1
mpls
  forwarding                                                                           # в данном блоке указываются все интерфейсы, участвующие в обмене MPLS 
    interface bundle-ether 2                                                           # 
    interface tengigabitethernet 0/0/3                                                 # 
    interface tengigabitethernet 0/0/4                                                 # 
    interface loopback 1                                                               # В том числе интерфейс loopback 1, который будет являться FEC для построения LSP
  exit 
  ldp
    discovery interface bundle-ether 2                                                 # включение построение LDP-соседств на указанном интерфейсе
    exit
    discovery interface tengigabitethernet 0/0/3
    exit
    discovery interface tengigabitethernet 0/0/4
    exit
    graceful-restart enable                                                             # включает поддержку Graceful Restart для протокола LDP 
    graceful-restart forwarding-state-holdtime 140                                      # задание интервала, в течение которого устройство будет сохранять MPLS маршрутизацию после перезапуска LDP
    graceful-restart reconnect-timeout 90                                               # задание интервала, требуемого устройству на перезапуск LDP сервиса и анонсируемого как FT Reconnection Timeout
    reroute-optimization
  exit
  router-id 10.255.0.1                                                                  # указание значения атрибута LSR ID (Label Switching Router Identifier) для протокола LDP
  transport-address 10.255.0.1                                                          # указание IP адреса, используемого в качестве источника LDP Hello сообщений, для установления targeted LDP сессий
exit
Core-R2
mpls
  forwarding
    interface bundle-ether 1
    interface tengigabitethernet 0/0/3
    interface tengigabitethernet 0/0/4
    interface loopback 1
  exit
  ldp
    discovery interface bundle-ether 1
    exit
    discovery interface tengigabitethernet 0/0/3
    exit
    discovery interface tengigabitethernet 0/0/4
    exit
    graceful-restart enable
    graceful-restart forwarding-state-holdtime 140
    graceful-restart reconnect-timeout 90
    reroute-optimization
  exit
  router-id 10.255.0.2
  transport-address 10.255.0.2
exit
Core-R4
mpls
  forwarding
    interface tengigabitethernet 0/0/1
    interface tengigabitethernet 0/0/2
    interface tengigabitethernet 0/0/4
    interface loopback 1
  exit
  ldp
    discovery interface tengigabitethernet 0/0/1
    exit
    discovery interface tengigabitethernet 0/0/2
    exit
    discovery interface tengigabitethernet 0/0/4
    exit
    graceful-restart enable
    graceful-restart forwarding-state-holdtime 140
    graceful-restart reconnect-timeout 90
    reroute-optimization
  exit
  router-id 10.255.0.3
  transport-address 10.255.0.3
exit
Core-R4
mpls
  forwarding
    interface tengigabitethernet 0/0/1
    interface tengigabitethernet 0/0/2
    interface tengigabitethernet 0/0/3
    interface loopback 1
  exit
  ldp
    discovery interface tengigabitethernet 0/0/1
    exit
    discovery interface tengigabitethernet 0/0/2
    exit
    discovery interface tengigabitethernet 0/0/3
    exit
     graceful-restart enable
    graceful-restart forwarding-state-holdtime 140
    graceful-restart reconnect-timeout 90
    reroute-optimization 
  exit
  router-id 10.255.0.4
  transport-address 10.255.0.4
exit

Настройка iBGP

Для обмена маршрутами и построения сервисов в сети применяется протокол BGP с расширением MP-BGP. 
При организации BGP-связности внутри AS требуется обеспечить полную связность маршрутизаторов каждого с каждым. Во избежание излишнего количества BGP-соседств и упрощения конфигурации применяется механизм RR. Маршрутизаторы CORE в контексте iBGP выступают в роли RR. 


Для предоставления различных сервисов в сети потребуется использовать несколько семейств адресов. Минимальный типовой набор состоит из трех семейств:

L3VPN: AFI 1, SAFI 128

L2VPN: AFI 25, SAFI 65

MVPN: AFI 1, SAFI 129

Все используемые семейства адресов нужно явно указывать для каждого соседа.

Пример конфигурации iBGP:

Core-R1
router bgp 64499
  bgp router-id 10.255.0.1
  neighbor 10.255.0.2
    address-family ipv4 mvpn
    exit
    address-family l2vpn vpls
    exit
    address-family vpnv4 unicast
    exit
    remote-as 64499
    send-community
    send-community-ext
    update-source 10.255.0.1
  exit
  neighbor 10.255.0.3
    address-family ipv4 mvpn
    exit
    address-family l2vpn vpls
    exit
    address-family vpnv4 unicast
    exit
    route-reflector-client
    remote-as 64499
    send-community
    send-community-ext
    update-source 10.255.0.1
  exit
  neighbor 10.255.0.4
    address-family ipv4 mvpn
    exit
    address-family l2vpn vpls
    exit
    address-family vpnv4 unicast
    exit
    route-reflector-client 
    remote-as 64499
    send-community
    send-community-ext
    update-source 10.255.0.1
  exit
exit
Core-R2
router bgp 64499
  bgp router-id 10.255.0.2
  neighbor 10.255.0.1
    address-family ipv4 mvpn
    exit
    address-family l2vpn vpls
    exit
    address-family vpnv4 unicast
    exit
    remote-as 64499
    send-community
    send-community-ext
    update-source 10.255.0.2
  exit
  neighbor 10.255.0.3
    address-family ipv4 mvpn
    exit
    address-family l2vpn vpls
    exit
    address-family vpnv4 unicast
    exit
    route-reflector-client 
    remote-as 64499
    send-community
    send-community-ext
    update-source 10.255.0.2
  exit
  neighbor 10.255.0.4
    address-family ipv4 mvpn
    exit
    address-family l2vpn vpls
    exit
    address-family vpnv4 unicast
    exit
    route-reflector-client 
    remote-as 64499
    send-community
    send-community-ext
    update-source 10.255.0.2
  exit
exit
Core-R3
router bgp 64499
  address-family vpnv4 unicast
  exit
  bgp router-id 10.255.0.3
  neighbor 10.255.0.1
    address-family ipv4 mvpn
    exit
    address-family l2vpn vpls
    exit
    address-family vpnv4 unicast
    exit
    remote-as 64499
    send-community
    send-community-ext
    update-source 10.255.0.3
  exit
  neighbor 10.255.0.2
    address-family ipv4 mvpn
    exit
    address-family l2vpn vpls
    exit
    address-family vpnv4 unicast
    exit
    remote-as 64499
    send-community
    send-community-ext
    update-source 10.255.0.3
  exit
exit
Core-R4
router bgp 64499
  bgp router-id 10.255.0.4
  neighbor 10.255.0.1
    address-family ipv4 mvpn
    exit
    address-family l2vpn vpls
    exit
    address-family vpnv4 unicast
    exit
    remote-as 64499
    send-community
    send-community-ext
    update-source 10.255.0.4
  exit
  neighbor 10.255.0.2
    address-family ipv4 mvpn
    exit
    address-family l2vpn vpls
    exit
    address-family vpnv4 unicast
    exit
    remote-as 64499
    send-community
    send-community-ext
    update-source 10.255.0.4
  exit
exit
  • Нет меток