SDN: Что это? Что оно нам дает и как его использовать
Basics of routing & switching: BGP
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
BGP
Switching & Routing – doka – T102 (с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/)
3. Implementing
Cisco
IP Routing
Switching & 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/)
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.2
Switching & 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 hops
Switching & 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 hops
Switching & 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/18
Switching & 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/)
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.pdf
Switching & 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.0
Switching & 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 Confederations
Switching & 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.0
Switching & 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 backdoor
Switching & 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.1
Switching & 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} i
Switching & 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 2
Switching & 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 static
Switching & 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 i
Switching & 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.3
Switching & 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>
X3
Switching & 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.shtml
Switching & 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 ID
Switching & 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-community
Switching & 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.html
Switching & 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/24
Switching & 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 i
Switching & 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.html
Switching & 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 Reconfiguration
Switching & 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.shtml
Switching & 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-fallover
Switching & 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-discovery
Switching & 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.shtml
Switching & 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 AS12530
Switching & 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/)