Basics of routing & switching: BGP
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,264
On Slideshare
1,264
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
40
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Basics of Switching & Routing Разработка: Владимир Литовка doka.ua@gmail.com http://doka-ua.blogspot.com/ Этот документ доступен по лицензии Creative Commons «Attribution-NonCommercial-ShareAlike» 3.0 Непортированная (http://creativecommons.org/licenses/by-nc-sa/3.0/deed.ru)Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 2. Содержание   Обзор технологий o  Модель OSI o  Ethernet   802.1q, 802.1ad   STP, RSTP, MSTP   Routing o  PPP / Radius o  Принципы   PPPoE / L2TP o  Static Routing o  TCP/IP o  Policy-based Routing   IP o  Dynamic Routing   QoS / Diffserv   RIP   TCP   OSPF   UDP, ICMP   IS-IS   BGPSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 3. Implementing Cisco IP RoutingSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 4. Маршрутизация в сетях IP  Маршрутизация – «построение карт и определение направлений»  Маршрутизация бывает: o  статическая   присоединенный маршрут   маршрутизация по адресу назначения   маршрутизация по параметрам входного трафика (policy-based routing, PBR) o  динамическая   по адресу назначения, с использованием протоколов динамической маршрутизацииSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 5. Принципы маршрутизации  Каждый узел принимает собственное решение о маршрутизации трафика  Каждому узлу не требуется знать весь маршрут до назначения o  определяется только следующий узел в пути (next-hop) o  процесс повторяется на каждом узле до достижения узла назначения  Для определения следующего узла используется таблица форвардингаSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 6. Принципы маршрутизации (ч.2)  Запись о маршруте состоит из: o  сетевого адреса / сетевой маски (префикс) o  адреса следующего узла (next-hop)  Маршруты с более длинной маской имеют более высокий приоритет при наличии записей 3.5.0.0/8 и 3.5.0.0/16 для доступа к 3.5.7.9 будет использована запись с маской /16  Маршрут «по умолчанию» o  используется, когда в таблице форвардинга нет записей, соответствующих узлу назначения o  описывается, как 0.0.0.0/0 (ever longest match) o  next-hop для 0/0 – «шлюз по умолчанию» (default gateway)Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 7. Форвардинг – не маршрутизация  Маршрутизация – построение карт o  каждый протокол маршрутизации формирует собственную таблицу маршрутизации o  протоколы маршрутизации формируют таблицу форвардинга  Форвардинг – пересылка пакета следующему узлу (next-hop device) o  таблица форвардинга содержит лучший маршрут для каждого префикса через определенный next-hop o  таблица форвардинга – одна   если используются MPLS VPN – то одна глобальная и по одной на каждый VPN  Тем не менее – Routing Table JSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 8. Статическая маршрутизация   Присоединенные маршруты o  Маршруты, которые определяются адресацией на интерфейсах   Статические маршруты по адресу назначения o  Ручная настройка o  Применимо в случае небольшого количества o  Не адаптируется к изменениям в сети o  Часто используется для определения маршрута по умолчаниюSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 9. “show ip route” RA1#show ip route Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, + - replicated route Gateway of last resort is 192.168.0.1 to network 0.0.0.0 S* 0.0.0.0/0 [1/0] via 192.168.0.1 Next-Hop 10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks C 10.2.0.0/30 is directly connected, Serial3/0 (следующий L 10.2.0.1/32 is directly connected, Serial3/0 транзитный узел) C 10.10.1.1/32 is directly connected, Loopback0 172.16.0.0/24 is subnetted, 1 subnets S 172.16.53.0 [150/0] via 10.2.0.2 192.168.0.0/24 is variably subnetted, 2 subnets, 2 masks C 192.168.0.0/24 is directly connected, FastEthernet0/0 L 192.168.0.2/32 is directly connected, FastEthernet0/0   Administrative Distance: [110/30] o  первое значение – административное расстояние протокола o  второе значение – метрика протоколаSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 10. Administrative Distance  Administrative Distance – нетранзитивный параметр, определяющий приоритет одного из нескольких маршрутов, полученных из разных протоколов Route Source Distance Connected 0 Route Source Distance Static 1 IS-IS 115 EIGRP Summary 5 RIP 120 eBGP 20 EGP 140 iEIGRP 90 On-Demand Routing 160 IGRP 100 eEIGRP 170 OSPF 110 iBGP 200 Unknown 255Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 11. Статическая маршрутизация interface FastEthernet0/0 192.168.0.0/24 is directly connected, ip address 192.168.0.2 255.255.255.0 FastEthernet0/0 end ! interface Serial3/0 10.2.0.0/30 is directly connected, ip address 10.2.0.1 255.255.255.252 Serial3/0 ! ip route 0.0.0.0 0.0.0.0 192.168.0.1 0.0.0.0/0 [1/0] via 192.168.0.1 ip route 172.16.53.0 255.255.255.0 10.2.0.2 150 172.16.53.0 [150/0] via 10.2.0.2   Administrative Distance   Может использоваться для приоритезации маршрутов, например: o  более высокий приоритет имеет маршрут, полученный динамически o  если он отсутствует, то включается статически сконфигурированный маршрутSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 12. Динамическая маршрутизация   Основана на протоколах маршрутизации Distance-Vector Protocols Link-State Protocols o  RIP / RIPv2 o  OSPF o  IGRP / EIGRP o  IS-IS o  BGP  Обмен информацией о доступности сетей Я знаю о сетях Я знаю о сетях “A”, “B” и “C” “X”, “Y” и “Z” A X B X, Y, Z -> 1.1.1.2 Y С A, B, C -> 1.1.1.1 Z 1.1.1.1 1.1.1.2Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 13. Протоколы маршрутизации Цели и задачи   Формирование оптимального пути   Формирование разомкнутой (loop free) топологии   Обеспечение быстрой сходимости   Минимальный объем служебного трафика   Масштабируемость   Легкость конфигурирования   Минимальный объем администрирования   Адаптивность к изменениям и расширениям   СовместимостьSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 14. Протоколы маршрутизации Distance-Vector Protocols   Distance – длина пути до точки назначения (метрика)   Длина пути – единственный критерий выбора пути   Управляется таймерами   Позволяет фильтровать базу маршрутов   Взаимодействие только между непосредственными соседями o  Устройство знает, откуда оно получило информацию o  Устройство не знает, откуда она взялась o  «Маршрутизация в соответствии со слухами» J 1 hop 2Mbps 1000 1000 Mbps Mbps 1000 Mbps 3 hopsSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 15. Протоколы маршрутизации Link-State Protocols   На всех узлах – синхронизированная база связей между всеми узлами сети и их состояний (Link-State Database)   Информация об изменениях рассылается по всем узлам (Link- State Advertisements)   Каждый узел строит собственное дерево маршрутов: o  относительно себя o  рассматривая себя корнем дерева   При расчете маршрута учитывается множество факторов 1 hop 2Mbps 1000 1000 Mbps Mbps 1000 Mbps 3 hopsSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 16. Взаимодействие процессов Процесс маршрутизации Таблица маршрутов, Таблица сформированная протокольным взаимодействием форвардинга 1.1.1.0/24 -> x.x.x.x 157.15.32.0/19 -> z.z.z.z Таблица маршрутов, сформированная заимствованием из других процессов 212.109.32.0/19, 62.64.64.0/18 34.5.7.0/24, 207.41.0.0/16 Процесс маршрутизации Таблица маршрутов, сформированная протокольным взаимодействием Статические маршруты 34.5.7.0/24 -> a.a.a.a 212.109.32.0/19 207.41.0.0/16 -> b.b.b.b Таблица маршрутов, сформированная заимствованием из других процессов Присоединенные маршруты 1.1.1.0/24, 157.15.32.0/19 62.64.64.0/18 212.109.32.0/19, 62.64.64.0/18Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 17. Border Gateway ProtocolSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 18. Border Gateway Protocol (BGP)  Используется для обмена информацией: o  между автономными системами (External BGP, eBGP) o  внутри автономной системы (Internal BGP, iBGP)  Управляется таймерами  Медленная сходимость  Хорошая масштабируемость o  поддержка BGP full view  Расширяемость o  Multi-Protocol BGP Extensions (MBGP) o  RFC 4271 http://www.ittc.ku.edu/EECS/EECS_800.ira/bgp_tutorial/Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 19. Autonomous System (AS)   Дополнительный уровень адресной иерархии   2- / 4-байтовый идентификатор   Используется для o  идентификации оператора в сети Internet o  группирования и идентификации адресных блоков оператора o  например   AS12530 •  Голден Телеком •  212.109.32.0/19, 62.64.64.0/18, …   AS35081 •  Билайн •  77.247.216.0/21, 193.239.128.0/23, …   Номера 64512-65535 для частного использованияSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 20. Autonomous Systems Path   12530: •  212.109.32.0/19 KDDI •  62.64.64.0/18 Билайн •  … AS2516   12530 35081: AS35081 •  77.247.216.0/21 •  193.239.128.0/23   1273 12530: C&W •  212.109.32.0/19 •  62.64.64.0/18 AS1273 •  …   1273 12530 35081: •  77.247.216.0/21 •  193.239.128.0/23   35081: •  77.247.216.0/21 •  193.239.128.0/23 Голден Телеком Level3 AS12530 AS3356   3356 12530   3356 12530 35081Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 21. Autonomous Systems Path (ч.2)   Одной из метрик BGP является длина ASPATH   Длина ASPATH – количество транзитных автономных систем   Чем короче путь, тем он лучше: o  3356 12530 35081 – best path o  286 3356 12530 35081 o  852 1239 3356 12530 35081   Длина ASPATH – не количество транзитных узлов o  количество транзитных узлов внутри одной автономной системы не учитываетсяSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 22. BGP: установление связей   TCP/179 сессия между двумя узлами •  Peer routers / neighbors   Инициализация (OPEN) •  определение функциональных возможностей каждой стороны (напр. поддержка 32-bit ASN, holddown timer, …)   Формирование таблицы префиксов (UPDATE) •  при каждом изменении таблицы меняется версия таблицы •  версия таблицы должна быть одинаковой на всех BGP peers   Два таймера: (*)   Другие сообщения o  Keepalive (60 сек) o  KEEPALIVE (п.4.4) o  Holddown (3x Keepalive) o  NOTIFICATION (п.4.5) (*) На самом деле их пять (RFC4271, п.10)Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 23. Таблицы BGP   Adj-RIB-in o  таблица маршрутов, полученная от соседей и ожидающая своей очереди для обработки в Decision Process   Loc-RIB o  сводная таблица, сформированная путем выполнения Decision Process над таблицей Adj-RIBs- in   Adj-RIB-out o  таблица маршрутов, предназначенных для анонсов соседям http://www.faqs.org/rfcs/rfc4271.html (п.3.2)Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 24. Таблицы BGP   Adj-RIBs-in   o  таблица маршрутов, полученная от соседей и Локальная таблица BGP формируется ожидающая своей очереди для обработки в Decision Processобразом, что для каждого префикса таким назначения сохраняется единственный   Loc-RIB (лучший) маршрут o  сводная таблица, сформированная путем   выполнения Decision Process над таблицей Adj-RIBs- in Нет никакого способа передать в AS100 маршруты, полученные от AS400, а   Adj-RIBs-out в AS200 – полученные от AS500 o  таблица маршрутов, предназначенных для анонсов соседям  Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 25. UPDATE message   Withdrawn routes Список префиксов, которые следует ликвидировать из таблицы   Path Attributes o  ORIGIN o  LOCAL_PREF o  AS_PATH o  ATOMIC_AGGREGATE o  NEXT_HOP o  AGGREGATOR o  MULTI_EXIT_DISC   Network Layer Reachability Information Список префиксов, обладающих одинаковыми атрибутами пути, которые следует добавить в таблицу http://www.faqs.org/rfcs/rfc4271.html (разделы 4.3, 5.1)Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 26. 4-byte ASN   Исчерпание 2-байтовых номеров AS   RFC 4893 / 5396   Запись o  ASPLAIN: 70000 o  ASDOT: 1.4464 (16bit . 16bit)   Совместимость со старыми системами o  Поддержка 4-байтовых ASN согласовывается при установлении сессии o  AS 23456 для связи с 32-битными ASN o  Новые атрибуты •  AS4_PATH •  AS4_AGGREGATOR http://www.nanog.org/meetings/nanog45/presentations/Tuesday/Hankins_4byteASN_N45.pdfSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 27. 4-byte ASN (ч.2) AS100 AS200 AS1.1 AS300 AS2.1 AS3.1 AS_PATH 100 200 23456 300 23456 23456 AS4_PATH 1.1 300 2.1 3.1 MERGED 100 200 1.1 300 2.1 3.1 Remote AS: 300 Remote AS: 23456 Remote AS: 3.1 AS1.1 AS300 AS2.1 AS3.1 Remote AS: 23456 Remote AS: 300 Remote AS: 2.1 http://www.cisco.com/en/US/prod/collateral/iosswrel/ps6537/ps6554/ps6599/4byte_asnios.pdfSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 28. iBGP versus eBGP AS10 Internal BGP (iBGP) AS100 AS1.1 AS3.1 External BGP (eBGP) Правило здравого смысла: iBGP сессии устанавливать между Loopback-интерфейсамиSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 29. Configuring BGP D0 A1 router bgp 100 network 10.10.100.0 mask 255.255.255.0 router bgp 1.1 neighbor 1.1.1.1 remote-as 23456 neighbor 1.1.1.2 remote-as 100 neighbor 2.2.0.1 remote-as 100 redistribute static neighbor 2.2.0.1 update-source Loopback0 neighbor 2.2.0.2 remote-as 100 D0#sh ip bgp sum neighbor 2.2.0.2 update-source Loopback0 [ … ] Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 1.1.1.1 4 23456 12 14 4 0 0 00:09:35 1 2.2.0.1 4 100 14 13 4 0 0 00:09:42 2 2.2.0.2 4 100 14 13 4 0 0 00:09:41 2 A1#sh ip bgp BGP table version is 4, local router ID is 2.2.1.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 10.10.1.0/24 0.0.0.0 0 32768 ? *> 10.10.3.0/24 1.1.1.2 0 100 3.1 i *> 10.10.100.0/24 1.1.1.2 0 100 i A1#sh ip bgp 10.10.3.0Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 30. Internal BGP   При получении анонсов от BGP-соседа из своей автономной системы, принимающий BGP-узел: o  не будет отправлять эту информацию соседям из своей автономной системы o  отправит эту информацию соседям из других автономных систем   Между всеми iBGP-узлами должны быть установлены BGP-связи   Тяжело масштабируется: o  N*(N-1)/2 связей AS100   Решение: o  Route Reflectors o  ConfederationsSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 31. Route Reflectors RR Раут-рефлекторы с резервированием AS100 Общий кластер клиентов Идентификатор кластера – Cluster-ID AS1.1 AS3.1 RR RR Cluster-ID “N” Раут-рефлекторы без AS100 резервирования AS1.1 AS3.1 RR Cluster-ID “N”Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 32. Configuring Route Reflectors A0 B0 B0 router bgp 100 bgp cluster-id 100 neighbor 2.2.0.1 remote-as 100 C0 D0 neighbor 2.2.0.1 update-source Loopback0 neighbor 2.2.0.3 remote-as 100 neighbor 2.2.0.3 update-source Loopback0 A0 neighbor 2.2.0.3 route-reflector-client router bgp 100 neighbor 2.2.0.4 remote-as 100 bgp cluster-id 100 neighbor 2.2.0.4 update-source Loopback0 neighbor 2.2.0.2 remote-as 100 neighbor 2.2.0.4 route-reflector-client neighbor 2.2.0.2 update-source Loopback0 neighbor 2.2.0.3 remote-as 100 neighbor 2.2.0.3 update-source Loopback0 neighbor 2.2.0.3 route-reflector-client Идентификатор кластера, neighbor 2.2.0.4 remote-as 100 одинаковый на обоих раут- neighbor 2.2.0.4 update-source Loopback0 рефлекторах neighbor 2.2.0.4 route-reflector-clientSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 33. Avoiding Route Loops with RRs   Originator-ID •  атрибут, сопровождающий префикс в рамках локальной автономной системы •  заполняется раут-рефлектором при получении префикса от клиента   Cluster-ID •  идентификатор RR-кластера •  добавляется в атрибут Cluster-List – список транзитных RR- кластеров Если во входящем префиксе: Originator-ID совпадает с BGP Router ID или Cluster-ID уже содержится в Cluster List, префикс игнорируетсяSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 34. Confederations router bgp 65500 bgp confederation identifier 3.1 AS 65500 bgp confederation peers 65501 65502 AS 65501 AS100 AS 65502 AS3.1 Меньшая масштабируемость, относительно высокая AS1.1 сложность http://www.ittc.ku.edu/EECS/EECS_800.ira/bgp_tutorial/16.html#A23.0Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 35. BGP to IGP Synchronization 10.10.100.0/24 AS3.1 B3 X3 A3 AS8.1 2 X AS100 10.10.100.0/24 10.10.100.0/24 1 При обеспечении транзита для чужих AS, граничные узлы не должны анонсировать префиксы, пока не получат их по IGP, например:   B3 не должен анонсировать префиксы, приходящие со стороны AS100, в AS8.1, пока не получит их через IGP   синхронизация – выключена по умолчаниюSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 36. BGP / IGP Routing Preference IGP AS8.1 10.10.100.0/24 AS100 eBGP eBGP B3 X3 A3 AS3.1   eBGP обладает меньшим administrative distance, чем любой IGP (20 < 110)   маршрут из AS8.1 в AS100 через AS3.1   два способа решения o  изменить глобальные параметры admin distance для BGP o  использовать BGP backdoorSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 37. Configuring BGP / IGP Interaction IGP AS8.1 10.10.100.0/24 AS100 eBGP eBGP B3 X3 A3 router ospf 10 AS3.1 network 10.10.100.0 0.0.0.255 area 3 network z.z.z.z 0.0.0.3 area 3 ! router bgp 100 router ospf 81 network 10.10.100.0 mask 255.255.255.0 network z.z.z.z 0.0.0.3 area 3 neighbor y.y.y.1 remote-as 3.1 ! router bgp 8.1 network 10.10.100.0 mask 255.255.255.0 backdoor B3 router bgp 3.1 neighbor x.x.x.1 remote-as 3.1 synchronization ! neighbor x.x.x.2 remote-as 8.1 ! или ! distance bgp <ext.cost> <int.cost> <loc.cost> Note: на A3 синхронизация тоже должна быть включенаSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 38. External BGP Multihop AS200   Значение TTL на External BGP сессиях, по умолчанию, AS100 устанавливается равным 1   Если нет непосредственной связности, требуется явное указание об увеличении TTL: router bgp 100 neighbor x.x.x.x remote-as 200 neighbor x.x.x.x ebgp-multihop   Транзитные маршрутизаторы должны знать о маршрутах eBGP Load Balancing example: http://www.ittc.ku.edu/EECS/EECS_800.ira/bgp_tutorial/13.html#A5.1Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 39. BGP Aggregation 10.10.8.0/24 10.10.100.0/24   Агрегирование aggregate <network> <mask> [ … ] AS100 AS200   Опции •  summary-only •  suppress-map AS300 10.10.0.0/16 AS400 •  attribute-map •  as-set R300(config-router)#aggregate 10.10.0.0 255.255.0.0 as-set R400#show ip bgp BGP table version is 2, local router ID is 4.4.4.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 10.10.0.0/16 4.4.4.1 0 300 {200,100} iSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 40. Атрибут префиксов: AS Path   Атрибут AS_PATH (в сообщении UPDATE) – цепочка из AS Path сегментов   Два типа сегментов: o  AS_SEQUENCE – упорядоченный список ASN, через которые анонсируемый префикс прошел o  AS_SET – неупорядоченный список ASN, через которые анонсируемый префикс прошел   Если AS_PATH пустой – создается AS_SEQ   AS_SET возникает в случае агрегацииSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 41. Манипуляции с AS Path   AS Path нельзя укоротить   AS Path можно искусственно удлинить AS100 AS200 AS300 AS400 AS500 Два варианта пути:   (500, 400) – этот короче   (200, 300, 400) R100 router bgp 100 neighbor x.x.x.x remote-as 500 Два варианта пути: neighbor x.x.x.x route-map ASPREP in   (500, 500, 500, 400) !   (200, 300, 400) – этот короче route-map ASPREP permit 5 set as-path prepend last-as 2Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 42. Атрибут префиксов: Origin   Обязательное поле, указывающее на источник появления префикса   Три источника: o  префикс является внутренним для автономной системы, означается как “i” в таблице BGP •  network •  redistribution from IGP o  префикс является внешним по отношению к автономной системе, означается как “e” •  Exterior Gateway Protocol (EGP) o  происхождение префикса неизвестно, означается символом “?” (INCOMPLETE) •  redistribute staticSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 43. Атрибут префиксов: Next Hop   Адрес, который используется как шлюз для доставки трафика к анонсируемому префиксу   Для eBGP – полученный от eBGP neighbor   Для iBGP: o  для внешних префиксов: тот адрес, который был получен по eBGP o  для внутренних префиксов: BGP Router ID   Для размещения префикса в таблице форвардинга, путь до next-hop должен быть известенSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 44. Манипуляции с next-hop (ч.1) R100#show ip bgp [ … ] Network Next Hop Metric LocPrf Weight Path *> 172.16.53.0/24 10.10.1.3 0 300 i AS100 eBGP 10.10.1.1 10.10.1.2 10.10.1.3 IGP 172.16.53.0/24 AS300 R300(router-config)#neighbor 10.10.1.1 next-hop-self R300(router-config)#^Z R100#show ip bgp [ … ] Network Next Hop Metric LocPrf Weight Path *> 172.16.53.0/24 10.10.1.2 0 300 iSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 45. Манипуляции с next-hop (ч.2) AS100 AS200 eBGP eBGP Если нужно разнести функции 10.10.1.1 10.10.1.4 BGP и форвардинга трафика 10.10.1.2 10.10.1.3 между разными 172.16.53.0/24 устройствами, … AS300 … например, у R300 недостаточно мощности для пропуска трафика, но достаточно – для обработки нескольких BGP full view: R300(router-config)#neighbor 10.10.1.1 route-map SETNEXTHOP out R300(router-config)#neighbor 10.10.1.4 route-map SETNEXTHOP out route-map SETNEXTHOP permit 5 set next-hop 10.10.1.3Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 46. Атрибут: Local Preference   Приоритет внешних префиксов внутри AS   Действует в пределах AS   Чем выше величина – тем выше приоритет   Значение по умолчанию - 100 172.16.53.0/24 AS100 AS9.1 router bgp 3.1 AS8.1 bgp default local-preference <N> или B3 A3 route-map SETLOCPREF permit 5 match … AS3.1 set local-preference <N> X3Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 47. Multi-Exit Discriminator (MED)   Информирование соседних AS о желательных маршрутах для доступа внутрь данной AS   Попадая в автономную систему снаружи, не покидает ее пределов (сбрасывается в 0)   Чем ниже величина – тем выше приоритет   Значение по умолчанию – 0 (не учитывать) AS8.1 AS200 Metric=20   Путь из AS8.1 в AS3.1 будет выбран через X3 Metric=100 Metric=50   «bgp always-compare-med» на AS8.1 для активации маршрута B3 X3 A3 AS3.1 через AS200 http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a0080094925.shtmlSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 48. Атрибут префиксов: Weight(*)   Приоритет префиксов в пределах маршрутизатора (диапазон 0 – 65535)   Чем выше величина – тем выше приоритет   Значение по умолчанию – 32768 172.16.53.0/24 AS100 AS9.1 router bgp 3.1 AS8.1 neighbor x.x.x.x weight <N> или neighbor x.x.x.x filter-list <ACL> weight <N> или route-map SETWEIGHT permit 5 match … Weight is AS3.1 set weight <N> Weight is 45000 55000 (*) Расширение Cisco, в стандарте отсутствуетSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 49. BGP Path Selection 1.  If Next-Hop is inaccessible, drop this update 2.  Prefer the largest Weight 3.  If same Weight, prefer largest Local Preference 4.  If same Local Preference, prefer the route that was originated by BGP, running on this router 5.  If no route was originated prefer the shorter AS path 6.  If all paths are external, prefer the lowest origin code   IGP < EGP < INCOMPLETE 7.  If origin codes are the same, prefer the path with the lowest MED 8.  If paths have the same MED, prefer External path over Internal 9.  If IGP synchronization is disabled and only internal path remain, prefer the path through the closest IGP neighbor 10.  Prefer the route with the lowest BGP Router IDSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 50. BGP Community   Транзитивный атрибут без границ   32 бита (0 – 4,294,967,200)   Принятая нотация – ASN:value A0(config)#ip bgp-community new-format   Well-know communities: •  no-export •  no-advertise •  local-as   Идентификатор префиксов •  используется для единообразной обработки префиксов в операторской сети   По умолчанию не пересылается соседям neighbor x.x.x.x send-communitySwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 51. Route-map   neighbor x.x.x.x route-map <rName-in> in   neighbor x.x.x.x route-map <rName-out> out Match clause Set clause o  match as-path o  set as-path o  match community o  set community o  match interface o  set comm-list delete o  match ip address o  set dampening o  match ip next-hop o  set next-hop o  match ip route-source o  set origin o  match metric o  set weight o  match route-type o  set local-preference o  match tag o  set metric / set metric-type o  set tag http://www.cisco.com/en/US/docs/ios/iproute_bgp/command/reference/irg_book.htmlSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 52. BGP Route Filtering   Route Filtering neighbor x.x.x.x distribute-list <ACL> {in | out} ! ip access-list extended AS12530-netin permit ip host 212.109.32.0 host 255.255.224.0 permit ip host 62.64.64.0 host 255.255.192.0 [ … ] deny ip any any   Обратить внимание •  access-list 1 permit 10.10.0.0 0.0.255.255 не точное соответствие, позволяет подсети <IP> <IP don’t care bits> <Mask> <Mask don’t care bits> •  access-list 100 permit 10.10.0.0 0.0.255.255 255.255.0.0 0.0.255.255 •  permit ip host <Network address> host <Network Mask>Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 53. BGP Prefix Filtering   Prefix Filtering neighbor x.x.x.x prefix-list <ACL> {in | out} ! ip prefix-list AS12530-netin seq 5 permit 212.109.32.0/19 ip prefix-list AS12530-netin seq 7 permit 62.64.64.0/18 [ … ]   Обратить внимание o  ip prefix-list [ … ] net/masklen ge <GN> le <LN> •  masklen < GN <= LN •  выбирать те префиксы, которые попадают в диапазон net/ masklen и у которых длина маски находится между GN и LN •  например, 212.109.32.0/19 ge 24 le 24 выберет (в том числе) 212.109.33.0/24Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 54. BGP Path Filtering   Path Filtering neighbor x.x.x.x filter-list <ACL> {in | out} ! ip as-path access-list 1 deny ^200$ ip as-path access-list 1 permit any   Регулярные выражения (AS Regexp) http://www.ipbalance.com/routing/bgp/bgp-regular-expression.html http://showipbgp.com/bgp-tools/bgp-regular-expression.html   Пример регулярного выражения A1#sh ip bgp regexp _3.1$ BGP table version is 8, local router ID is 2.2.1.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 10.10.3.0/24 1.1.1.2 0 100 3.1 iSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 55. BGP Community Filtering   Community Filtering neighbor x.x.x.x route-map <rName-out> out ! ip access-list extended NoExportNets permit ip host 212.109.32.0 host 255.255.224.0 permit ip host 62.64.64.0 host 255.255.192.0 deny ip any any ! route-map <rName-out> permit 5 match ip address NoExportNets set community no-export [additive]Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 56. BGP Dampening   Исключение префиксов из таблицы при «хлопании» маршрутов o  eBGP peer down/up – не хлопок o  BGP withdraw/update – хлопок o  изменение атрибутов префикса - хлопок   Каждый хлопок увеличивает штраф (penalty, на 1000); при достижении порога анонсы префикса прекращаются  Отсутствие хлопков – постепенное снижение пенальти до возобновления анонсовSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 57. Configuring BGP Dampening A0(config-router)#bgp dampening 15 750 3000 60 max-suppress-time: максимальное время, в течение которого префикс не half-life time: если в течение этого будет анонсироваться времени не происходит «хлопка», штраф уменьшается вдвое, минуты reuse: при снижении штрафа ниже этой suppress: при увеличении штрафа выше величины префикс начинает этой величины префикс перестает анонсироваться анонсироваться   BGP Dampening признан плохой практикой(*) и его глобальное использование не рекомендуется   Можно уменьшить регион применения, например, Украиной: router bgp 100 bgp dampening route-map UAnet-damp ! route-map UAnet-damp permit 5 match [ … ] set dampening 15 750 3000 60 (*) http://www.ripe.net/ripe/docs/ripe-378.htmlSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 58. Originating routes   network <netaddress> mask <netmask> o  указывает сеть, которая будет анонсироваться этим маршрутизатором o  должна быть известна маршрутизатору как подключенная, статическая или динамическая router bgp 12530 network 212.109.32.0 mask 255.255.224.0 [ … ] ! ip route 212.109.32.0 255.255.224.0 Null 0 250   redistribute [source] […] o  заимствование сетей из других протоколов маршрутизации, а также статических и подключенных o  исключительно нежелательный и опасный способ o  всегда пользоваться командой “network”Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 59. BGP Scaling & Performance   Scalability o  Dynamic Reconfiguration o  Peer Groups o  Route Reflectors   Performance o  Next-Hop Tracking o  MTU adjusting http://blog.ine.com/2010/11/22/understanding-bgp-convergence/Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 60. Dynamic Reconfiguration   Любое изменение политики требует рестарта сессии, поскольку маршрутизатор не сохраняет префиксы, которые запрещены   Два решения: o  soft-reconfiguration •  сохраняет полную таблицу полученных префиксов •  neighbor x.x.x.x soft-reconfiguration inboud •  clear ip bgp neigh x.x.x.x soft in o  route refresh capability (RFC 2918) •  запрос на пересылку Adj-RIB-out •  check “show ip bgp neighbor x.x.x.x” for “Neighbor capabilities” •  clear ip bgp neighbor x.x.x.x in Только если не поддерживается Route-Refresh, использовать Soft ReconfigurationSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 61. Peer groups Группирование BGP-соседей с одинаковой исходящей политикой(*) для:   упрощения и уменьшения вероятности ошибок конфигурации   уменьшения использования системных ресурсов (CPU, память) изменение таблицы приводит к одному апдейту на группу, вместо нескольких одинаковых апдейтов для каждого соседа Входящие политики могут быть разными (*) кроме default-originate http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a0080093fb7.shtmlSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 62. Configuring Peer Groups router bgp 100 neighbor ibgp-peer peer-group neighbor ibgp-peer remote-as 100 neighbor ibgp-peer send-comuunity neighbor ibgp-peer update-source Loopback 0 neighbor ebgp-peer peer-group neighbor ebgp-peer send-community neighbor ebgp-peer route-map rOUTcomm out ! neighbor 2.2.0.2 peer-group ibgp-peer neighbor 2.2.0.3 peer-group ibgp-peer neighbor 2.2.0.3 peer-group ibgp-peer neighbor 2.2.0.3 route-map rINmap in neighbor 1.1.1.1 remote-as 200 neighbor 1.1.1.1 peer-group ebgp-peer neighbor 1.1.3.1 remote-as 300 neighbor 1.1.3.1 peer-group ebgp-peer neighbor 1.1.3.1 default-originateSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 63. Next-Hop Tracking   Контроль next hop в таблице форвардинга o  деактивация сессии не по таймерам, а по факту исчезновения next hop o  включен по умолчанию o  A0(config-router)# [no] bgp nexthop trigger …   Контроль состояния интерфейса o  предназначен для контроля eBGP сессий o  мониторит состояние интерфейса или наличие next hop (в случае eBGP multihop) o  включен по умолчанию o  A0(config-router)# [no] bgp fast-external-falloverSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 64. TCP session adjustment   Path MTU Discovery o  RFC 1191 o  определение максимального MTU между устройствами o  вычисление максимального MSS (Maximum Segment Size) o  включен по умолчанию o  per-process / per-neighbor A0(config-router)# [no] bgp transport path-mtu-discovery A0(config-router)# [no] neighbor x.x.x.x transport path-mtu-discoverySwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 65. BGP Best Practices (ч.1)   Loopback на iBGP сессиях   Next-hop-self на граничных маршрутизаторах чтобы не анонсировать в IGP адреса внешнего линка   BGP Security neighbor x.x.x.x ttl-security hops <N> neighbor x.x.x.x password <password>   No Redistribution только команда “network / mask”   Aggregation агрегация в соответствии с выданным блоком адресовSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 66. BGP Best Practices (ч.2)   Внедрение Route-Reflectors   Использование Peer Groups   AS_Path length •  средняя длина пути на сейчас – 5-6 систем •  максимальная – до 15-16 систем •  разумный лимит на длину AS Path – 20 •  A0(config-router)#bgp maxas-limit 20 желательно использовать на внешних соединениях   Prefix count •  размер BGP full view + 5-10% •  A0(config-router)#neighbor x.x.x.x maximum-prefix 300000 желательно использовать на внешних соединенияхSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 67. BGP Best Practices (ч.3)   Анонсирование префиксов по принципу «запрещено все, что не разрешено»   Использование BGP communities для регулирования анонсов   На каждом BGP peer – route-map in / out   in – установить communities, соответствующие данному включению (обязательно)   out - анонсировать только те префиксы, которые разрешены на данном включении (обязательно – на внешних включениях) http://www.cisco.com/en/US/tech/tk365/technologies_configuration_example09186a00801475b2.shtmlSwitching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 68. BGP Best Practices (ч.3.1) Пример из жизни AS12530 (*) remarks: The only communities which are accepted from GTU customers remarks: are 12530:5xxxx, 12530:70, 12530:90, 12530:75 and no-export. remarks: The other 12530:* communities will be stripped at ingress. remarks: ------------------------------------------------------ remarks: Prepend/supression community attribute values remarks: remarks: These communities can be set by GTU customers for supressing remarks: advertisement or lengthening AS-path of announcements. remarks: remarks: Format: 12530:5PPPA remarks: PPP - peer code (see above) remarks: supported peer codes for prepend/suppression remarks: communities - 100, 200, 3xx (all), 900 remarks: A - action code remarks: 0 - do not advertise remarks: 1 - prepend AS12530 1 time remarks: 2 - prepend AS12530 2 times remarks: 4 - prepend AS12530 4 times remarks: 6 - prepend AS12530 6 times remarks: remarks: Examples: remarks: 12530:51000 - do not advertise to international peers remarks: 12530:53012 - prepend AS12530 2 times when advertising to UA-IX (*) whois AS12530Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 69. BGP Best Practices (ч.4)   Анонсы от клиентов / партнеров должны фильтроваться   Prefix или Route Filtering   Использование Path Filtering не является хорошей практикой и не рекомендуется   Строить фильтры на основе RIPE Database   Использование инструментария (IRRToolSet(1), BGPQ(2)) для формирования фильтров (1)  http://www.isc.org/software/irrtoolset (2)  http://www.lexa.ru/snar/bgpq.html (ПО давно не обновляется, возможно – устарело)Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 70. Топология лаборатории AS101 AS102 A1 A2 101.0.0.0/8 102.0.0.0/8 A0 B0 0/0 X0 100.0.0.0/8 AS100 C0 D0 A3 A4 AS103 AS104 103.0.0.0/8 104.0.0.0/8Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
  • 71. End of 3 rd Day Happy configuring! Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)