Сетевое оборудование Juniper - c англ. "можжевельник" (коммутаторы, маршрутизаторы, межсетевые экраны и др.) базируется на операционной системе Junos OS (основана на FreeBSD). CLI Junos OS отличается от привычного многим CLI Cisco IOS. Ниже рассмотрим примеры настройки базового функционала устройств на основе Junos OS.
Основы CLI Junos OS/Базовая настройка устройства (Part1):
Junos OS имеет UNIX shell и 2 основных режима CLI: 1) Operational mode 2) Configuration mode
UNIX shell - UNIX составляющая Junos OS, в ней доступен только стандартный набор unix/linux команд.
Operational mode - основной режим CLI Junos OS, служит для вывода информации о состоянии устройства, протоколов и т.д. - аналог Cisco user/exec modes.
Configuration mode - режим конфигурации устройства.
Обозначение разных режимов в консоли устройства:
% - UNIX shell
> - Operational mode
# - Configuration mode
После загрузки устройства Junos OS попросит ввести логин и пароль:
1. Configuration mode:
Есть 2 вида конфигурации в Junos:
1) Active configuration - в терминологии Cisco это running-config.
2) Candidate configuration - конфигурация с неподтвержденными изменениями в ней (Uncommitted changes).
Посмотреть внесенную, но не примененную конфигурацию (uncommitted changes) в режиме конфигурации можно с использованием команды "show | compare", где "+" это конфигурация, которая будет добавлена в активную после выполнения commit, а "-" которая будет удалена.
Применение конфигурации, как уже было показано выше, выполняется командой "commit". У этой команды существуют дополнительные опции:
"commit check" - позволяет проверить внесенную конфигурацию на предмет ошибок, без применения. Junos в процессе конфигурации никогда не скажет, что что-то нельзя настроить, или что-то некорректно, все ошибки он проверяет только когда конфигурация применяется или производится проверка через "commit check".
- Создание rescue configuration:
Выход из режима конфигурации можно выполнять отдельными командами ("quit configuration- mode";"exit configuration-mode"), или можно совместить commit и выход из режима конфигурации командой "commit and-quit":
- "show" - зависит от того, в каком режиме выполняется.
В Configuration mode показывает конфигурацию для того уровня иерархии в котором сейчас находимся, например show, выполненный на уровне [edit], покажет всю конфигурацию устройства - candidate configuration (аналог "do show run" в Cisco IOS)
- "edit" - служит для перемещения внутрь иерархии конфигурации
- "up" - подняться в иерархии конфигурации на уровень вверх, up 2 - на два уровня, и т.д.
- "top" - подняться с любого уровня в конфигурации до корня [edit]
- "set" - внести изменения в конфигурацию (добавить конфигурацию)
- "delete" - внести изменения в конфигурацию (удалить конфигурацию)
- "deactivate" - позволяет временно отключить часть конфигурации (сделать её неактивной), без удаления:
- "disable" - отключить протокол или интерфейс (admin down):
Настройка порядка аутентификации на устройстве:
radius - RADIUS server
password - local DB of device (всегда рекомендуется оставлять)
Local DB будет проверятся даже в том случае, если настроено authentication-order [radius tacplus], но ни один из серверов не отвечает. Если хотя бы 1 сервер отвечает (отправляет устройству accept или reject) то local DB проверяться не будет!
Базовая настройка TACACS+/RADIUS:
Класс пользователя (login class) - именованный контейнер, который группирует набор разрешающих правил. По умолчанию доступно 4:
1) super-user: All permissions
2) operator: clear, network, reset, trace, view
3) read-only: view
4) unauthorized: no permissions
Каждый пользователь может находиться только в одном login class!
Настройка интерфейсов:
В Junos OS есть понятие unit - это некий аналог subinterface в Cisco IOS. Все интерфейсы обязательно должны иметь unit. По умолчанию на интерфейсы назначен unit 0 (это можно трактовать как простой L2/L3 интерфейс в IOS). В конфигурации устройства unit разделяет собой физические свойства интерфейса (скорость, дуплекс и т.д.) и логические (ip адрес, protocol family и т.д.):
(Физические характеристики интерфейса)
unit number {
(Логические характеристики интерфейса)
Если необходимо настроить IP-адрес на интерфейсе (сделать его как native L3 routed интерфейс), или настроить как простой L2 switchport интерфейс (не важно Trunk или Access), то это обязательно должен быть unit 0 (так же это касается PPP и HDLC), например:
3) Routed Vlan Interface (RVI)
Аналог SVI в Cisco IOS. Но если в IOS при создании SVI номер VLAN автоматически ассоциируется с номером SVI интерфейса (interface vlan 10), то в Junos OS нужно отдельно привязывать номер VLAN к номеру RVI интерфейса, и они технически могут не совпадать (но лучше, чтобы они совпадали):
"show ethernet-switching interfaces" - покажет если это trunk порт(tagged) или access(untagged), STP статус порта.
"show vlans [brief]" - покажет список VLAN и участвующих интерфейсов.\
Настройка Link Aggregation (LACP):
В Junos OS агрегированный интерфейс называется aggregated ethernet (ae). То же самое что и Port-channel в Cisco.
Для того, чтобы настраивать такие интерфейс, необходимо сначала их создать глобально:
Добавление физических интерфейсов (перед добавлением рекомендуется удалить интерфейсы, т.к. в них не должно быть unit0 и других настроек: "logical unit is not allowed on aggregated links"):
"show lacp interfaces" - интерфейсы, участвующие в LACP, их роль (на локальном устройстве и на удаленной стороне)
"show spanning-tree interface" - агрегированный интерфейс с точки зрения STP (если настроен L2 LAG).
Spanning-tree в Junos OS:
По умолчанию на коммутаторах Juniper работает STP/RSTP протокол, но в отличие от Cisco c её PVST или Rapid-PVST, на Juniper 1 instance для всех VLAN. Для per-vlan spanning-tree необходимо настраивать протокол VSTP.
"show spanning-tree interfaces" - участвующие в STP интерфейсы, их cost, состояние и роль.
"show spanning-tree bridge" - настройки STP на коммутаторе в целом.
Особенности маршрутизации в Junos OS:
В Junos OS вместо AD - Administrative Distance используется термин Route Preference. Значения Route Preference по умолчанию:
Junos OS так же автоматически создает и поддерживает несколько таблиц маршрутизации (в зависимости от настроек):
inet.0 - IPv4 unicast routes
inet.1 - IPv4 multicast forwarding cache
inet.2 - Unicast routes that are used for multicast reverse-path-forwarding (RPF) lookup
inet.3 - IPv4 MPLS
inet6.0 - IPv6 unicast routes
inet6.1 - IPv6 multicast forwarding cache
mpls.0 - MPLS label switching operations
bgp.l2vpn.0 - Layer 2 VPN routes learned from BGP
bgp.l3vpn.0 - Layer 3 VPN routes learned from BGP
Просмотр отдельной таблицы маршрутизации (например inet.0):
dest - Remote addresses directly reachable through an interface
intf - Installed as a result of configuring an interface
perm - Routes installed by the kernel
user - Routes installed by the routing protocol process or as a result of the configuration
iddn - Destination route for which the interface is unreachable
Router ID для динамических протоколов маршрутизации создается глобально на всё шасси и действует для всех протоколов:
Статическая маршрутизация настраивается в [edit routing-option]. Пример default route:
1) reject - сбросить пакет и отправить ICMP сообщение отправителю (type 3, code 4)
2) discard - сбросить пакет "молча"
- Опция "no-readvertise" - запрещает производить редистрибуцию этого статического маршрута в другие протоколы маршрутизации через Routing Policy (в OSPF, например).
"show route protocol static" - таблица маршрутизации, с выводом только статических маршрутов.
Настройка RIP:
Default Routing Policy для RIP:
Import - accept all RIP routes
Export - reject everything
Настройку добавлю при необходимости!
Настройка OSPF:
Default Routing Policy для OSPF:
Import - accept all OSPF routes
Export - reject everything (but floods LSA by default !)
Routing Policy не может контролировать LSA flooding, reject everything в данном случае значит то, что из таблицы маршрутизации ничего не анонсируется соседям по умолчанию, но так как OSPF это Link-State протокол, то это не проблема для достижения полной сходимости и обмена OSPF маршрутами!
Основные настройки OSPF:
Проверки OSPF:
"show ospf neigbor" - таблица соседей
"show route protocol ospf" - таблица маршрутизации с выводом только OSPF маршрутов
"show ospf interface ge-0/0/0 detail" - детальное описание интерфейса, на котором запущен OSPF
Настройка BGP:
Default Routing Policy для BGP:
Import - accept all BGP routes
Export - accept all active BGP routes
Первым делом необходимо настроить номер автономной системы устройства:
Минимальная настройка EBGP:
Логирование:
Все логи хранятся в /var/log
Настройки логирования производятся в [edit system syslog]
host "ip-address" - удаленный syslog сервер
archive - как логи будут архивиться на устройстве
console - настройки логирования в консоль устройства
Обновление Junos OS:
Обновление рекомендуется производить путем предварительной загрузки новой версии ПО на само устройство (по протоколу SCP или FTP) в директорию /var/tmp
Проверка MD5 перед обновлением:
Если после обновления имеются проблемы, можно загрузиться с backup раздела в предыдущую версию ПО (он по умолчанию не обновляется сразу):
Сохранение конфигурации в файл выполняется в режиме конфигурации:
Загрузка конфигурации выполняется при помощи команды "load":
"merge" - слить текущую конфигурацию и загружаемую вместе (наложить друг на друга)
"override" - полностью заменить текущую конфигурацию (только из [edit])
"set" - позволяет загрузить конфигурацию в set командах из терминал или из файла
"terminal" - заливать конфигурацию из терминала
Troubleshooting:
System:
Физические:
MM-FPC/PIC/Port (пример ge-0/0/10)
MM - Media Type (fe - Fast Ethernet; ge - Gigabit Ethernet; se - Serial)
FPC - Flexible PIC Controller (линейная карта, устанавливаемая в шасси (MX), либо всё устройство целиком, в случае фиксированной конфигурации (EX switch))
PIC - Physical Interface Card (портовая карта, устанавливаемая в FPC)
Port - Конкретный физический порт
Системные процессы Junos OS (daemons):
rpd - routing protocol daemon - отвечает все протоколы маршрутизации
mgd - management daemon - отвечает за управление оборудованием
dcd - device control daemon - отвечает за конфигурацию интерфейсов
chassisd - отвечает за мониторинг состояния всего шасси
snmpd - SNMP daemon
Архитектура Junos OS:
--------
v.1.00
Основы CLI Junos OS/Базовая настройка устройства (Part1):
Junos OS имеет UNIX shell и 2 основных режима CLI: 1) Operational mode 2) Configuration mode
UNIX shell - UNIX составляющая Junos OS, в ней доступен только стандартный набор unix/linux команд.
Operational mode - основной режим CLI Junos OS, служит для вывода информации о состоянии устройства, протоколов и т.д. - аналог Cisco user/exec modes.
Configuration mode - режим конфигурации устройства.
Обозначение разных режимов в консоли устройства:
% - UNIX shell
> - Operational mode
# - Configuration mode
После загрузки устройства Junos OS попросит ввести логин и пароль:
Все платформы "из коробки" имеют только пользователя root, без пароля. После ввода логина мы попадаем в UNIX shell (root@%). Слово Amnesiac говорит о том, что устройство имеет конфигурацию по умолчанию (не настроено).
Переход из UNIX shell в CLI Junos OS (Operational mode) выполняется командой "cli":
root@% cliПереход из Operational mode в Configuration mode выполняется командой "configure":
root>
root> configureДля того, чтобы вносить и сохранять конфигурации на устройстве обязательно требуется настроить пароль для root пользователя (без него не получится выполнить commit):
Entering configuration mode
[edit]
root#
root# set system root-authentication plain-text-passwordНастройка hostname (имя устройства) выполняется командой "set system host-name":
New password:
Retype new password:
[edit]
root#
root# set system host-name SRXСоздание нового пользователя (admin) с root правами (class super-user):
root# set system login user admin authentication plain-text-passwordНастройка временной зоны и NTP (имя NTP сервера должно "резолвиться", в противном случае нужно настраивать IP адрес):
root# set system login user admin class super-user
root# set system time-zone Europe/MoscowНастройка доступа по SSH:
root# set system ntp server 0.pool.ntp.org
root# set system ntp boot-server 0.pool.ntp.org
root# set system services sshНастройка DNS(Google DNS, например):
root# set system services ssh protocol-version v2
root# set system name-server 8.8.8.8Основная особенность Junos OS в том, что вся конфигурация не применяется на лету, как у Cisco, например, её обязательно нужно применять командой "commit":
root# commitВыход из режима конфигурации осуществляется командой "quit configuration-mode" или "exit configuration-mode"(с любого уровня конфигурации):
commit complete
[edit]
root@SRX#
root@SRX# quit configuration-modeПерезагрузка и выключение устройства:
Exiting configuration mode
root@SRX>
/ПерезагрузкаСброс настроек к заводским:
root@SRX> request system reboot
/Выключение
root@SRX> request system halt
root@SRX# load factory-defaultОсновы CLI Junos OS (Part2):
/т.к. после введения команды все настройки сбросятся, то необходимо заново настроить root password. Так же обязательно необходимо выполнить commit
1. Configuration mode:
Есть 2 вида конфигурации в Junos:
1) Active configuration - в терминологии Cisco это running-config.
2) Candidate configuration - конфигурация с неподтвержденными изменениями в ней (Uncommitted changes).
Посмотреть внесенную, но не примененную конфигурацию (uncommitted changes) в режиме конфигурации можно с использованием команды "show | compare", где "+" это конфигурация, которая будет добавлена в активную после выполнения commit, а "-" которая будет удалена.
Применение конфигурации, как уже было показано выше, выполняется командой "commit". У этой команды существуют дополнительные опции:
"commit check" - позволяет проверить внесенную конфигурацию на предмет ошибок, без применения. Junos в процессе конфигурации никогда не скажет, что что-то нельзя настроить, или что-то некорректно, все ошибки он проверяет только когда конфигурация применяется или производится проверка через "commit check".
root@SRX# commit checkКаждый успешный "commit" сохраняет копию конфигурации в т.н. commit database, которая хранит до 50 последних конфигураций. Это позволяет откатиться на одну из сохраненных конфигураций позднее, используя команду "rollback" и номер конфигурации (0-49). Посмотреть commit database (покажет когда был выполнен commit, а так же кем и когда):
configuration check succeeds
[edit]
root@SRX#
> show system commitДля просмотра конфигурации отдельного rollback используется команда "show system rollback" далее указывается его номер.
/покажет конфигурацию rollback 2rollback 0 (или просто rollback) откатит конфигурацию к последнему успешному commit (т.е. rollback 0 - вернет конфигурацию к current active configuration):
> show system rollback 2
root@SRX# rollback 0"commit confirmed" - полезная команда, особенно когда настройка осуществляется удаленно. Применяет конфигурацию, но автоматически откатится (Junos фактически сделает rollback 1), если не будет дополнительно введена команда "commit" в течение определенного времени (по умолчанию через 10 минут)
load complete
[edit]
root@SRX#
root@SRX# commit confirmedScheduled commit позволяет производить commit в определенное время, выполняется командой "commit at". Полезно, когда необходимо синхронизировать применение новой конфигурации на нескольких устройствах. Пример:
configuration check succeeds
commit confirmed will be automatically rolled back in 10 minutes unless confirmed
commit complete
# commit confirmed will be rolled back in 10 minutes
[edit]
root@SRX#
root@SRX# commit at 23:55:00"clear system commit" отменяет scheduled commit:
configuration check succeeds
commit at will be executed at 2016-06-08 23:55:00 MSK
Exiting configuration mode
root@SRX>
root@SRX> clear system commit"commit synchronize" - производит commit на всех доступных RE (для устройств с несколькими RE) - по умолчанию синхронизации между RE при выполнении простого "commit" не происходит. Можно включить синхронизацию конфигурации между RE по умолчанию:
Pending commit cleared
root@SRX>
# set system commit synchronizeRescue configuration - позволяет сохранить текущую конфигурацию (active configuration) в commit database, к которой в любое время можно откатиться (не перезаписывается другими commit, живет отдельно). Данная конфигурация должна содержать root password.
/теперь, при выполнении простого commit, конфигурация будет синхронизироваться между RE
- Создание rescue configuration:
user@SRX> request system configuration rescue save- Откат к rescue configuration:
root@SRX# rollback rescue- Удаление rescue configuration:
load complete
[edit]
root@SRX#
root@SRX> request system configuration rescue deleteRescue configuration рекомендуется сохранять с минимальным набором необходимых настроек!
Выход из режима конфигурации можно выполнять отдельными командами ("quit configuration- mode";"exit configuration-mode"), или можно совместить commit и выход из режима конфигурации командой "commit and-quit":
root@SRX# commit and-quitВ режиме конфигурации Junos OS в квадратных скобках всегда показывает на каком уровне иерархии мы находимся, в отличие от Cisco IOS, что очень удобно при настройке:
commit complete
Exiting configuration mode
root@SRX>
/Вся конфигурация устройстваОсновные команды конфигурационного режима:
[edit]
root@SRX# edit system
/Конфигурация параметров системы
[edit system]
root@SRX# top edit interfaces
/Конфигурация всех интерфейсов
[edit interfaces]
root@SRX# edit ge-0/0/0
/Конфигурация интерфейса ge-0/0/0
[edit interfaces ge-0/0/0]
root@SRX#
- "show" - зависит от того, в каком режиме выполняется.
В Configuration mode показывает конфигурацию для того уровня иерархии в котором сейчас находимся, например show, выполненный на уровне [edit], покажет всю конфигурацию устройства - candidate configuration (аналог "do show run" в Cisco IOS)
- "edit" - служит для перемещения внутрь иерархии конфигурации
- "up" - подняться в иерархии конфигурации на уровень вверх, up 2 - на два уровня, и т.д.
- "top" - подняться с любого уровня в конфигурации до корня [edit]
- "set" - внести изменения в конфигурацию (добавить конфигурацию)
- "delete" - внести изменения в конфигурацию (удалить конфигурацию)
- "deactivate" - позволяет временно отключить часть конфигурации (сделать её неактивной), без удаления:
# deactivate protocols stp- "activate" - сделать конфигурацию активной вновь (# activate interfaces ge-0/0/0)
- "disable" - отключить протокол или интерфейс (admin down):
# set interface ge-0/0/0 disable- "copy" - скопировать часть конфигурации, например с одного интерфейса на другой:
# delete interfaces ge-0/0/4- "rename" - позволяет перемещать часть конфигурацию из одной секции в другую, например с одного интерфейса на другой:
# copy interfaces ge-0/0/3 to ge-0/0/4
# delete interfaces ge-0/0/4Другой пример - поменять один IP адрес на интерфейсе на другой:
# rename interfaces ge-0/0/3 to ge-0/0/4
/Вся конфигурация с ge-0/0/3 переместится на ge-0/0/4, интерфейса ge-0/0/3 больше не будет существовать в конфигурации.
# rename interfaces ge-0/0/3 unit 0 family inet address 192.168.1.1/24 to address 192.168.2.1/24
- "commit" - применение конфигурации (работает с любого уровня иерархии, если вы не в режиме configure private - "can only commit from top of private configuration")
- "rollback" - откатиться до одной из предыдущих конфигураций
- "run" - позволяет выполнять operational mode команды из configuration mode (#run show route, например)
Опции входа в режим конфигурации:
По умолчанию несколько пользователей могут входить в режим конфигурации устройства и выполнять "commit".
"configure exclusive" - позволяет только одному пользователю править и применять конфигурацию. В этом режиме все изменения в candidate configuration которые не были сохранены пропадают: "uncommitted changes will be discarded on exit". Второй пользователь, вошедший на устройство сможет выполнять правки в конфигурации, но при попытке выполнить "commit" получит сообщение: "error: configuration database locked by:".
"configure private" - позволяет нескольким пользователям править и применять конфигурацию независимо друг от друга - у каждого будет своя приватная копия конфигурация, а "commit" и "rollback" не будет затрагивать конфигурацию другого пользователя. В этом режиме так же все изменения в candidate configuration которые не были сохранены пропадают: "uncommitted changes will be discarded on exit".
! Если пользователь находится в режиме configure private, то второй, вошедший в режим конфигурации с помощью команды "configure" не сможет производить "commit":"error: private edits in use. Try 'configure private' or 'configure exclusive'."
! Если пользователь находится в режиме configure и уже произвел изменения в конфигурации, то второй пользователь не сможет зайти в режим конфигурации ни как "configure exclusive", ни как "configure private":"error: shared configuration database modified"
2. Operational mode:
Команда "show" в Operational mode показывает статус системы, интерфейсов, протоколов и т.д., "show configuration" покажет конфигурацию устройства - active configuration (аналог "show run" в Cisco IOS)
Уровни детализации вывода команд в Operational mode от самого краткого до наиболее подробного:
"terse"
"brief"
"detail"
"extensive"
Пример:
| match - аналог include в Cisco IOS
| except - аналог exclude в Cisco IOS
| find - аналог begin в Cisco IOS
| display set - показывает плоскую конфигурацию устройства с использованием набора set команд:
"help apropos" - покажет все доступные команды, содержащие ключевое слово (# help apropos ospf)
"help tip cli" - покажет случайную подсказку по конфигурации JunOS
"help reference" - инструкция по конфигурации той или иной команды, синтаксис и прочее
"help topic" - инструкция по применению той или иной команды (# help topic interfaces address)
Аутентификация:
Опции входа в режим конфигурации:
По умолчанию несколько пользователей могут входить в режим конфигурации устройства и выполнять "commit".
"configure exclusive" - позволяет только одному пользователю править и применять конфигурацию. В этом режиме все изменения в candidate configuration которые не были сохранены пропадают: "uncommitted changes will be discarded on exit". Второй пользователь, вошедший на устройство сможет выполнять правки в конфигурации, но при попытке выполнить "commit" получит сообщение: "error: configuration database locked by:".
"configure private" - позволяет нескольким пользователям править и применять конфигурацию независимо друг от друга - у каждого будет своя приватная копия конфигурация, а "commit" и "rollback" не будет затрагивать конфигурацию другого пользователя. В этом режиме так же все изменения в candidate configuration которые не были сохранены пропадают: "uncommitted changes will be discarded on exit".
! Если пользователь находится в режиме configure private, то второй, вошедший в режим конфигурации с помощью команды "configure" не сможет производить "commit":"error: private edits in use. Try 'configure private' or 'configure exclusive'."
! Если пользователь находится в режиме configure и уже произвел изменения в конфигурации, то второй пользователь не сможет зайти в режим конфигурации ни как "configure exclusive", ни как "configure private":"error: shared configuration database modified"
2. Operational mode:
Команда "show" в Operational mode показывает статус системы, интерфейсов, протоколов и т.д., "show configuration" покажет конфигурацию устройства - active configuration (аналог "show run" в Cisco IOS)
Уровни детализации вывода команд в Operational mode от самого краткого до наиболее подробного:
"terse"
"brief"
"detail"
"extensive"
Пример:
> show interfaces terseФильтрация вывода show команд:
| match - аналог include в Cisco IOS
| except - аналог exclude в Cisco IOS
| find - аналог begin в Cisco IOS
| display set - показывает плоскую конфигурацию устройства с использованием набора set команд:
> show configuration | display setHelp команды Operational mode:
"help apropos" - покажет все доступные команды, содержащие ключевое слово (# help apropos ospf)
"help tip cli" - покажет случайную подсказку по конфигурации JunOS
"help reference" - инструкция по конфигурации той или иной команды, синтаксис и прочее
"help topic" - инструкция по применению той или иной команды (# help topic interfaces address)
Аутентификация:
Настройка порядка аутентификации на устройстве:
# set system authentication order [tacplus | radius | password]tacplus - TACACS+ server
radius - RADIUS server
password - local DB of device (всегда рекомендуется оставлять)
Local DB будет проверятся даже в том случае, если настроено authentication-order [radius tacplus], но ни один из серверов не отвечает. Если хотя бы 1 сервер отвечает (отправляет устройству accept или reject) то local DB проверяться не будет!
Базовая настройка TACACS+/RADIUS:
# set system tacplus-server 10.0.0.254Авторизация пользователей (управление правами):
# set system radius-server 10.0.0.254
Класс пользователя (login class) - именованный контейнер, который группирует набор разрешающих правил. По умолчанию доступно 4:
1) super-user: All permissions
2) operator: clear, network, reset, trace, view
3) read-only: view
4) unauthorized: no permissions
Каждый пользователь может находиться только в одном login class!
Настройка интерфейсов:
В Junos OS есть понятие unit - это некий аналог subinterface в Cisco IOS. Все интерфейсы обязательно должны иметь unit. По умолчанию на интерфейсы назначен unit 0 (это можно трактовать как простой L2/L3 интерфейс в IOS). В конфигурации устройства unit разделяет собой физические свойства интерфейса (скорость, дуплекс и т.д.) и логические (ip адрес, protocol family и т.д.):
(Физические характеристики интерфейса)
unit number {
(Логические характеристики интерфейса)
Если необходимо настроить IP-адрес на интерфейсе (сделать его как native L3 routed интерфейс), или настроить как простой L2 switchport интерфейс (не важно Trunk или Access), то это обязательно должен быть unit 0 (так же это касается PPP и HDLC), например:
/L3 interfaceAddress Family Identifier (AFI) Junos OS (определяет протокол, который будет работать на интерфейсе - тип интерфейса):
#set interfaces ge-0/0/0 unit 0 family inet address 192.168.0.1/24
/L2 interface
#set interfaces ge-0/0/0 unit 0 family ethernet-switching
- family ethernet-switching - L2 порт (switchport in Cisco IOS)
- family inet - L3 порт IPv4 (IPv4 routed port/no switchport in Cisco IOS)
- family inet6 - L3 порт IPv6 (IPv6 routed port/no switchport in Cisco IOS)
- family mpls - MPLS
- family iso - IS-IS routing
Настройка L3 Routed интерфейса:
"preferred" - эта опция используется когда несколько IP адресов назначаются на 1 интерфейс и они принадлежат одной подсети. Preferred адрес будет использоваться как адрес источника для узлов в directly connected сети. По умолчанию (если опция не прописана) выбирается наименьший адрес из настроенных.
"primary" - эта опция позволяет помечать какой адрес будет использоваться для генерации broadcast и multicast сообщений, а так же будет использоваться когда пакет необходимо отправить в другую подсеть (не directly connected). По умолчанию (если опция не прописана) выбирается наименьший адрес из настроенных.
Настройка Router-on-a-stick:
#set interfaces ge-0/0/0 unit 0 family inet address 192.168.0.1/24На один интерфейс в Junos OS можно назначать несколько IP адресов, при настройке он не заменится на новый, как на оборудовании Cisco.
#set interfaces ge-0/0/0 unit 0 family inet address 192.168.0.2/24 preffered
/
#set interfaces ge-0/0/1 unit 0 family inet address 192.168.1.1/24
#set interfaces ge-0/0/1 unit 0 family inet address 192.168.2.1/24 primary
"preferred" - эта опция используется когда несколько IP адресов назначаются на 1 интерфейс и они принадлежат одной подсети. Preferred адрес будет использоваться как адрес источника для узлов в directly connected сети. По умолчанию (если опция не прописана) выбирается наименьший адрес из настроенных.
"primary" - эта опция позволяет помечать какой адрес будет использоваться для генерации broadcast и multicast сообщений, а так же будет использоваться когда пакет необходимо отправить в другую подсеть (не directly connected). По умолчанию (если опция не прописана) выбирается наименьший адрес из настроенных.
Настройка Router-on-a-stick:
/Включение тэгирования на интерфейсе
#set interfaces ge-0/0/0 vlan-tagging
/Привязка unit к vlan-id (номер юнита и vlan-id технически могут не совпадать)
#set interfaces ge-0/0/0 unit 10 vlan-id 10
#set interfaces ge-0/0/0 unit 20 vlan-id 20
/Назначение IP адреса на подинтерфейсы
#set interfaces ge-0/0/0 unit 10 family inet address 192.168.10.1/24
#set interfaces ge-0/0/0 unit 20 family inet address 192.168.20.1/24
Если на интерфейсе настроен по умолчанию family ethernet-switching в unit 0, то его необходимо удалить, т.к. vlan-tagging и family ethernet-switching взаимоисключающие настройки.
Настройка Ethernet-Switching:
Создание VLAN в Junos OS:
#set vlans VLAN10 vlan-id 10
#set vlans VLAN20 vlan-id 20
1) Access port
/Режим портов по умолчанию на коммутаторах Juniper EX (access vlan 1 - default vlan)
#set interfaces ge-0/0/0 unit 0 family ethernet-switching
#set interfaces ge-0/0/0 unit 0 family ethernet-switching port-mode access
#set interfaces ge-0/0/0 unit 0 family ethernet-switching vlan-members VLAN10
2) Trunk port
#set interfaces ge-0/0/0 unit 0 family ethernet-switching port-mode trunk
#set interfaces ge-0/0/0 unit 0 family ethernet-switching vlan members [name | all]
По умолчанию trunk порт не разрешает прохождение в нем никаких VLAN! Все VLAN в trunk порту тегируются, т.е. Native VLAN отсутствует, при необходимости (например, если trunk между коммутатором Cisco и Juniper) его можно настроить:
#set interfaces ge-0/0/0 unit 0 family ethernet-switching native-vlan-id 1При этом native VLAN необходимо удалить из разрешенных в trunk "vlan members".
3) Routed Vlan Interface (RVI)
Аналог SVI в Cisco IOS. Но если в IOS при создании SVI номер VLAN автоматически ассоциируется с номером SVI интерфейса (interface vlan 10), то в Junos OS нужно отдельно привязывать номер VLAN к номеру RVI интерфейса, и они технически могут не совпадать (но лучше, чтобы они совпадали):
#set vlans VLAN10 l3-interface vlan.10
#set interfaces vlan unit 10 family inet address 192.168.10.10/24
#set vlans VLAN20 l3-interface vlan.20
#set interfaces vlan unit 20 family inet address 192.168.20.20/24
root@EX1> show configuration vlansПроверки:
VLAN10 {
vlan-id 10;
l3-interface vlan.10;
}
VLAN20 {
vlan-id 20;
l3-interface vlan.20;
}
root@EX1> show configuration interfaces vlan
unit 10 {
family inet {
address 192.168.10.10/24;
}
}
unit 20 {
family inet {
address 192.168.20.20/24;
}
}
"show ethernet-switching interfaces" - покажет если это trunk порт(tagged) или access(untagged), STP статус порта.
"show vlans [brief]" - покажет список VLAN и участвующих интерфейсов.\
Настройка Link Aggregation (LACP):
В Junos OS агрегированный интерфейс называется aggregated ethernet (ae). То же самое что и Port-channel в Cisco.
Для того, чтобы настраивать такие интерфейс, необходимо сначала их создать глобально:
/создание 2-х ae интерфейсовКоличество интерфейсов, которые можно создать, зависит от аппаратной платформы. Все агрегированные интерфейсы сразу появятся в списке интерфейсов устройства и будут доступны для настройки. Т.е. если device-count = 2, то будут созданы ae0 и ae1.
#set chassis aggregated-devices ethernet device-count 2
Добавление физических интерфейсов (перед добавлением рекомендуется удалить интерфейсы, т.к. в них не должно быть unit0 и других настроек: "logical unit is not allowed on aggregated links"):
#set interfaces ge-0/0/10 ether-options 802.3ad ae0Настройка LACP на агрегированном интерфейсе:
#set interfaces ge-0/0/11 ether-options 802.3ad ae0
#set interfaces ae0 aggregated-ether-options lacp [active | passive]Настройка ethernet-switching на агрегированном интерфейсе (L2 LAG):
#set interfaces ae0 unit 0 family ethernet-switchingНастройка ip routing на агрегированном интерфейсе (L3 LAG):
/настройки trunk/access так же выполняются на интерфейсе ae0
#set interfaces ae0 unit 0 family inet address 20.0.0.1/30Проверки:
"show lacp interfaces" - интерфейсы, участвующие в LACP, их роль (на локальном устройстве и на удаленной стороне)
"show spanning-tree interface" - агрегированный интерфейс с точки зрения STP (если настроен L2 LAG).
Spanning-tree в Junos OS:
По умолчанию на коммутаторах Juniper работает STP/RSTP протокол, но в отличие от Cisco c её PVST или Rapid-PVST, на Juniper 1 instance для всех VLAN. Для per-vlan spanning-tree необходимо настраивать протокол VSTP.
# set protocols stpНастройка bridge priority:
/или
# set protocols rstp
/или
# set protocols mstp
/или
# set protocols vstp vlan all
/для STPНастройка STP cost:
# set protocols stp bridge-priority 4k
/для RSTP
# set protocols rstp bridge-priority 4k
/для MSTP
# set protocols mstp msti 1 bridge-priority 4k
/для VSTP
# set protocols vstp vlan vlan10 bridge-priority 4k
/для STPEdge port (STP Portfast):
# set protocols stp interface ge-0/0/0 cost 10
/для RSTP
# set protocols rstp interface ge-0/0/0 cost 10
/для MSTP
# set protocols mstp msti 1 interface ge-0/0/0 cost 10
/для VSTP
# set protocols vstp vlan vlan10 interface ge-0/0/0 cost 10
#set protocols rstp interface ge-0/0/0 edgeПроверки STP:
"show spanning-tree interfaces" - участвующие в STP интерфейсы, их cost, состояние и роль.
"show spanning-tree bridge" - настройки STP на коммутаторе в целом.
Особенности маршрутизации в Junos OS:
В Junos OS вместо AD - Administrative Distance используется термин Route Preference. Значения Route Preference по умолчанию:
Junos OS так же автоматически создает и поддерживает несколько таблиц маршрутизации (в зависимости от настроек):
inet.0 - IPv4 unicast routes
inet.1 - IPv4 multicast forwarding cache
inet.2 - Unicast routes that are used for multicast reverse-path-forwarding (RPF) lookup
inet.3 - IPv4 MPLS
inet6.0 - IPv6 unicast routes
inet6.1 - IPv6 multicast forwarding cache
mpls.0 - MPLS label switching operations
bgp.l2vpn.0 - Layer 2 VPN routes learned from BGP
bgp.l3vpn.0 - Layer 3 VPN routes learned from BGP
Просмотр отдельной таблицы маршрутизации (например inet.0):
> show route table inet.0Просмотр forwarding-table:
> show route forwarding-tableОсновные типы маршрутов в forwarding-table:
dest - Remote addresses directly reachable through an interface
intf - Installed as a result of configuring an interface
perm - Routes installed by the kernel
user - Routes installed by the routing protocol process or as a result of the configuration
iddn - Destination route for which the interface is unreachable
Router ID для динамических протоколов маршрутизации создается глобально на всё шасси и действует для всех протоколов:
# set routing-option router-id 1.1.1.1Настройка Static Routing:
Статическая маршрутизация настраивается в [edit routing-option]. Пример default route:
#set routing-option static route 0.0.0.0/0 next-hop 10.0.0.1Вместо next-hop есть возможность прописать 2 опции для сброса маршрута (Null0 в терминологии Cisco):
1) reject - сбросить пакет и отправить ICMP сообщение отправителю (type 3, code 4)
2) discard - сбросить пакет "молча"
- Опция "no-readvertise" - запрещает производить редистрибуцию этого статического маршрута в другие протоколы маршрутизации через Routing Policy (в OSPF, например).
#set routing-option static route 0.0.0.0/0 next-hop 10.0.0.1 no-readvertise- По умолчанию Junos OS не выполняет recursive lookup для статических маршрутов. Но можно в качестве next-hop добавить адрес не из direct connected сети, для этого необходима опция "resolve". Juniper тогда будет пытаться разрешить этот маршрут через другой статический или через протокол динамической маршрутизации.
#set routing-option static route 20.0.0.0/24 next-hop 30.0.0.1 resolve- Опция "qualified-next-hop" (floating static в терминах Cisco) - можно настроить второй next-hop с увеличенным (можно и со значением меньше 5) значением route preference, и когда основной next-hop станет недоступен, в таблицу маршрутизации будет инсталлирован этот же маршрут через запасной next-hop.
/сеть 30.0.0.0 не directly-connected
#set routing-option static route 0.0.0.0/0 qualified-next-hop 10.0.0.2Проверки Static Routing:
"show route protocol static" - таблица маршрутизации, с выводом только статических маршрутов.
Настройка RIP:
Default Routing Policy для RIP:
Import - accept all RIP routes
Export - reject everything
Настройка OSPF:
Default Routing Policy для OSPF:
Import - accept all OSPF routes
Export - reject everything (but floods LSA by default !)
Routing Policy не может контролировать LSA flooding, reject everything в данном случае значит то, что из таблицы маршрутизации ничего не анонсируется соседям по умолчанию, но так как OSPF это Link-State протокол, то это не проблема для достижения полной сходимости и обмена OSPF маршрутами!
Основные настройки OSPF:
# set protocols ospf area 0 interface ge-0/0/0Если unit не указывается при настройке, Junos OS полагает, что это unit 0 (т.е. ge-0/0/0.0)
# set protocols ospf area 0 interface ge-0/0/1
/настройка Hello/Dead интервалов
# set protocols ospf area 0 interface ge-0/0/0 hello-interval 1 dead-interval 4
/настройка интерфейса как Passive
# set protocols ospf area 0 interface ge-0/0/1 passive
/настройка reference-bandwidth (по умолчанию reference-bandwidth=100Mbps)
# set protocols ospf reference-bandwidth 10g
/настройка метрики вручную
# set protocols ospf area 0 interface ge-0/0/0 metric 10
/настройка интерфейса как point-to-point
# set protocols ospf area 0 interface ge-0/0/0 interface-type p2p
/настройка MD5 аутентификации
# set protocols ospf area 0 interface ge-0/0/0 authentication md5 0 key Juniper
Проверки OSPF:
"show ospf neigbor" - таблица соседей
"show route protocol ospf" - таблица маршрутизации с выводом только OSPF маршрутов
"show ospf interface ge-0/0/0 detail" - детальное описание интерфейса, на котором запущен OSPF
Настройка BGP:
Default Routing Policy для BGP:
Import - accept all BGP routes
Export - accept all active BGP routes
Первым делом необходимо настроить номер автономной системы устройства:
#set routing-options autonomous-system 65000Так же рекомендуется заранее сконфигурировать router-id (настраивается глобально), если он не задан.
Минимальная настройка EBGP:
/название группы: external-peer, тип группы: external (EBGP), internal (IBGP)В Junos OS, в отличие от Cisco IOS, BGP пиры должны обязательно присваиваться к группам.
#set protocols bgp group external-peer type external
/номер удаленной AS
#set protocols bgp group external-peer peer-as 65001
/IPv4 адрес пира в другой AS
#set protocols bgp group external-peer neighbor 192.168.0.2
Логирование:
Все логи хранятся в /var/log
Настройки логирования производятся в [edit system syslog]
host "ip-address" - удаленный syslog сервер
archive - как логи будут архивиться на устройстве
console - настройки логирования в консоль устройства
Обновление Junos OS:
Обновление рекомендуется производить путем предварительной загрузки новой версии ПО на само устройство (по протоколу SCP или FTP) в директорию /var/tmp
Проверка MD5 перед обновлением:
> file checksum md5 /var/tmp/jinstall-ex-2200-12.3R12.4-domestic-signed.tgzОбновление:
> request system software add /var/tmp/jinstall-ex-2200-12.3R12.4-domestic-signed.tgzПосле процедуры обновления нужно обязательно перезагрузить устройство!
Если после обновления имеются проблемы, можно загрузиться с backup раздела в предыдущую версию ПО (он по умолчанию не обновляется сразу):
> request system reboot slice alternateОбновление backup раздела, если всё работает отлично после обновления основного:
> request system snapshot slice alternateУдаление старых файлов, старых log-сообщений:
/опция dry-run покажет файлы, которые будут удалены (list of files to be deleted)Сохранение и загрузка конфигурации:
> request system storage cleanup {dry-run}
Сохранение конфигурации в файл выполняется в режиме конфигурации:
# save "filename"Если не указан путь сохранения, то конфигурация сохраняется в директорию пользователя (например, var/home/admin1)
# save "path/filename"
# save ftp://; scp://
Загрузка конфигурации выполняется при помощи команды "load":
/сбросить устройство к заводским настройкамДругие опции load:
# load factory-default
"merge" - слить текущую конфигурацию и загружаемую вместе (наложить друг на друга)
"override" - полностью заменить текущую конфигурацию (только из [edit])
"set" - позволяет загрузить конфигурацию в set командах из терминал или из файла
"terminal" - заливать конфигурацию из терминала
Troubleshooting:
System:
> show system alarms /показать системные alarmChassis:
> show system boot-messages /показать сообщения, которые выдавались в процессе загрузки устройства
> show system storage /показать информацию о подсистеме хранения
> show system snapshot media internal /показать информацию об основном и backup разделах
> show system storage partitions /показать разделы устройства
> show chassis alarms /показать alarm для устройстваЕcли chassis alarm горит из-за того, что management порт не подключен ("Management Ethernet Link Down"), можно настроить игнорирование данного alarm:
> show chassis environment /показать температуру устройства
> show chassis hardware /показать информацию об устройстве, включая серийный номер
> show chassis firmware /показать версию загрузчика и ПО
> show chassis led /показать информацию о светодиодах на устройстве(работает не на всех)
# set chassis alarm management-ethernet link-down ignoreОбозначение интерфейсов в Junos OS:
Физические:
MM-FPC/PIC/Port (пример ge-0/0/10)
MM - Media Type (fe - Fast Ethernet; ge - Gigabit Ethernet; se - Serial)
FPC - Flexible PIC Controller (линейная карта, устанавливаемая в шасси (MX), либо всё устройство целиком, в случае фиксированной конфигурации (EX switch))
PIC - Physical Interface Card (портовая карта, устанавливаемая в FPC)
Port - Конкретный физический порт
Системные процессы Junos OS (daemons):
rpd - routing protocol daemon - отвечает все протоколы маршрутизации
mgd - management daemon - отвечает за управление оборудованием
dcd - device control daemon - отвечает за конфигурацию интерфейсов
chassisd - отвечает за мониторинг состояния всего шасси
snmpd - SNMP daemon
Архитектура Junos OS:
--------
v.1.00
Комментариев нет:
Отправить комментарий