Basics of routing & switching: BGP

71
(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102 Разработка: Владимир Литовка [email protected] http://doka-ua.blogspot.com/ Basics of Switching & Routing Этот документ доступен по лицензии Creative Commons «Attribution-NonCommercial-ShareAlike» 3.0 Непортированная (http://creativecommons.org/licenses/by-nc-sa/3.0/deed.ru)

description

 

Transcript of Basics of routing & switching: BGP

Page 1: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Разработка: Владимир Литовка [email protected] http://doka-ua.blogspot.com/

Basics of Switching & Routing

Этот документ доступен по лицензии Creative Commons «Attribution-NonCommercial-ShareAlike» 3.0 Непортированная

(http://creativecommons.org/licenses/by-nc-sa/3.0/deed.ru)

Page 2: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Содержание

  Обзор технологий o  Модель OSI o  Ethernet

  802.1q, 802.1ad   STP, RSTP, MSTP

o  PPP / Radius   PPPoE / L2TP

o  TCP/IP   IP   QoS / Diffserv   TCP   UDP, ICMP

  Routing o  Принципы o  Static Routing o  Policy-based Routing o  Dynamic Routing

  RIP   OSPF   IS-IS   BGP

Page 3: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Implementing

Cisco

IP Routing

Page 4: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Маршрутизация в сетях IP

 Маршрутизация – «построение карт и определение направлений»

 Маршрутизация бывает: o  статическая

  присоединенный маршрут   маршрутизация по адресу назначения   маршрутизация по параметрам входного трафика (policy-based routing, PBR)

o  динамическая   по адресу назначения, с использованием протоколов динамической маршрутизации

Page 5: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Принципы маршрутизации

 Каждый узел принимает собственное решение о маршрутизации трафика

 Каждому узлу не требуется знать весь маршрут до назначения o  определяется только следующий узел в пути

(next-hop) o  процесс повторяется на каждом узле до достижения узла назначения

 Для определения следующего узла используется таблица форвардинга

Page 6: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Принципы маршрутизации (ч.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)

Page 7: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Форвардинг – не маршрутизация

 Маршрутизация – построение карт o  каждый протокол маршрутизации формирует собственную таблицу маршрутизации

o  протоколы маршрутизации формируют таблицу форвардинга

 Форвардинг – пересылка пакета следующему узлу (next-hop device) o  таблица форвардинга содержит лучший маршрут для каждого префикса через определенный next-hop

o  таблица форвардинга – одна   если используются MPLS VPN – то одна глобальная и по одной на

каждый VPN

 Тем не менее – Routing Table J

Page 8: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Статическая маршрутизация

  Присоединенные маршруты o  Маршруты, которые определяются адресацией на интерфейсах

  Статические маршруты по адресу назначения o  Ручная настройка o  Применимо в случае небольшого количества o  Не адаптируется к изменениям в сети o  Часто используется для определения маршрута по умолчанию

Page 9: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

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 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

“show ip route”

Next-Hop (следующий

транзитный узел)

  Administrative Distance: [110/30] o  первое значение – административное расстояние протокола o  второе значение – метрика протокола

Page 10: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Administrative Distance

 Administrative Distance – нетранзитивный параметр, определяющий приоритет одного из нескольких маршрутов, полученных из разных протоколов

Route Source Distance Connected 0

Static 1

EIGRP Summary 5

eBGP 20

iEIGRP 90

IGRP 100

OSPF 110

Route Source Distance IS-IS 115

RIP 120

EGP 140

On-Demand Routing 160

eEIGRP 170

iBGP 200

Unknown 255

Page 11: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

interface FastEthernet0/0 ip address 192.168.0.2 255.255.255.0 end ! interface Serial3/0 ip address 10.2.0.1 255.255.255.252 ! ip route 0.0.0.0 0.0.0.0 192.168.0.1 ip route 172.16.53.0 255.255.255.0 10.2.0.2 150

0.0.0.0/0 [1/0] via 192.168.0.1 172.16.53.0 [150/0] via 10.2.0.2

10.2.0.0/30 is directly connected, Serial3/0

192.168.0.0/24 is directly connected, FastEthernet0/0

  Administrative Distance   Может использоваться для приоритезации маршрутов, например:

o  более высокий приоритет имеет маршрут, полученный динамически o  если он отсутствует, то включается статически сконфигурированный маршрут

Статическая маршрутизация

Page 12: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Динамическая маршрутизация

  Основана на протоколах маршрутизации

 Обмен информацией о доступности сетей

A

B

С

X

Y

Z

Я знаю о сетях “A”, “B” и “C”

Я знаю о сетях “X”, “Y” и “Z”

1.1.1.2 1.1.1.1

X, Y, Z -> 1.1.1.2

A, B, C -> 1.1.1.1

Distance-Vector Protocols Link-State Protocols o  RIP / RIPv2 o  IGRP / EIGRP o  BGP

o  OSPF o  IS-IS

Page 13: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Протоколы маршрутизации

Цели и задачи

 Формирование оптимального пути  Формирование разомкнутой (loop free) топологии  Обеспечение быстрой сходимости  Минимальный объем служебного трафика  Масштабируемость   Легкость конфигурирования  Минимальный объем администрирования   Адаптивность к изменениям и расширениям  Совместимость

Page 14: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Протоколы маршрутизации

Distance-Vector Protocols

  Distance – длина пути до точки назначения (метрика)   Длина пути – единственный критерий выбора пути   Управляется таймерами   Позволяет фильтровать базу маршрутов   Взаимодействие только между непосредственными соседями

o  Устройство знает, откуда оно получило информацию o  Устройство не знает, откуда она взялась o  «Маршрутизация в соответствии со слухами» J

1000 Mbps

1000 Mbps

1000 Mbps

2Mbps

1 hop

3 hops

Page 15: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Протоколы маршрутизации

Link-State Protocols

  На всех узлах – синхронизированная база связей между всеми узлами сети и их состояний (Link-State Database)

  Информация об изменениях рассылается по всем узлам (Link-State Advertisements)

  Каждый узел строит собственное дерево маршрутов: o  относительно себя o  рассматривая себя корнем дерева

  При расчете маршрута учитывается множество факторов

1000 Mbps

1000 Mbps

1000 Mbps

2Mbps

1 hop

3 hops

Page 16: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Взаимодействие процессов

Процесс маршрутизации

Таблица маршрутов, сформированная протокольным

взаимодействием 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

207.41.0.0/16 -> b.b.b.b

Таблица маршрутов, сформированная заимствованием из

других процессов 1.1.1.0/24, 157.15.32.0/19

212.109.32.0/19, 62.64.64.0/18

Статические маршруты

212.109.32.0/19

Присоединенные маршруты

62.64.64.0/18

Таблица форвардинга

Page 17: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Border Gateway Protocol

Page 18: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

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/

Page 19: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

 Дополнительный уровень адресной иерархии   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 для частного использования

Autonomous System (AS)

Page 20: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Autonomous Systems Path

AS12530

AS1273

AS3356

AS35081

  35081: •  77.247.216.0/21 •  193.239.128.0/23

  12530: •  212.109.32.0/19 •  62.64.64.0/18 •  …   12530 35081: •  77.247.216.0/21 •  193.239.128.0/23

AS2516

  1273 12530: •  212.109.32.0/19 •  62.64.64.0/18 •  …   1273 12530 35081: •  77.247.216.0/21 •  193.239.128.0/23

  3356 12530   3356 12530 35081

Билайн

Голден Телеком

C&W

KDDI

Level3

Page 21: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

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  количество транзитных узлов внутри одной автономной системы не учитывается

Page 22: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

BGP: установление связей

  TCP/179 сессия между двумя узлами •  Peer routers / neighbors

  Инициализация (OPEN) •  определение функциональных возможностей каждой стороны (напр. поддержка 32-bit ASN, holddown timer, …)

  Формирование таблицы префиксов (UPDATE) •  при каждом изменении таблицы меняется версия таблицы •  версия таблицы должна быть одинаковой на всех BGP peers

  Два таймера: (*) o  Keepalive (60 сек) o  Holddown (3x Keepalive)

  Другие сообщения o  KEEPALIVE (п.4.4) o  NOTIFICATION (п.4.5)

(*) На самом деле их пять (RFC4271, п.10)

Page 23: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Таблицы 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)

Page 24: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Таблицы BGP

  Adj-RIBs-in o  таблица маршрутов, полученная от соседей и ожидающая своей очереди для обработки в Decision Process

  Loc-RIB o  сводная таблица, сформированная путем выполнения Decision Process над таблицей Adj-RIBs-in

  Adj-RIBs-out o  таблица маршрутов, предназначенных для анонсов соседям

  Локальная таблица BGP формируется

таким образом, что для каждого префикса назначения сохраняется единственный

(лучший) маршрут  

Нет никакого способа передать в AS100 маршруты, полученные от AS400, а

в AS200 – полученные от AS500  

Page 25: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

  Withdrawn routes Список префиксов, которые следует ликвидировать из таблицы

  Path Attributes

  Network Layer Reachability Information

Список префиксов, обладающих одинаковыми атрибутами пути, которые следует добавить в таблицу

o  ORIGIN o  AS_PATH o  NEXT_HOP o  MULTI_EXIT_DISC

o  LOCAL_PREF o  ATOMIC_AGGREGATE o  AGGREGATOR

http://www.faqs.org/rfcs/rfc4271.html (разделы 4.3, 5.1)

UPDATE message

Page 26: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

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.pdf

Page 27: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

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

AS300 AS2.1 AS1.1

Remote AS: 300

AS3.1

Remote AS: 23456 Remote AS: 3.1

Remote AS: 2.1 Remote AS: 300 Remote AS: 23456

http://www.cisco.com/en/US/prod/collateral/iosswrel/ps6537/ps6554/ps6599/4byte_asnios.pdf

Page 28: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

iBGP versus eBGP

AS100

AS3.1 AS1.1

External BGP (eBGP)

Internal BGP (iBGP)

AS10

Правило здравого смысла: iBGP сессии устанавливать между Loopback-интерфейсами

Page 29: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Configuring BGP

D0#sh ip bgp sum [ … ] 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.0

router bgp 100 network 10.10.100.0 mask 255.255.255.0 neighbor 1.1.1.1 remote-as 23456 neighbor 2.2.0.1 remote-as 100 neighbor 2.2.0.1 update-source Loopback0 neighbor 2.2.0.2 remote-as 100 neighbor 2.2.0.2 update-source Loopback0

D0

router bgp 1.1 neighbor 1.1.1.2 remote-as 100 redistribute static

A1

Page 30: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

  При получении анонсов от BGP-соседа из своей автономной системы, принимающий BGP-узел:

o  не будет отправлять эту информацию соседям из своей автономной системы o  отправит эту информацию соседям из других автономных систем

  Между всеми iBGP-узлами должны быть установлены BGP-связи   Тяжело масштабируется:

o  N*(N-1)/2 связей   Решение:

o  Route Reflectors o  Confederations

Internal BGP

AS100

Page 31: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Route Reflectors

AS100

AS1.1

AS3.1

RR Cluster-ID “N”

AS100

AS1.1

AS3.1

RR

RR

Раут-рефлекторы без резервирования

Раут-рефлекторы с резервированием

Общий кластер клиентов

Идентификатор кластера – Cluster-ID

RR Cluster-ID “N”

Page 32: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Configuring Route Reflectors

D0 C0

A0 B0

router bgp 100 bgp cluster-id 100 neighbor 2.2.0.2 remote-as 100 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-client

A0

router bgp 100 bgp cluster-id 100 neighbor 2.2.0.1 remote-as 100 neighbor 2.2.0.1 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-client

B0

Идентификатор кластера, одинаковый на обоих раут-

рефлекторах

Page 33: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Avoiding Route Loops with RRs   Originator-ID

•  атрибут, сопровождающий префикс в рамках локальной автономной системы •  заполняется раут-рефлектором при получении префикса от клиента

  Cluster-ID •  идентификатор RR-кластера •  добавляется в атрибут Cluster-List – список транзитных RR-кластеров

Если во входящем префиксе: Originator-ID совпадает с BGP Router ID или

Cluster-ID уже содержится в Cluster List, префикс игнорируется

Page 34: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Confederations

AS100

AS1.1

AS3.1

AS 65501

AS 65500

AS 65502

router bgp 65500 bgp confederation identifier 3.1 bgp confederation peers 65501 65502

http://www.ittc.ku.edu/EECS/EECS_800.ira/bgp_tutorial/16.html#A23.0

Меньшая масштабируемость,

относительно высокая сложность

Page 35: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

AS8.1

AS3.1

AS100 B3 A3 X3

10.10.100.0/24

10.10.100.0/24

10.10.100.0/24

X

BGP to IGP Synchronization

1

2

При обеспечении транзита для чужих AS, граничные узлы не должны анонсировать префиксы, пока не получат их по IGP, например:

  B3 не должен анонсировать префиксы, приходящие со стороны AS100, в AS8.1, пока не получит их через IGP   синхронизация – выключена по умолчанию

Page 36: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

BGP / IGP Routing Preference

  eBGP обладает меньшим administrative distance, чем любой IGP (20 < 110)   маршрут из AS8.1 в AS100 через AS3.1   два способа решения

o  изменить глобальные параметры admin distance для BGP o  использовать BGP backdoor

AS8.1 AS100

eBGP eBGP

IGP

10.10.100.0/24

AS3.1 B3 A3 X3

Page 37: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Configuring BGP / IGP Interaction

router ospf 81 network z.z.z.z 0.0.0.3 area 3 ! router bgp 8.1 network 10.10.100.0 mask 255.255.255.0 backdoor neighbor x.x.x.1 remote-as 3.1 ! ! или ! distance bgp <ext.cost> <int.cost> <loc.cost>

router ospf 10 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 network 10.10.100.0 mask 255.255.255.0 neighbor y.y.y.1 remote-as 3.1

AS8.1

AS3.1

AS100 eBGP eBGP

IGP

10.10.100.0/24

B3 A3 X3

router bgp 3.1 synchronization neighbor x.x.x.2 remote-as 8.1

B3

Note: на A3 синхронизация тоже должна быть включена

Page 38: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

External BGP Multihop

AS200

AS100

  Если нет непосредственной связности, требуется явное указание об увеличении TTL:

router bgp 100 neighbor x.x.x.x remote-as 200 neighbor x.x.x.x ebgp-multihop

  Транзитные маршрутизаторы должны знать о маршрутах

  Значение TTL на External BGP сессиях, по умолчанию, устанавливается равным 1

eBGP Load Balancing example: http://www.ittc.ku.edu/EECS/EECS_800.ira/bgp_tutorial/13.html#A5.1

Page 39: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

BGP Aggregation

AS100

AS300

AS200

10.10.8.0/24 10.10.100.0/24

AS400 10.10.0.0/16

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} i

  Агрегирование aggregate <network> <mask> [ … ]

  Опции •  summary-only •  suppress-map •  attribute-map •  as-set

Page 40: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Атрибут префиксов: AS Path

  Атрибут AS_PATH (в сообщении UPDATE) – цепочка из AS Path сегментов   Два типа сегментов:

o  AS_SEQUENCE – упорядоченный список ASN, через которые анонсируемый префикс прошел o  AS_SET – неупорядоченный список ASN, через которые анонсируемый префикс прошел

  Если AS_PATH пустой – создается AS_SEQ   AS_SET возникает в случае агрегации

Page 41: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Манипуляции с AS Path

  AS Path нельзя укоротить   AS Path можно искусственно удлинить

AS100 AS200 AS300 AS400 AS500

Два варианта пути:   (500, 400) – этот короче   (200, 300, 400)

router bgp 100 neighbor x.x.x.x remote-as 500 neighbor x.x.x.x route-map ASPREP in ! route-map ASPREP permit 5 set as-path prepend last-as 2

R100

Два варианта пути:   (500, 500, 500, 400)   (200, 300, 400) – этот короче

Page 42: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Атрибут префиксов: Origin

  Обязательное поле, указывающее на источник появления префикса   Три источника:

o  префикс является внутренним для автономной системы, означается как “i” в таблице BGP

•  network •  redistribution from IGP

o  префикс является внешним по отношению к автономной системе, означается как “e”

•  Exterior Gateway Protocol (EGP) o  происхождение префикса неизвестно, означается символом “?” (INCOMPLETE)

•  redistribute static

Page 43: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Атрибут префиксов: Next Hop

  Адрес, который используется как шлюз для доставки трафика к анонсируемому префиксу   Для eBGP – полученный от eBGP neighbor   Для iBGP:

o  для внешних префиксов: тот адрес, который был получен по eBGP o  для внутренних префиксов: BGP Router ID

  Для размещения префикса в таблице форвардинга, путь до next-hop должен быть известен

Page 44: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Манипуляции с next-hop (ч.1)

AS100

AS300

IGP

10.10.1.1

10.10.1.2 10.10.1.3

eBGP

172.16.53.0/24

R100#show ip bgp [ … ] Network Next Hop Metric LocPrf Weight Path *> 172.16.53.0/24 10.10.1.3 0 300 i

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 i

Page 45: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Манипуляции с next-hop (ч.2)

AS100

AS300

10.10.1.1

10.10.1.2 10.10.1.3

eBGP

172.16.53.0/24

AS200

10.10.1.4 eBGP

Если нужно разнести функции BGP и форвардинга трафика

между разными устройствами, …

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.3

… например, у R300 недостаточно мощности для пропуска трафика, но достаточно – для обработки нескольких BGP full view:

Page 46: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Атрибут: Local Preference

  Приоритет внешних префиксов внутри AS   Действует в пределах AS   Чем выше величина – тем выше приоритет   Значение по умолчанию - 100

AS8.1

AS3.1

B3 A3

X3

AS9.1

172.16.53.0/24

router bgp 3.1 bgp default local-preference <N> или route-map SETLOCPREF permit 5 match … set local-preference <N>

AS100

Page 47: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Multi-Exit Discriminator (MED)   Информирование соседних AS о желательных маршрутах для доступа внутрь данной AS   Попадая в автономную систему снаружи, не покидает ее пределов (сбрасывается в 0)   Чем ниже величина – тем выше приоритет   Значение по умолчанию – 0 (не учитывать)

AS3.1 B3 A3 X3

AS8.1 AS200

Metric=100 Metric=50

Metric=20   Путь из AS8.1 в AS3.1 будет выбран через X3

  «bgp always-compare-med» на AS8.1 для активации маршрута через AS200

http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a0080094925.shtml

Page 48: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Атрибут префиксов: Weight(*)

  Приоритет префиксов в пределах маршрутизатора (диапазон 0 – 65535)   Чем выше величина – тем выше приоритет   Значение по умолчанию – 32768

AS8.1

AS9.1

172.16.53.0/24

router bgp 3.1 neighbor x.x.x.x weight <N> или neighbor x.x.x.x filter-list <ACL> weight <N> или route-map SETWEIGHT permit 5 match … set weight <N>

AS100

AS3.1 Weight is 45000

Weight is 55000

(*) Расширение Cisco, в стандарте отсутствует

Page 49: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

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 ID

Page 50: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

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-community

Page 51: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

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  match community o  match interface o  match ip address o  match ip next-hop o  match ip route-source o  match metric o  match route-type o  match tag

o  set as-path o  set community o  set comm-list delete o  set dampening o  set next-hop o  set origin o  set weight o  set local-preference o  set metric / set metric-type o  set tag

http://www.cisco.com/en/US/docs/ios/iproute_bgp/command/reference/irg_book.html

Page 52: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

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>

Page 53: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

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/24

Page 54: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

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 i

Page 55: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

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]

Page 56: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

BGP Dampening

  Исключение префиксов из таблицы при «хлопании» маршрутов

o  eBGP peer down/up – не хлопок o  BGP withdraw/update – хлопок o  изменение атрибутов префикса - хлопок

  Каждый хлопок увеличивает штраф (penalty, на 1000); при достижении порога анонсы префикса прекращаются  Отсутствие хлопков – постепенное снижение пенальти до возобновления анонсов

Page 57: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Configuring BGP Dampening A0(config-router)#bgp dampening 15 750 3000 60

(*) http://www.ripe.net/ripe/docs/ripe-378.html

half-life time: если в течение этого времени не происходит «хлопка», штраф

уменьшается вдвое, минуты

reuse: при снижении штрафа ниже этой величины префикс начинает

анонсироваться

suppress: при увеличении штрафа выше этой величины префикс перестает

анонсироваться

max-suppress-time: максимальное время, в течение которого префикс не

будет анонсироваться

  BGP Dampening признан плохой практикой(*) и его глобальное использование не рекомендуется   Можно уменьшить регион применения, например, Украиной:

router bgp 100 bgp dampening route-map UAnet-damp ! route-map UAnet-damp permit 5 match [ … ] set dampening 15 750 3000 60

Page 58: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

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”

Page 59: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

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/

Page 60: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

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 Reconfiguration

Page 61: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Peer groups

Группирование BGP-соседей с одинаковой исходящей политикой(*) для:

  упрощения и уменьшения вероятности ошибок конфигурации   уменьшения использования системных ресурсов (CPU, память)

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

Входящие политики могут быть разными

(*) кроме default-originate

http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a0080093fb7.shtml

Page 62: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

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-originate

Page 63: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

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-fallover

Page 64: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

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-discovery

Page 65: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

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 агрегация в соответствии с выданным блоком адресов

Page 66: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

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

желательно использовать на внешних соединениях

Page 67: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

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.shtml

Page 68: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

BGP Best Practices (ч.3.1)

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

Пример из жизни AS12530 (*)

(*) whois AS12530

Page 69: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

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 (ПО давно не обновляется, возможно – устарело)

Page 70: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

Топология лаборатории

A0 B0

D0 C0

X0

A1 A2

A3 A4

AS100

AS101 AS102

AS104 AS103

101.0.0.0/8 102.0.0.0/8

104.0.0.0/8 103.0.0.0/8

100.0.0.0/8

0/0

Page 71: Basics of routing & switching: BGP

(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102

End of 3rd Day

Happy configuring!