Upload
vladimir-litovka
View
1.298
Download
8
Embed Size (px)
DESCRIPTION
Citation preview
(с) 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)
(с) 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
(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102
Implementing
Cisco
IP Routing
(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102
Маршрутизация в сетях IP
Маршрутизация – «построение карт и определение направлений»
Маршрутизация бывает: o статическая
присоединенный маршрут маршрутизация по адресу назначения маршрутизация по параметрам входного трафика (policy-based routing, PBR)
o динамическая по адресу назначения, с использованием протоколов динамической маршрутизации
(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102
Принципы маршрутизации
Каждый узел принимает собственное решение о маршрутизации трафика
Каждому узлу не требуется знать весь маршрут до назначения o определяется только следующий узел в пути
(next-hop) o процесс повторяется на каждом узле до достижения узла назначения
Для определения следующего узла используется таблица форвардинга
(с) 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)
(с) 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
(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102
Статическая маршрутизация
Присоединенные маршруты o Маршруты, которые определяются адресацией на интерфейсах
Статические маршруты по адресу назначения o Ручная настройка o Применимо в случае небольшого количества o Не адаптируется к изменениям в сети o Часто используется для определения маршрута по умолчанию
(с) 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 второе значение – метрика протокола
(с) 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
(с) 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 если он отсутствует, то включается статически сконфигурированный маршрут
Статическая маршрутизация
(с) 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
(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102
Протоколы маршрутизации
Цели и задачи
Формирование оптимального пути Формирование разомкнутой (loop free) топологии Обеспечение быстрой сходимости Минимальный объем служебного трафика Масштабируемость Легкость конфигурирования Минимальный объем администрирования Адаптивность к изменениям и расширениям Совместимость
(с) 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
(с) 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
(с) 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
Таблица форвардинга
(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102
Border Gateway Protocol
(с) 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/
(с) 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)
(с) 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
(с) 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 количество транзитных узлов внутри одной автономной системы не учитывается
(с) 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)
(с) 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)
(с) 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
(с) 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
(с) 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
(с) 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
(с) 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-интерфейсами
(с) 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
(с) 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
(с) 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”
(с) 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
Идентификатор кластера, одинаковый на обоих раут-
рефлекторах
(с) 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, префикс игнорируется
(с) 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
Меньшая масштабируемость,
относительно высокая сложность
(с) 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 синхронизация – выключена по умолчанию
(с) 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
(с) 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 синхронизация тоже должна быть включена
(с) 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
(с) 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
(с) 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 возникает в случае агрегации
(с) 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) – этот короче
(с) 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
(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102
Атрибут префиксов: Next Hop
Адрес, который используется как шлюз для доставки трафика к анонсируемому префиксу Для eBGP – полученный от eBGP neighbor Для iBGP:
o для внешних префиксов: тот адрес, который был получен по eBGP o для внутренних префиксов: BGP Router ID
Для размещения префикса в таблице форвардинга, путь до next-hop должен быть известен
(с) 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
(с) 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:
(с) 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
(с) 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
(с) 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, в стандарте отсутствует
(с) 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
(с) 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
(с) 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
(с) 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>
(с) 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
(с) 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
(с) 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]
(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102
BGP Dampening
Исключение префиксов из таблицы при «хлопании» маршрутов
o eBGP peer down/up – не хлопок o BGP withdraw/update – хлопок o изменение атрибутов префикса - хлопок
Каждый хлопок увеличивает штраф (penalty, на 1000); при достижении порога анонсы префикса прекращаются Отсутствие хлопков – постепенное снижение пенальти до возобновления анонсов
(с) 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
(с) 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”
(с) 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/
(с) 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
(с) 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
(с) 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
(с) 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
(с) 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
(с) 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 агрегация в соответствии с выданным блоком адресов
(с) 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
желательно использовать на внешних соединениях
(с) 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
(с) 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
(с) 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 (ПО давно не обновляется, возможно – устарело)
(с) 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
(с) 2010, Владимир Литовка (http://doka-ua.blogspot.com/) Switching & Routing – doka – T102
End of 3rd Day
Happy configuring!