Cсылки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# RFC https://tools.ietf.org/html/rfc1918 https://tools.ietf.org/html/rfc6890 https://www.rfc-editor.org/rfc/rfc1930 https://www.rfc-editor.org/rfc/rfc4271 # IPCALC http://jodies.de/ipcalc # FIB https://en.wikipedia.org/wiki/Forwarding_information_base # SYSCTL / rp-filter https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt # Looking glass http://lg.mtu.ru/cgi-bin/lgform_img.cgi # OSPF https://community.cisco.com/t5/networking-documents/ospf-design-best-practices/ta-p/3112070 https://spw.ru/educate/articles/primenenie-ospf-v-routeros-1/ # BGP https://linkmeup.ru/blog/65.html https://www.ssi.gouv.fr/uploads/2016/03/bgp-configuration-best-practices.pdf http://xgu.ru/wiki/BGP_%D0%B2_Cisco http://www.justogroup.ru/dokumentacija/cisco/marshrutiziruemye_seti/prakticheskie_primeri_bgp.pdf # AS 2.0 https://www.cidr-report.org/as2.0/ # BIRD https://bird.network.cz/ # frr https://frrouting.org/ # печалька в яндекс в 2211 году https://habr.com/ru/company/yandex/blog/126709/ |
Сети
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Серые сети - 10.0.0.0/8 - 172.16.12.0/12 - 192.168.0.0/16 Специальные сети - 0.0.0.0/8 - этот хост как источник - 127.0.0.0/8 - этот хост как приемник, loopback - 100.64.0.0/10 - Shared Net - NAT на уровне провайдера - 169.254.0.0/16 - Link Local - сеть для самоконфигурирующихся устройств - 240.0.0.0/4 - Multicast Рекомендуемая схема нумерации для сетей 10.1.32.0/23 | | | | | vlan #132 geo-id #1 |
Агрегат:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Агрегат - минимально возможная сеть, включающая в себя все специфики 10.0.0.0/13 - Агрегат 10.1.0.0/16 - Специфик 10.2.0.0/16 - Специфик 10.6.20.0/22 - Специфик forwarding information base (FIB) также известная как "таблица пересылки"(forwarding table) или "таблица MAC -адресов"(MAC table) В роутинге специфики всегда выигрывают при поиске в FIB Агрегаты всегда должны "заворачиваться в null", что бы избегать проблем с кольцами, броадкастами и мусорным трафиком в маршрутизации ip route add blackhole 10/8 Кроме того, null routing - самый дешевый способ фильтрации трафика |
Динамическая маршрутизация:
1 2 3 4 5 6 7 8 9 10 11 12 |
Автоматическое получение маршрутов и возможность их перестроения при изменении топологии Interior Gateway Protocols - Open Shortest Path First - Enhanced Interior Gateway Routing Protocol Работают на уровне L3, каждый роутер знает всю топологию своей области, отслеживается состояние соединений Border Gateway Protocol (BGP) Работает на уровне L4 (возможно управление маршрутизаторами с отдельно стоящего BGP Route Server), состояние пиринга определяетя по состоянию TCP-сессии. Может использоваться внутри AS/Area |
Quagga (ex-Zebra) (deprecated / устарел)
1 2 3 4 5 6 7 |
Набор демонов, реализующий управление сетью в linux RIPD, OSPFD, BGPD, ISISD Zebra (Forwarding Information Base, FIB) vtysh - консоль управления Взаимодействует с таблицей "Kernel Routing Table" Возможно так же управление интерфейсами и разнообразными сетевыми настройками Полностью копирует управление и функциональность Cisco IOS |
BIRD
1 2 3 4 5 6 7 8 9 10 11 12 |
- разрабатывается с 2005 года - умеет: OSPF,IS-IS,RIP,BGP,BFD - умеет IPV6 - свой язык описания конфигов и фильтров - используется: DE-CIX, LINX, PAIX, MSK-IX Архитектура: - master - Основанная таблица, в которую попадают маршруты от других протоколов - device - протокол, который следит за статусами интерфейсов в системе - static - протокол, отвечающий за статическую маршрутизацию - direct - протокол, создающий в таблице маршруты на основе настроек интерфейсов системы - kernel - протокол для взаимодействия с ядром и загрузкой маршрутов в таблицу маршрутизации linux |
OSPF Terms / Neighbourhood / interface
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
OSPF Terms: Area - интерфейсы, роутеры которых получают всю информацию о топологии сети. Для небольшой сети возможно использование единственной Area 0. Есть разновидности - backbone, standard, stub, not-so-stubby area и еще несколько Hello - пакеты, устанавливающие и поддерживающие соеденение роутеров LSA (Link State Announce) - единица обмена информацией между роутерами OSPF (https://habr.com/post/201794/) BR - Border Router ABR (ospf term) - Area Border Router ASBR (bgp term) - Autonomous System Border Router DR - Designated Router - ABR, являющийся основной точкой входа в Area BDR - Backup Designated Router - ABR, являющийся резервной точкой входа DROther - BR, не участвующий в построении графа маршрутов OSPF Neighbourhood Cостояния соседства маршрутизаторов Down - соседа не видно Attempt, Init - попытка установить соединение 2-Way - роутеры видят друг-друга Exstart, Exchange, Loading aka Adjacent - роутеры обмениваются информацией Full aka Full Adjacent - роутеры обменялись информацией OSPF interface Priority: DR/BDR election Если в одну сеть есть два входа через два роутера, то один из них становится DR, остальные - BDR. На принятие решения влияет priority и router-id. Если по каким-то причинам роутеры не могут выбрать DR, то состояние их соседства повиснет в 2way/DRother. Специальное значение priority 0 - отказ от выборов. Cost - стоимость прохождения через этот интерфейс. По-умолчанию рассчитывался исходя из пропускной способности интерфейса. Теперь неактуально, потому что при bw ≥ 100 Mbps default cost = 1. Если есть два маршрута в одну сеть с одинаковой суммарной стоимостью - устанавливаются оба, в противном случае устанавливается только один с минимальной стоимостью. Параметр интерфейса роутера, а не направления в целом, поэтому для понижения приоритета всего линка должен быть установлен с обоих сторон. Linux rp_filter По умолчанию, параметр установлен в 1, что обозначает строгую проверку маршрута источника. Это правильно до тех пор, пока мы не сталкиваемся с динамическим роутингом. При использовании IGP можно сразу выставить в 2 (нестрогая проверка) или в 0 (отсутствие проверки) |
Автономная система:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
Автономная система (autonomous system, AS) - это система IP-сетей и маршрутизаторов, управляемым одним или несколькими операторами, имеющими единую политику маршрутизации с Интернетом. Особенности: - процесс создания и регистрации AS описан в RFC 1930. - номера AS выдается организациями RIR (Regional Internet Registry) или LIR (Local Internet Registry) - до 2007 года были 16-бинтыми, теперь 32-битные номера Диапазоны номеров автономных систем: - 0-65535 (изначально определенный диапазон для ASN 16 бит) - 65536-4294967295 (новый диапазон для ASN 32 бит(КАС 4893)) (май 2007) Использование номеров автономных систем: - 0 и 64535 - зарезервированы - 1-64495 публичные номера (все что не выдали до 2012 - резерв у IANA) - 65552-4294967295 публичные номера (выдается с 2010) - 64512-65534 - приватные номера - 23456 - представляет 32-битный диапазон на устройствах, которые работают с 16-битным диапазоном(для совместимости со старым оборудованием) Provider Aggregatable (PA) - диапазон адресов, приндлежащий провайдеру Особенности: - легко получить - принадлежат провайдеру - в случае смены провайдера - остается у провайдера Provider Independent (PI) - независимый от провайдера диапазон адресов Особенности: - приобретается у LIR - привязывается к номеру AS - сохраняются при смене провайдера и добавляет гибкости маршрутизации AS и префикс с реальным IP-адресами выдает RIPE Не операторы могут получить префикс, можно договорится с другими операторами и поднять пиринг по BGP. В базе данных RIPE можно будет добавить информацию о том что сеть закреплена за вашей организацией. Если нету номера AS для поднятия пирига можно использовать приватный диапазон AS 64512-65534. |
BGP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
RIPE -> RIR -> LIR Особенности: - дистанционно-векторный протокол - децентрализованный - имеет гибкую систему фильрации и управления приоритетами маршрутов - имеет защиту от образования петель - объединяет автономные системы (AS)(eBGP) - может использоваться внутри одной AS(iBGP) - работает на уроне L4 - состояние пиринга определяет по состоянию TCP-сессии - для построения таблицы маршрутизации используется номера AS - может быть требователен к ресурсам маршрутизатора - текущий размер полной таблицы маршрутизации сети Интернет более 800к маршрутов Основные условия для установления соседства по BGP - связанность по TCP - доступность порта TCP 179 - программные или аппаратные маршрутизаторы с поддержкой протокола Таймеры: - необходимы для установки соседства - по RFC4271, keepalived time = 90s, hold time = 30s - Cisco, keepalived time = 180, hold time = 60s - FRR, keepalived time = 180s, hold time = 60s - не стоит делать значения таймеров очень мленькими , это может вызвать проблемы - лучше использовать протокол BFD Основные состояния установления соседства по BGP: IDLE - изначальное состояние BGP-соседства. Ничего не происходит. CONNECT - слушает порт 179, но ничего не отправляет ACTIVE - отправил SYN и ждет ответа от соседа OPENSENT** - BGP начал обмен сообщениями OPEN. Сообщение отправлено OPENCONFIRM** - сообщение OPEN получено ESTABLISHED - все настройки согласованы и сессии BGP работают Основные сообщения в BGP: Open - согласование номера ASб HoldTimer и Router ID. Протокол обмена маршрутной информацией уровня провайдера. Объединяет т.н. Автономные Системы (Autonomous System, AS) AS похож на OSPF Area. Подразумевается, что все сети внутри AS так или иначе объединены с помощью IGP В некоторых случаях BGP может использован внутри AS. Т.к. BGP в основном означает связь с провайдером, то для внутренних связей используют термин iBGP Автономную систему хорошо иметь для независимости от ДЦ и в случае нескольких ДЦ. Минимальный размер сети, анонсируемой через BGP не регламентируется протоколом, но в реальной жизни - /24. Поэтому минимальный размер AS тоже /24. Раньше адреса можно было получить непосредственно у RIPE, теперь ищите LIR, у которых еще остались блоки адресов. RIPE хранит всю информацию о связях AS. Её со своей стороны надо всегда держать в актуальном состоянии, потому что есть много транзитных операторов, которые используют эту базу для конфигурации устройств в автоматическом режиме Типичный сценарий использования: вы анонсируете провайдеру свои сети, провайдер вам в ответ анонсирует 0.0.0.0/0. При пиринге всегда нужно использовать фильтрацию префиксов, что бы ни вы, ни провайдер не отослали лишнего. whois - интерфейс командной строки ко всем базам координационных центров. Россия относится к RIPE. Looking glass - Инструмент ограниченного доступа к роутерам провайдера через web-интерфейс. |
vtysh
1 2 3 4 5 6 7 |
show running-config - посмотреть текущий файл конфигурации show ip bgp - посмотреть текущую таблицу маршрутов show bgp summary -сводная информация для всех экземпляров маршрутизации show bgp neighbor - отображение информации !!! обратите особое внимание состояние BGP. !!! Любое состояние, отличное от Established, указывает на то, !!! что обмен информацией между соседями не налажен |
OSPF mesh??
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
Для создания mesh-сети с OSPF нужно настроить несколько узлов, каждый из которых будет обмениваться маршрутной информацией с другими. У каждого узла должен быть свой уникальный router-id, но все они должны быть частью одной и той же OSPF-области (например, area 0). sudo apt update sudo apt install frr frr-pythontools vim /etc/frr/daemons -------------------- ospfd=yes -------------------- vim /etc/frr/frr.conf ---------------------- ! ! Конфигурация маршрутизатора ! frr defaults traditional hostname my-router log syslog service integrated-vtysh-config ! ! Включаем OSPF ! router ospf ospf router-id 1.1.1.1 ! Уникальный ID маршрутизатора network 10.99.99.0/24 area 0 ! OSPF для сети 10.99.99.0/24 в области 0 passive-interface default ! Отключаем отправку Hello-пакетов на всех интерфейсах no passive-interface eth0 ! Включаем OSPF на интерфейсе eth0 no passive-interface eth1 ! Включаем OSPF на интерфейсе eth1 ! ! Интерфейсы ! interface eth0 ip ospf area 0 ! interface eth1 ip ospf area 0 ! line vty ---------------------- vtysh show ip ospf neighbor show ip route ospf |