Предмет гордости компании Juniper Networks — маршрутизаторы серии MX производительностью 400 Гбит/с.
МХ-серия является не только отличным решением для межоператорского обмена трафиком, но и является основным инструментом для агрегации клиентских подключений. Устройства могут выступать в качестве маршрутизаторов широкополосной агрегации абонентов — физических лиц в моделях IPoE и PPPoE.
Ознакомиться с технической документацией можно здесь
Из чего состоит маршрутизатор Juniper
RE (Routing Engine)
Отвечает за работу протоколов маршрутизации (поддержание соседства, обмен маршрутной информацией, выбор лучшего маршрута и т.д.) и за управление маршрутизатором (сбор и хранение статистики по интерфейсам, сбор и хранение логов).
RE является полноценным сервером, который включает в себя:
CPU
RAM
HDD/SSD — жесткий или твердотельный накопитель, предназначен для хранения логов и файлов.
CF card — карта памяти, предназначена для хранения актуальной конфигурации и используемой версии JunOS OS.
USB port — порт предназначен для подключения внешнего носителя, который может быть использован например для загрузки или восстановления системы. Загрузка операционной системы начинает с CF-card, потом HDD/SSD и и в последнюю очередь USB-flash disk.
Ethernet port — порт для управления маршрутизатором, который состоит из 3 портов:
- ethernet — используется для управления оборудованием. Обозначается как fxp0
- console — порт для консольного доступа
- AUX — вспомогательный порт, разновидность console
Для высокой отказоустойчивости RE (Routing Engine) устанавливают по два: основной и резервный, поддерживающий горячую замену.
PFE (Packet Forwarding Engine)
PFE обрабатывает весь трафик. Устанавливается на интерфейсной плате, которая может содержать 1, 2 или 4 PFE и поддерживает горячую замену. Каждый PFE обслуживает только свою группу интерфейсов. В составе интерфейсной карты есть CPU, который управляет всеми PFE.
Switch and Control Board
Это плата, которая отвечает за коммутацию пакетов между различными PFE и связность между RE и PFE.
Switch fabric
Switch fabric — фабрика коммутации предназначена для передачи трафика между PFE. Она соединяет все PFE в единую топологию. Фабрики коммутации отличаются по пропускной способности.
JunOS OS
Оборудование Juniper Networks работает под управлением JUNOS. JunOS OS — это FreeBSD, которую переработали инженеры Juniper. JunOS состоит из ядра и процессов, которые отвечают только за свою отдельную функцию. Под каждый процесс выделяется часть памяти, поэтому если какой то процесс зависает, то он не влияет на остальные.
Одним из самых важных элементов JunOS OS является ядро, которое выполняет базовые функции: управление процессами, разделение доступа к памяти, ресурсам. За остальными функциями — маршрутизация, мониторинг состояния, отвечают специальные «процессы». Они запускаются при старте системы.
Важные процессы
mgd — management daemon — управление оборудованием
dсd — Device control daemon — конфигурация интерфейсов
chassisd — chassis daemon — мониторинг состояния всех компонентов маршрутизатора
rpd — routing protocol daemon — отвечает за все протоколы маршрутизации, от RIP до BGP.
Командный интерфейс JUNOS
Командный интерфейс JUNOS позволяет не только выполнять команды, но и вводить конфигурацию. Конфигурация представляет собой директивы конфигурирования той или иной подсистемы.
Работа с командной строкой в JUNOS разделяется на 2 режима:
Operational Mode (приглашение командной строки «>») — доступны команды show и команды для мониторинга сети (monitor, ping, test, traceroute).
Configuration Mode (приглашение командной строки «#») — режим, в котором происходит настройка устройства. Активировать данный режим можно командой «Configure» или «Edit» в режиме Operational Mode.
Routing Instance
Предназначен для манипуляций с трафиком (маршрутизация и инкапсуляция). Позволяют условно разделить один роутер на несколько «виртуальных». Каждый созданный instance будет обрабатывать трафик независимо от других instance. Применяется в основном для организации MPLS VPN. Существует несколько типов routing instance:
Forwarding — используется для построения специальных filter-based forwarding applications (ну или policy-based routing в терминологии Cisco). При этом интерфейсы не привязываются к RI, а остаются в дефолтном RI.
Layer 2 virtual private network (VPN) — используется для организации MPLS L2VPN.
Nonforwarding — все маршруты и интерфейсы помещаются в основной routing instance, но при этом можно разделить основную таблицу маршрутизации на несколько поменьше.
VPN routing and forwarding (VRF) — используется для организации L3VPN. Содержит в себе не только таблицу маршрутизации (routing table), но и таблицу коммутации (forwarding table). При этом трафик с интерфейса отображается в RI один-к-одному, что позволяет передавать метки маршрутизации и принимать их, получая распределенный VPN.
Используя протоколы динамической маршрутизации (BGP, OSPF или ISIS) можно организовать обмен информацией между PE (provider edge) и CE (client edge) таким образом, что каждый из них будет получать и отдавать маршруты только внутри VPN канала.
Virtual router — производная от VRF, но без функций: VRF import, VRF export, VRF target, или route distinguisher.
Так как таблица маршрутизации находится только в пределах одного роутера, то не подходит для создания L3VPN.
Virtual private LAN service (VPLS) — организация многоточечного распределенного L2VPN поверх MPLS. Для клиента будет выглядеть как виртуальный свич, к портам которого подключены его пограничные (CE) устройства.
Таблица маршрутизации в JUNOS
Главная таблица называется inet.0 и содержит ipv4 юникаст маршруты. Также в JUNOS можно создавать несколько таблиц маршрутизации. По-умолчанию в системе созданы:
inet.0 — используется для ipv4 юникаст маршрутов;
inet.1 — используется для мультикаста;
inet.2 — используется для Multicast Border Gateway Protocol (MBGP) с проверкой RPF (Reverse Path Forwarding);
inet.3 — используется для MPLS маршрутов;
inet.4 — используется для Multicast Source Discovery Protocol (MSDP) маршрутов;
inet6.0 — используется для ipv6 юникаст маршрутов;
mpls.0 — используется для mpls next hops.
Часто используемые команды
show interfaces — просмотр состояния интерфейса порта
show interfaces ge-0/0/1.1210 Logical interface ge-0/0/1.1210 (Index 2823) (SNMP ifIndex 8856) Description: Flags: SNMP-Traps 0x4000 VLAN-Tag [0x8100.1210] Encapsulation: VLAN-CCC Input packets : 901242548 Output packets: 905972204 Protocol ccc, MTU: 9192
Пояснения к примеру:
Интерфейс ge-0/0/1.1210 расшифровывается как:
ge — это тип интерфейса (Gigabit Ethernet)
0 — номер физического слота на нашем шасси.
0 — номер карты, вставленной в слот.
1 — номер порта на карте PIC.
После точки указывается номер VLAN.
show route — просмотр таблицы маршрутизации
show route inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 10.0.16.0/24 *[Direct/0] 5d 17:37:05 via fe-0/0/0.0 10.0.16.1/32 *[Local/0] 1w0d 15:51 Local via fe-0/0/0.0 10.0.21.0/24 *[Direct/0] 1w0d 17:32 via se-0/0/3.0 10.0.21.1/32 *[Local/0] 1w0d 17:32 Local via se-0/0/3.0 192.168.42.1/32 *[Direct/0] 5d 18:02 + = Active Route, - = Last Active, * = Both 10.0.0.1/32 *[Direct/0] 1w0d 19:02:26 via lo0.16385 10.0.0.16/32 *[Direct/0] 1w0d 19:02:26 via lo0.16385
Пояснения к примеру:
inet.0 — название таблицы маршрутизации
в JUNOS используются следующие таблицы маршрутизации:
inet.0 — используется для ipv4 unicast-маршрутов;
inet.1 — используется для мультикаста;
inet.2 — используется для MBGP (Multicast Border Gateway Protocol);
inet.3 — используется для MPLS маршрутов;
inet.4 — используется для MSDP (Multicast Source Discovery Protocol) маршрутов;
inet6.0 — используется для ipv6 unicast-маршрутов;
mpls.0 — используется для mpls next hops.
Local/0 — источник маршрута и его приоритет
*[Direct/0] — активный выбранный маршрут
show interfaces terse — просмотр интерфейсов и назначенных им IP адресов
show interfaces terse lt-0/0/0.11 up up inet 10.182.221.173/30 lt-0/0/0.17 up up inet 10.182.236.113/30 lt-0/0/0.19 up up inet 10.182.229.181/30 lt-0/0/0.21 up up inet 10.182.229.177/30 lt-0/0/0.31 up up inet 10.182.220.237/30 lt-0/0/0.37 up up inet 10.182.236.21/30 lt-0/0/0.39 up up inet 10.182.220.45/30 lt-0/0/0.41 up up inet 10.182.236.41/30 lt-0/0/0.43 up up inet 10.182.236.117/30 lt-0/0/0.45 up up inet 10.182.9.9/30 lt-0/0/0.53 up up inet 10.182.220.245/30
monitor traffic — просмотр трафика на выбранном порту
monitor traffic interface lt-0/0/0.11 verbose output suppressed, use detail or extensive for full protocol decode Address resolution is ON. Use no-resolve to avoid any reverse lookup delay. Address resolution timeout is 4s. Listening on lt-0/0/0.11, capture size 96 bytes Reverse lookup for 10.182.221.174 failed(check DNS reachability). 13:39:56.506223 Out IP truncated-ip - 26bytes missing! 10.182.221.173 > 10.182.221.174 OSPFv2, LS-Update, length 60 13:39:58.301080 Out IP truncated-ip - 54bytes missing! 10.182.221.173 > 10.182.221.174 OSPFv2, LS-Update, length 88 In IP 10.182.221.174>10.182.221.173: OSPFv2,LS-Ack,length 64 3 packets received by filter 0 packets dropped by kernel
set interfaces — установка IP-адреса на интерфейсе
set interfaces fe-0/0/0 unit 0 family inet address 192.168.220.1/24
Результат команды:
show interfaces fe-0/0/0.0 brief Logical interface fe-0/0/0.0 Flags: SNMP-Traps Encapsulation: ENET2 inet 192.168.220.1/24
Удаление IP-адреса на интерфейсе
delete unit 0 family inet address 192.168.220.1/24
show configuration — просмотр конфигурации
После команды show configuration указываем какую именно конфигурацию необходимо смотреть. Например, для просмотра конфигурации интерфейсов необходимо набрать show configuration interfaces
lt-0/0/0 { logical-tunnel-options { per-unit-mac-disable; } unit 0 { encapsulation ethernet-ccc; peer-unit 1; family ccc; } unit 1 { encapsulation ethernet; peer-unit 0; family inet { policer { input 512k; output 512k; } address 172.23.169.123/30; } } unit 2 { encapsulation ethernet-ccc; peer-unit 3; family ccc; } unit 3 { encapsulation ethernet; peer-unit 2; family inet { filter { input client_1; output client_1; } address 172.23.169.39/30; address 172.23.169.41/30; address 172.23.169.19/30; address 172.23.169.55/30; } }
Поиск и диагностика подключения
Необходимо проверить прохождение пакетов «Компании А». Для этого заходим на оборудование и
набираем команду show route table CompanyA.inet.0 192.168.0.25
CompanyA.inet.0: 18 destinations, 18 routes (18 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 192.168.0.24/30 *[Direct/0] 13w1d 09:19:46 via ge-0/1/1.10
После отработки команды видим, что интерфейс подключен через гигабитный порт ge-0/1/1.10, смотрим интерфейс командой show interfaces ge-0/1/1.10
show interfaces ge-0/1/1.10 Logical interface ge-0/1/1.10 (Index 10) (SNMP ifIndex 60) Description: CompanyA Flags: SNMP-Traps VLAN-Tag [ 0x8100.10 ] Encapsulation: ENET2 Input packets : 1453 Output packets: 378 Protocol inet, MTU: 9174 Flags: Sendbcast-pkt-to-re Addresses, Flags: Is-Preferred Is-Primary Destination: 192.168.0.24/30, Local: 192.168.0.26, Broadcast: 192.168.0.27 Protocol multiservice, MTU: Unlimited
Находим локальный IP, в нашем примере это Local: 192.168.0.26 и пробует его пропинговать
ping routing-instance companyA 192.168.0.26
PING 192.168.0.26 (192.168.0.26): 56 data bytes 64 bytes from 192.168.0.26: icmp_seq=0 ttl=64 time=0.363 ms 64 bytes from 192.168.0.26: icmp_seq=1 ttl=64 time=0.025 ms 64 bytes from 192.168.0.26: icmp_seq=2 ttl=64 time=0.025 ms 64 bytes from 192.168.0.26: icmp_seq=3 ttl=64 time=0.024 ms 64 bytes from 192.168.0.26: icmp_seq=4 ttl=64 time=0.024 ms