Juniper: Мелочи

syslog

Включать в лог название категории (Facility) и уровень детальности (Severity):
set system syslog host syslog.tld.kg explicit-priority


Вот уровни детальности:
0 emergency
1 alert
2 critical
3 error
4 warning
5 notice
6 info
7 any

Пример:
Jul 10 19:45:07 212.42.96.132 mx inetd[12468]: %DAEMON-4: /usr/sbin/sshd[97698]: exited, status 255

Регулярные выражения

Понятно, что можно использовать регулярные выражения при выборке из какого-либо вывода через команду match, например:
user@juniper> show interfaces xe-2/3/3 | match "Input|Output"
  Input rate     : 0 bps (0 pps)
  Output rate    : 0 bps (0 pps)


Или найти сразу несколько нужных номеров вланов:
user@juniper> show configuration vlans | display set | match " (6|10|50|250|500)$"


А может, выбрать строки, начинающиеся с четырёх шестнадцатиричных значений (ipv6-пиры):
show bgp summary | match "^[0-9a-f]{4}"

Или вот так:
show bgp summary | match "^[0-9a-f]+:"


Состояния определённых интерфейсов:
show interfaces  terse | match "xe-(1/2/0|1/3/0|2/1/3|2/2/1|2/3/0)"   
xe-1/2/0                up    down
xe-1/3/0                up    up
xe-2/1/3                up    down
xe-2/2/1                up    down
xe-2/3/0                up    up


Однако, регулярные выражения можно использовать и в самих командах, например:
user@juniper> show interfaces xe-[23]/3/[01] terse
Interface               Admin Link Proto    Local                 Remote
xe-2/3/0                up    down
xe-2/3/1                up    down
xe-3/3/0                up    down
xe-3/3/1                up    down


Или вот так:
user@juniper> show interfaces ge-0/0/4[1-5] descriptions     
Interface       Admin Link Description
ge-0/0/41                  RESERVED
ge-0/0/42       up    up   Computer-1
ge-0/0/43       up    up   Computer-2
ge-0/0/45       up    up   Router-1


Информация о трансивере, например, уровень приёма:
show interfaces diagnostics optics xe-2/0/1


Копирование файлов из одного Routing Engine в другой

У каждого Routing Engine свои диски, так что все изменения с файлами, которые мы делаем на мастере, отсутствуют на бэкапе.

Перейти в _другой_ RE можно при помощи вот этой команды:
request routing-engine login other-routing-engine
Или же можно явным образом указать master или backup:
request routing-engine login master
request routing-engine login backup

Работать с файлами из cli можно, хоть и не очень удобно, например, вот так я создал папку на бэкапе и скопировал туда файлы с мастера:
file make-directory re1:/var/home/test/bin
file copy /var/home/test/bin/* re1:/var/home/test/bin

Juniper: Настройка автоматического копирования конфига при коммите

Конфиг роутера Juniper будем сохранять через scp, причём подключаться будем при помощи публичного ключа, а не пароля.
На сервере заводим пользователя juniper.
На роутере из-под пользователя root генерируем ключи:
>start shell
% su -
% ssh-keygen -t rsa -b 4096
cat /root/.ssh/id_rsa.pub


Обращаю внимание, что именно из-под пользователя root, а не из-под обычного пользователя, под которым вы вошли на роутер.

Полученный публичный ключ сохраняем в одну строку на сервере в папке пользователя juniper (в файле /home/juniper/.ssh/authorized_keys):
ssh-rsa AAAA...[очень много символов]... user@router


Теперь собственно автоматическое копирование конфига при коммите:
set system archival configuration transfer-on-commit
set system archival configuration archive-sites "scp://juniper@10.1.1.11/home/juniper"


Конфиги копируются в домашнюю папку юзера juniper /home/juniper:
router_20180303_072352_juniper.conf.gz
router_20180303_072625_juniper.conf.gz


Если на роутере несколько IP-адресов и вы хотите, чтобы по-умолчанию трафик исходил от адреса интерфейса lo0.0, то нужно сделать вот такие настройки:
set interfaces lo0 unit 0 family inet address 10.1.1.2/32 primary
set system default-address-selection


Указанные настройки влияют не только на копирование по scp, так что после коммита, не закрывая текущую сессию, проверьте доступность роутера открыв новую сессию )

Дополнение.

Если про комите выдаётся ошибка:
[edit security]               
  'ssh-known-hosts'           
    warning: statement has no contents; ignored

То нужно ввести ключ хоста, с которого мы подключаемся, в секции security — security: можно вручную, можно запросить с сервера, а можно импортировать его из уже созданного системой роутера. Лично мне последний вариант показался наиболее логичным:
set ssh-known-hosts load-key-file /var/home/user/.ssh/known_hosts

Cisco Radiusd: NAS-Identifier

В логах Radius-а:
[acct_unique] WARNING: Attribute NAS-Identifier was not found in request, unique ID MAY be inconsistent                     


Смотрим дебуг и, действительно, Radius никакого NAS-Identifier не получает.

Включаем на Cisco:
radius-server attribute 32 include-in-access-req
radius-server attribute 32 include-in-accounting-req


Теперь получаем:
NAS-Identifier = «myhost.domain.tld»

ЛУЧШАЯ КОМАНДА ТЕЛЕМАРКЕТИНГА, ИСХОДЯЩИХ КОНТАКТОВ."Хрустальная Гарнитура"


Делимся. Постим. Лайкаем. Комментируем. Верим. Надеемся. Мечтаем. Желаем и требуем приз!!!

Трансляция VLAN-ов на D-Link

Иногда бывает необходимо поменять номер влана на другой. Например, принимаем от клиента транк с порта 2 и транслируем клиентский влан 1600 во влан 600, который дальше уходит с порта 23:
create vlan 600 tag 600
config vlan vlanid 600 add tag 2,23
config qinq ports 23 role nni outer_tpid 0x8100 # по-умолчанию так и должно быть
enable qinq
config qinq ports 2 role uni
create vlan_translation ports 2 replace cvid 1600 svid 600

Если нужно, чтобы через тот же линк проходили также и другие вланы, то нужно прописать их трансляцию самих в себя:
create vlan 601 tag 601
config vlan 601 tag 2,23
create vlan_translation ports 2 replace cvid 601 svid 601

Таким образом получается, что на порту 2 подключен транк клиента, в котором он передаёт два влана — 1600 и 601, и надо передать их в порт 23. Так получилось, что мы не можем передать в порт 23 влан 1600, поэтому мы перенумеровываем его в 600 и передаём дальше.

Подключение репозитория HP с системными утилитами

Management Component Pack

hp-health HPE System Health Application and Command line Utilities
hponcfg HPE RILOE II/iLO online configuration utility
hp-ams HPE Agentless Management Service
hp-snmp-agents Insight Management SNMP Agents for HPE ProLiant Systems
hpsmh HPE System Management Homepage
hp-smh-templates HPE System Management Homepage Templates
hpssacli HPE Command Line Smart Storage Administration Utility
hpssaducli HPE Command Line Smart Storage Administration Diagnostics
hpssa HPE Array Smart Storage Administration Service

Создаём файл с описанием репозитория /etc/yum.repos.d/mcp.repo:
[mcp]
name=Management Component Pack
baseurl=http://downloads.linux.hpe.com/repo/mcp/dist/dist_ver/arch/project_ver
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/GPG-KEY-mcp

Где:
dist          centos, feodra, opensuse, oracle, asianux
   dist_ver      Browse repo to identify supported distribution versions
   arch          i386, x86_64,  amd64(debian/ubuntu)
   project_ver   current, 10.50, 10.40, 10.20, 10.00, 9.30, 9.25, 9.10 (Browse repo to identify supported project versions)

В моём случае (CentOS 6.8) получился вот такой файл:
[mcp]
name=Management Component Pack
baseurl=http://downloads.linux.hpe.com/repo/mcp/centos/6.8/x86_64/current
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/GPG-KEY-mcp


Посмотреть список пакетов из этого репозитория:
# yum --disablerepo="*" --enablerepo="mcp" list available


Установить пакет:
# yum install packagename
Например:
# yum install hp-health

Cisco: DHCP для выдачи DNS-сервера IPv6-клиентам

Есть PPPoE-клиенты, которые получают IPv6-адреса через SLAAC, префикс сети передаётся Radius-сом, также из Radius-а передаётся маршрут на дополнительную подсеть. Но вот адрес DNS-сервера выдать клиенту можно пока только через DHCP. Команда «ipv6 nd ra-dns-server» не работает, avpair «ipv6-dns-servers-addr» тоже.

Впрочем настройка DHCP-сервера для этих задач совсем несложная, заодно передадим и домен по-умолчанию:
!
ipv6 dhcp server IPV6_DHCP
dns-server 2001:db8:1::1
domain-name elcat.kg
!
interface Virtual-Template1
ipv6 nd other-config-flag
ipv6 dhcp server IPV6_DHCP
!

Опция «ipv6 nd other-config-flag» указывает, кто хостам надо использовать DHCP для других настроек, кроме получения адреса:
Hosts should use DHCP for non-address config

CentOS: данные по сетевой карте

# ip -s -s link show eno1
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
    link/ether e0:07:1b:f8:21:64 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    1762937170427 11152407427 0       9422    0       3579554
    RX errors: length   crc     frame   fifo    missed
               0        0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    24857233171258 18559176680 0       0       0       0
    TX errors: aborted  fifo   window heartbeat
               0        0       0       0


# ethtool -g eno1
Ring parameters for eno1:
Pre-set maximums:
RX:             2047
RX Mini:        0
RX Jumbo:       0
TX:             511
Current hardware settings:
RX:             200
RX Mini:        0
RX Jumbo:       0
TX:             511


Поменять текущий параметр (до перезагрузки):
# ethtool -G eno1 rx 1024

Прописать параметр насовсем можно в /etc/sysconfig/network-scripts/ifcfg-eno1:
ETHTOOL_OPTS="-G eno1 rx 1024"

Cisco: IPv6 OSPF

Как настраивать IPv6 на циске писать не буду, да и вообще обойдусь минимумов слов )

Роутер R1
!
interface Vlan111
description R1
ipv6 address FE80::12 link-local
ipv6 address 2001:0db8:1::219/64
ipv6 ospf mtu-ignore
ipv6 ospf 1 area 0
!
router ospfv3 1
router-id 1.1.1.219
passive-interface default
no passive-interface Vlan111
!
address-family ipv6 unicast
area 0 range 2001:0db8::/32
default-information originate
redistribute connected
redistribute static
exit-address-family
!

Роутер R2
!
interface Vlan111
description R2
ipv6 address 2001:0db8:1::247/64
ipv6 ospf 1 area 0
ipv6 ospf mtu-ignore
!
router ospfv3 1
router-id 1.1.1.247
!
address-family ipv6 unicast
passive-interface default
no passive-interface Vlan222
redistribute connected
redistribute static
area 0 range 2001:0db8::/32
exit-address-family
!


Без команды «ipv6 ospf mtu-ignore», заданной на интерфейсах соседи постоянно падают с жалобой «Neighbor Down: Too many retransmissions» и никакие маршруты не передаются.

Команда «default-information originate» на роутере R1 даёт указание роутеру отправлять соседям ещё и default-route.

Несколько команд, чтобы посмотреть интересную информацию:
sh ipv6 route ospf
sh ipv6 ospf database