Показаны сообщения с ярлыком Juniper. Показать все сообщения
Показаны сообщения с ярлыком Juniper. Показать все сообщения

воскресенье, 16 февраля 2014 г.

Juniper SRX два провайдера и VPN NHTB

Удалось покрутить несколько SRX'ов, в результате получилось такое...:
Hints:
Рекомендуется перед commit'ами выполнять show | compare, это покажет изменения с последнего коммита.
---
Настройка VLAN
Создаем VLAN с определнным тэгом и присваиваем ему имя
set vlans VLAN20VOICE vlan-id 20
Создаем SVI интерфейс с нужным адресом
set interfaces vlan unit 20 family inet address 10.254.20.1/24
Связываем VLAN (L2) и SVI (L3)
set vlans VLAN20VOICE l3-interface vlan.20
Помещаем нужный порт в VLAN (в два приема - сначала нужно убрать из "старого" VLAN'а, а потом добавить в новый, иначе commit не пройдет)
delete interfaces ge-0/0/5 unit 0 family ethernet-switching vlan members vlan-trust
set interfaces ge-0/0/5 unit 0 family ethernet-switching vlan members VLAN20VOICE
Для создания VLAN-транкового порта используется только unit 0 интерфейса. Сначала определяем этот порт как транковый, потом добавляем его в VLAN
set interfaces ge-0/0/6 unit 0 family ethernet-switching port-mode trunk
set interfaces ge-0/0/6 unit 0 family ethernet-switching vlan members vlan-trust
set interfaces ge-0/0/6 unit 0 family ethernet-switching vlan members VLAN20VOICE
Для определения native VLAN'а
set interfaces ge-0/0/6 unit 0 family ethernet-switching native-vlan-id 20
Настройка DHCP
set system services dhcp pool 10.254.20.0/24 address-range low 10.254.20.11 high 10.254.20.199
set system services dhcp pool 10.254.20.0/24 router 10.254.20.1
set system services dhcp pool 10.254.20.0/24 name-server 4.2.2.2
set system services dhcp pool 10.254.20.0/24 exclude-address 10.254.20.100
все настройки делаются "внутри" pool'а (можно сделать и "глобальную" настройку через просто set system services dhcp router ... и прочее)
Чтобы все "богатство" (VLAN и DHCP) таки заработало, нужно поместить интерфейсы в security zone'ы и разрешить взаимодействие.
Чтобы не париться с явными разрешениями между зонами (политики), можно сразу разрешить хождение трафика между всеми интерфейсами и зонами:
set security policies default-policy permit-all
но это потенциальная прореха в безопасности! Так что делаем правильно:
set security zones security-zone COLAN interfaces vlan.20 host-inbound-traffic system-services all
set security zones security-zone COLAN interfaces vlan.20 host-inbound-traffic protocols all
Теперь подключенный к порту 6 клиент получит по DHCP адрес и сможет получить выход в сеть.
run show system services dhcp binding
IP address Hardware address Type Lease expires at
10.254.20.11 xx:xx:xx:xx:xx:xx dynamic 201x-xx-xx 17:48:06 MSK
Также помещаем в security zone'ы интерфейсы ко внешним провайдерам:
set security zones security-zone ZISP1 interfaces ge-0/0/14.0 host-inbound-traffic system-services all
set security zones security-zone ZISP1 interfaces ge-0/0/14.0 host-inbound-traffic protocols all
set security zones security-zone ZISP2 interfaces ge-0/0/15.0 host-inbound-traffic system-services all
set security zones security-zone ZISP2 interfaces ge-0/0/15.0 host-inbound-traffic protocols all
delete interfaces ge-0/0/14 unit 0 family ethernet-switching
delete interfaces ge-0/0/15 unit 0 family ethernet-switching
set interfaces ge-0/0/14 unit 0 family inet address 10.0.14.2/24
set interfaces ge-0/0/15 unit 0 family inet address 10.0.15.2/24
Настраиваем маршруты по умолчанию на провайдеров:
set routing-options static route 0.0.0.0/0 next-hop 10.0.14.1
set routing-options static route 0.0.0.0/0 qualified-next-hop 10.0.15.1 preference 10

Настало время настройки NAT
Определим пулы адресов (можно и на интерфейс NAT'ить), несколько вариантов, даже для одного единственного адреса:
set security nat source pool ISP1POOL address 10.0.14.2/32
set security nat source pool ISP2POOL address 10.0.15.2/32 to 10.0.15.2/32
Определяем правила, по которым будет осуществляться преобразование адресов источника (Source NAT)
set security nat source rule-set LAN_to_ISP1 from zone COLAN
set security nat source rule-set LAN_to_ISP1 to zone ZISP1
set security nat source rule-set LAN_to_ISP1 rule DATA_ISP1 match source-address 10.254.10.0/24
set security nat source rule-set LAN_to_ISP1 rule DATA_ISP1 match destination-address 0.0.0.0/0
set security nat source rule-set LAN_to_ISP1 rule DATA_ISP1 then source-nat pool ISP1POOL
set security nat source rule-set LAN_to_ISP1 rule VOICE_ISP1 match source-address 10.254.20.0/24
set security nat source rule-set LAN_to_ISP1 rule VOICE_ISP1 match destination-address 0.0.0.0/0
set security nat source rule-set LAN_to_ISP1 rule VOICE_ISP1 then source-nat pool ISP1POOL
set security nat source rule-set LAN_to_ISP1 rule VIDEO_ISP1 match source-address 10.254.30.0/24
set security nat source rule-set LAN_to_ISP1 rule VIDEO_ISP1 match destination-address 0.0.0.0/0
set security nat source rule-set LAN_to_ISP1 rule VIDEO_ISP1 then source-nat pool ISP1POOL
set security nat source rule-set LAN_to_ISP2 from zone COLAN
set security nat source rule-set LAN_to_ISP2 to zone ZISP2
set security nat source rule-set LAN_to_ISP2 rule TO_ISP2 match source-address 10.254.10.0/24
set security nat source rule-set LAN_to_ISP2 rule TO_ISP2 match source-address 10.254.20.0/24
set security nat source rule-set LAN_to_ISP2 rule TO_ISP2 match source-address 10.254.30.0/24
set security nat source rule-set LAN_to_ISP2 rule TO_ISP2 then source-nat pool ISP2POOL
Варианты с несколькими правилами и с одним правилом с несколькими сетями, также можно добавить и правила, исключающие отдельные подсети (например, подсети назначения через VPN) из NAT'а. Не забываем поставить это правило ВПЕРЕДИ!!! остальных правил:
set security nat source rule-set LAN_to_ISP1 rule VPN_EXEPT match source-address 10.254.10.0/24
set security nat source rule-set LAN_to_ISP1 rule VPN_EXEPT match source-address 10.254.20.0/24
set security nat source rule-set LAN_to_ISP1 rule VPN_EXEPT match source-address 10.254.30.0/24
set security nat source rule-set LAN_to_ISP1 rule VPN_EXEPT match destination-address 172.16.0.0/12
set security nat source rule-set LAN_to_ISP1 rule VPN_EXEPT then source-nat off
ставим это правило первым:
insert security nat source rule-set LAN_to_ISP1 rule VPN_EXEPT before rule DATA_ISP1
Разрешаем трафик между зонами
set security policies from-zone COLAN to-zone ZISP1 policy INET_ISP1 match source-address any destination-address any application any
set security policies from-zone COLAN to-zone ZISP1 policy INET_ISP1 then permit
Для второго провайдера:
set security policies from-zone COLAN to-zone ZISP2 policy INET_ISP2 match source-address any destination-address any application any
set security policies from-zone COLAN to-zone ZISP2 policy INET_ISP2 then permit
Для NAT'а с пулом из нескольких адресов понадобится еще настроить proxy-arp.
Пробросы портов, например, в филиале подключены два девайса, к которым можно достучаться по портам 22 и 80:
run show system services dhcp binding
IP address Hardware address Type Lease expires at
172.16.0.72 xx:xx:xx:xx:xx:xx dynamic 201x-xx-xx 02:51:40 MSK
172.16.0.13 xx:xx:xx:xx:xx:xx dynamic 201x-xx-xx 03:18:39 MSK
SSH на 172.16.0.72 и HTTP на 172.16.0.13, пусть они будут доступны извне с адреса 10.0.16.2 с портов 65022 и 65080, соответственно. Для этого добавим записи в адресные книги для этих "серверов" и зададим правила NAT:
в филиале мы используем глобальную адресную книгу (в отличие от ЦО, где настройка должна была быть на уровне set security zones security-zone COLAN address-book address ADDRBOOKSERVER1SSH 172.16.0.72)
set security address-book global address SERVER1SSH 172.16.0.72/32
set security address-book global address SERVER2HTTP 172.16.0.13/32
Разрешаем хождение трафика
set security policies from-zone ISP1 to-zone FILIAL1LAN policy FORWARDSSH match source-address any destination-address [SERVER1SSH SERVER2HTTP] application any
set security policies from-zone ISP1 to-zone FILIAL1LAN policy FORWARDSSH then permit
добавляем пулы внутренних адресов (приватный адрес "сервера" и порт)
set security nat destination pool SSHSERV1 address 172.16.0.72 port 22
set security nat destination pool HTTPSERV2 address 172.16.0.13 port 80
создаем непосредственно правила трансляции
set security nat destination rule-set FORWARDS from zone ISP1
set security nat destination rule-set FORWARDS rule FWDSSH1 match destination-address 10.0.16.2
set security nat destination rule-set FORWARDS rule FWDSSH1 match destination-port 65022
set security nat destination rule-set FORWARDS rule FWDSSH1 then destination-nat pool SSHSERV1
set security nat destination rule-set FORWARDS rule FWDHTTP1 match destination-address 10.0.16.2
set security nat destination rule-set FORWARDS rule FWDHTTP1 match destination-port 65080
set security nat destination rule-set FORWARDS rule FWDHTTP1 then destination-nat pool HTTPSERV2

Для переключения между каналами настроим функцию ip-monitoring'а.
Сначала определим хосты, по ответам которых будет определена доступность сети через соответствующего провайдера. Для этого воспользуемся сервисом RPM (Real-time Performance Monitoring)
set services rpm probe PROBESERV test OPENDNS probe-type icmp-ping
set services rpm probe PROBESERV test OPENDNS target address 4.2.2.2
set services rpm probe PROBESERV test OPENDNS source-address 10.254.10.1
set services rpm probe PROBESERV test OPENDNS destination-interface ge-0/0/14.0
set services rpm probe PROBESERV test OPENDNS next-hop 10.0.14.1
Также нужно определить еще и параметры проверки:
- количество ping'ов за цикл проверки - probe-count,
- интервал между циклами проверок - probe-interval,
- количество неудачных проверок, прежде, чем будет применена политика - thresholds successive-loss.
set services rpm probe PROBESERV test OPENDNS probe-count 5
set services rpm probe PROBESERV test OPENDNS probe-interval 2
set services rpm probe PROBESERV test OPENDNS thresholds successive-loss 3
Самое главное - тест нужно производить не один раз, а с определенной периодичностью:
set services rpm probe PROBESERV test OPENDNS test-interval 5
Привяжем проверку к сервису ip-monitoring'а
set services ip-monitoring policy ROUTEMONITOR match rpm-probe PROBESERV
назначаем действие при непрохождении тестов (изменение предпочтительного маршрута по умолчанию
set services ip-monitoring policy ROUTEMONITOR then preferred-route route 0.0.0.0/0 next-hop 10.0.15.1

Настройка VPN с применением технологии NHTB (Next-Hop Tunnel Binding).
Для начала, мануал рекомендует создать адрессные книги (Address-book) для списков подсетей. Несмотря на указанные в доке (http://www.juniper.net/techpubs/en_US/junos-space/topics/concept/junos-space-security-design-global-address-book-overview.html) ограничения использования zone-based address-book:
Note: Beginning in Junos OS Release 12.1, zone-based address books are no longer supported. Devices running Junos OS Release 12.1 or later must use the global address book.
создаются эти зональные книги легко (JUNOS Software Release [12.1R3.5]), при этом, создать одновременно зональные и глобальную книги не получится (Zone specific address books are not allowed when there are global address books defined).
На Хабе (VPN Hub) настраиваем:
set security zones security-zone COLAN address-book address ADDRBOOKVOICE 10.254.20.0/24
set security zones security-zone COLAN address-book address ADDRBOOKDATA 10.254.10.0/24
set security zones security-zone COLAN address-book address ADDRBOOKVIDEO 10.254.30.0/24
Объединим эти адреса в набор адресов, чтобы позднее не плодить множество записей (многие-ко-многим):
set security zones security-zone COLAN address-book address-set COLANSET address ADDRBOOKDATA
set security zones security-zone COLAN address-book address-set COLANSET address ADDRBOOKVIDEO
set security zones security-zone COLAN address-book address-set COLANSET address ADDRBOOKVOICE
для филала 1
set security zones security-zone COVPNHUB address-book address ADDRBOOKF1DATA 172.16.0.0/26
set security zones security-zone COVPNHUB address-book address ADDRBOOKF1VOICE 172.16.0.64/26
set security zones security-zone COVPNHUB address-book address ADDRBOOKF1VIDEO 172.16.0.128/26
Также объединим книги в набор:
set security zones security-zone COVPNHUB address-book address-set FILIALSADDRSET address ADDRBOOKF1DATA
set security zones security-zone COVPNHUB address-book address-set FILIALSADDRSET address ADDRBOOKF1VIDEO
set security zones security-zone COVPNHUB address-book address-set FILIALSADDRSET address ADDRBOOKF1VOICE
Сделаем адресные книги для второго филиала и также добавим их в набор:
set security zones security-zone COVPNHUB address-book address ADDRBOOKF2DATA 172.16.2.0/26
set security zones security-zone COVPNHUB address-book address ADDRBOOKF2VOICE 172.16.2.64/26
set security zones security-zone COVPNHUB address-book address ADDRBOOKF2VIDEO 172.16.2.128/26
set security zones security-zone COVPNHUB address-book address-set FILIALSADDRSET address ADDRBOOKF2DATA
set security zones security-zone COVPNHUB address-book address-set FILIALSADDRSET address ADDRBOOKF2VOICE
set security zones security-zone COVPNHUB address-book address-set FILIALSADDRSET address ADDRBOOKF2VIDEO

Создадим шаблоны для фаз IPSec VPN (IKEv1, IPSec):
set security ike proposal AES256_SHA1_DH2_PSK encryption-algorithm aes-256-cbc authentication-algorithm sha1 dh-group group2 authentication-method pre-shared-keys lifetime-seconds 86400
set security ipsec proposal AES256_PFS2_SHA1 encryption-algorithm aes-256-cbc authentication-algorithm hmac-sha1-96 protocol esp lifetime-seconds 3600
Для политики IKE укажем режим работы и ключ аутентификации:
set security ike policy IKE_VPN1 mode main proposals AES256_SHA1_DH2_PSK pre-shared-key ascii-text Qwerty1!
Укажем адреса филиалов, к которым будут строиться туннели.
set security ike gateway FIL1GW ike-policy IKE_VPN1 external-interface ge-0/0/14.0 address 10.0.16.2
set security ike gateway FIL2GW ike-policy IKE_VPN1 external-interface ge-0/0/14.0 address 10.0.17.2
И свяжем с политиками IPSec и интерфейсу VPN каналов st0.0 (он работает в multipoint режиме).
set security ipsec policy COIPSECPOL proposals AES256_PFS2_SHA1 perfect-forward-secrecy keys group2
set security ipsec vpn IPSECTOFIL1 ike gateway FIL1GW ipsec-policy COIPSECPOL
set security ipsec vpn IPSECTOFIL1 bind-interface st0.0
set security ipsec vpn IPSECTOFIL2 ike gateway FIL2GW ipsec-policy COIPSECPOL
set security ipsec vpn IPSECTOFIL2 bind-interface st0.0
Настроим интерфейс каналов VPN st0.0
set interfaces st0 unit 0 multipoint
set interfaces st0 unit 0 family inet address 172.31.254.254/21
(это подсеть 172.31.248.0/21 маска 255.255.248.0 - 2048 адресов, 2046 хостов)
Добавим статические маршруты в подсети филиалов через их st0.0 интерфейсы:
set routing-options static route 172.16.0.0/26 next-hop 172.31.248.1
set routing-options static route 172.16.0.64/26 next-hop 172.31.248.1
set routing-options static route 172.16.0.128/26 next-hop 172.31.248.1

Разрешим прохождение трафика между зонами локальными, филиальными и между филиалами.
set security policies from-zone COLAN to-zone COVPNHUB policy FRMCOTOFILIALS match source-address COLANSET destination-address FILIALSADDRSET application any
set security policies from-zone COLAN to-zone COVPNHUB policy FRMCOTOFILIALS then permit
set security policies from-zone COVPNHUB to-zone COLAN policy FROMFILIALSTOCOLAN match source-address FILIALSADDRSET destination-address COLANSET application any
set security policies from-zone COVPNHUB to-zone COLAN policy FROMFILIALSTOCOLAN then permit
set security policies from-zone COVPNHUB to-zone COVPNHUB policy FILIALTOFILIAL match source-address FILIALSADDRSET destination-address FILIALSADDRSET application any
set security policies from-zone COVPNHUB to-zone COVPNHUB policy FILIALTOFILIAL then permit
Рекомендуется выставить TCP-MSS для туннелей 1350.
set security flow tcp-mss ipsec-vpn mss 1350

В филиалах производятся во многом "зеркальные" настройки.
Здесь используем глобальную адресную книгу:
для Центрального Офиса
set security address-book global address ADDRBOOKDATA 10.254.10.0/24
set security address-book global address ADDRBOOKVOICE 10.254.20.0/24
set security address-book global address ADDRBOOKVIDEO 10.254.30.0/24
set security address-book global address-set COLANSET address ADDRBOOKDATA
set security address-book global address-set COLANSET address ADDRBOOKVOICE
set security address-book global address-set COLANSET address ADDRBOOKVIDEO
И для филиалов:
set security address-book global address ADDRBOOKF1DATA 172.16.0.0/26
set security address-book global address ADDRBOOKF1VOICE 172.16.0.64/26
set security address-book global address ADDRBOOKF1VIDEO 172.16.0.128/26
set security address-book global address ADDRBOOKF2DATA 172.16.2.0/26
set security address-book global address ADDRBOOKF2VOICE 172.16.2.64/26
set security address-book global address ADDRBOOKF2VIDEO 172.16.2.128/26
set security address-book global address-set FILIALSADDRSET address ADDRBOOKF1DATA
set security address-book global address-set FILIALSADDRSET address ADDRBOOKF1VOICE
set security address-book global address-set FILIALSADDRSET address ADDRBOOKF1VIDEO
set security address-book global address-set FILIALSADDRSET address ADDRBOOKF2DATA
set security address-book global address-set FILIALSADDRSET address ADDRBOOKF2VOICE
set security address-book global address-set FILIALSADDRSET address ADDRBOOKF2VIDEO
Настроим параметры VPN'а
set security ike policy IKE_VPN1 mode main proposals AES256_SHA1_DH2_PSK pre-shared-key ascii-text Qwerty1!
set security ike gateway TOCO ike-policy IKE_VPN1 external-interface ge-0/0/15.0 address 10.0.14.2
set security ipsec policy COIPSECPOL proposals AES256_PFS2_SHA1 perfect-forward-secrecy keys group2
set security ipsec vpn IPSECTOCO ike gateway TOCO ipsec-policy COIPSECPOL
set security ipsec vpn IPSECTOCO bind-interface st0.0
set interfaces st0 unit 0 family inet address 172.31.248.1/21
set security zones security-zone F1VPN interfaces st0.0
set security zones security-zone F1VPN host-inbound-traffic system-services all
set security zones security-zone F1VPN host-inbound-traffic protocols all
Разрешим трафик между зонами.
set security policies from-zone FILIAL1LAN to-zone F1VPN policy F1LANTOVPN match source-address FILIALSADDRSET destination-address COLANSET application any
set security policies from-zone FILIAL1LAN to-zone F1VPN policy F1LANTOVPN then permit
set security policies from-zone F1VPN to-zone FILIAL1LAN policy FROMVPNTOF1 match source-address COLANSET destination-address FILIALSADDRSET application any
set security policies from-zone F1VPN to-zone FILIAL1LAN policy FROMVPNTOF1 then permit
set security policies from-zone F1VPN to-zone F1VPN policy FILIALTOFILIAL match source-address FILIALSADDRSET destination-address FILIALSADDRSET application any
set security policies from-zone F1VPN to-zone F1VPN policy FILIALTOFILIAL then permit
Исключаем трафик VPN из NAT'а
set security nat source rule-set LAN_to_ISP1 rule VPNEXEPT match source-address-name FILIALSADDRSET destination-address-name FILIALSADDRSET
set security nat source rule-set LAN_to_ISP1 rule VPNEXEPT match source-address-name FILIALSADDRSET destination-address-name COLANSET
set security nat source rule-set LAN_to_ISP1 rule VPNEXEPT then source-nat off
перемещаем это правило в самое начало:
insert security nat source rule-set LAN_to_ISP1 rule VPNEXEPT before rule NAT_ISP1
Статические маршруты на филиальном устройстве:
set routing-options static route 10.254.10.0/24 next-hop 172.31.254.254
set routing-options static route 10.254.20.0/24 next-hop 172.31.254.254
set routing-options static route 10.254.30.0/24 next-hop 172.31.254.254

Чтобы не вводить каждый раз статические маршруты, используем на маршрутизаторах протокол динамической маршрутизации, например, OSPF (не забываем об ограничениях на количество роутеров в одной зоне, но ISIS не поддерживается на st0.0 интерфейсе).
на Хабе настраиваем протокол:
set protocols ospf area 0.0.0.0 interface st0.0 interface-type p2mp
set protocols ospf area 0.0.0.0 interface st0.0 dynamic-neighbors
не обязательно:
set protocols ospf area 0.0.0.0 interface vlan.10
set protocols ospf area 0.0.0.0 interface vlan.20
set protocols ospf area 0.0.0.0 interface vlan.30
вместо этого подсети с этих интерфейсов можно анансировать через passive режим:
set protocols ospf area 0 interface vlan.10 passive
set protocols ospf area 0 interface vlan.20 passive
set protocols ospf area 0 interface vlan.30 passive
на филиальном споке:
set protocols ospf area 0.0.0.0 interface st0.0 interface-type p2mp
set protocols ospf area 0.0.0.0 interface st0.0 neighbor 172.31.254.254
не обязательно:
set protocols ospf area 0.0.0.0 interface vlan.10
set protocols ospf area 0.0.0.0 interface vlan.20
set protocols ospf area 0.0.0.0 interface vlan.30
Ананосируем passive интерфейсы.
Также, я на всякий случай, включил подсеть 224.0.0.0/8 в адресные книги зон безопасности:
set security zones security-zone COVPNHUB address-book address ROUTEPROT 224.0.0.0/8
set security zones security-zone COVPNHUB address-book address-set FILIALSADDRSET address ROUTEPROT
set security zones security-zone COLAN address-book address ROUTEPROTLAN 224.0.0.0/8
set security zones security-zone COLAN address-book address-set COLANSET address ROUTEPROTLAN
на филиале с глобальной адресной книгой:
set security address-book global address ROUTEPROT 224.0.0.0/8
set security address-book global address-set COLANSET address ROUTEPROT
set security address-book global address-set FILIALSADDRSET address ROUTEPROT
в результате получаем обмен маршрутной информацией:
на споке:
run show ospf route
Topology default Route Table:
Prefix Path Route NH Metric NextHop Nexthop
Type Type Type Interface Address/LSP
10.0.14.2 Intra Router IP 1 st0.0 172.31.254.254
10.254.20.0/24 Intra Network IP 2 st0.0 172.31.254.254
172.16.0.64/26 Intra Network IP 1 vlan.20
172.31.248.1/32 Intra Network IP 0
172.31.254.254/32 Intra Network IP 1 st0.0 172.31.254.254
на хабе:
run show ospf route
Topology default Route Table:
Prefix Path Route NH Metric NextHop Nexthop
Type Type Type Interface Address/LSP
10.0.16.2 Intra Router IP 1 st0.0 172.31.248.1
10.254.20.0/24 Intra Network IP 1 vlan.20
172.16.0.64/26 Intra Network IP 2 st0.0 172.31.248.1
172.31.248.1/32 Intra Network IP 1 st0.0 172.31.248.1
172.31.254.254/32 Intra Network IP 0
Если мы не хотим, чтобы какие-то подсети анонсировались нашим смежникам, деактивируем на интерфейсе (или группе интерфейсов) OSPF функционал:
set protocols ospf area 0 interface ge-0/0/0 disable

Бэкап конфигов девайсов:
Создадим resque конфиг
request system configuration rescue save
смотрим, какие файлы конфига вообще есть:
> file list /config
/config:
.snap/
idp-dfa-status.db
jun.conf
jun.txt
juniper.conf.1.gz
juniper.conf.2.gz
juniper.conf.3.gz
juniper.conf.4.gz
juniper.conf.5.gz
juniper.conf.gz
juniper.conf.md5*
license-status.db
rescue.conf.gz
usage.db
> file copy /config/rescue.conf.gz ftp://mik17@192.168.41.52/
Password for mik17@192.168.41.52:
Апгрейд ПО:
например, так
request system software add unlink no-copy ftp://_username_:_password_@_ip_ftp_server_/Software/Juniper/junos-jsr-12.2R1.9-domestic-patched.tgz

Сброс к дефолтовым настройкам.
Есть два варианта:
1. ввод > load factory-default, но этот вариант требует commit'а, а коммит не пройдет пока не будет введен новый root'овый пароль - set system root-authentification plain-text-password.
2. запуск процедуры обнуления > request system zeroize media, в этом случае будут вычещены все журналы, сброшены счетчики, удалена конфигурация и произведен ребут с пустым рутовым паролем.

понедельник, 6 мая 2013 г.

Сброс к factory default на примере Juniper SRX240

Согласно открытой информации, например, отсюда:
http://kb.juniper.net/InfoCenter/index?page=content&id=KB15725#password_recovery
сделать сброс можно тремя способами:
1. при доступе к CLI (edit / load factory-default / set system root-authentication plain-text-password / ввод нового пароля для root'а / commit)
2. для некоторых (не всех) J-series маршрутизаторов и SRX устройств безопасности, где есть на лицевой панели утопленная кнопка Reset Config, собственно, использовать эту кнопку.
Третий, самый "правильный" вариант - доступа к CLI нет, кнопки нет (или она не работает, как в SRX240):
http://www.juniper.net/techpubs/en_US/junos12.2/topics/task/operational/security-root-password-srx-series-device-recovering.html
3. Требуется подключиться к консольному интерфейсу SRX'а (параметры стандартные для большинства сетевого оборудования - 9600-8-1-None-Off). После включении девайса, при загрузке, нужно будет в правильный момент нажать "пробел", если это сделать рано, то попадем в U-boot, индикатором этого будет приглашение вида "=>", нам там делать нечего, так что reset'имся оттуда и ждем чуть подольше, прежде чем нажать "пробел" снова. При попадании в приглашение вида "loader>", значит все правильно, теперь:
loader>watchdog disable
loader>boot -s
Загрузка, при следующем приглашении, вводим "recovery" и попадаем в CLI, теперь повторяем действия по варианту 1.
После reboot'а в штатном режиме будет root'овый доступ к девайсу.

четверг, 13 сентября 2012 г.

JunOS Olive установка в Virtual Box, апгрейд.

На просторах Интернета полно статей по установке JunOS поверх фряхи.
Например, полезняшки здесь:
http://habrahabr.ru/post/111974/
здесь:
http://pauldotcom.com/2011/05/virtualizing-junos-on-vmware.html
здесь:
http://www.packetmischief.ca/2011/03/24/installing-olive-10-4r1-under-vmware/
и, конечно, здесь:
http://juniper.cluepon.net/index.php/Olive
В целом, алгоритм ясен:
- ставим фряху с большим разделом /var,
- достаем в "труднодоступных" местах jinstall-xxx.tgz,
- распаковываем и правим ряд параметров,
- пакуем с правками тарболл взад и,
- ставим во фре, как обычный пакет pkg_add.
В процессе изучения сабжа выяснилось несколько моментов:
- не каждая фряха одинаково полезна, наилучшие результаты достигались на версии 4.11 (это при живущей уже 9ке!),
- вопреки расхожему мнению, jinstall тарболл извлекается и из iso'шников,
- патчить / править тарбол можно на любой машине, где есть tar.
Начнем с подготовки виртуалки:
- выделяем 768Мб ОЗУ,
- выделяем IDE хард на 6Гб,
- отключаем звук, USB,
- создаем serial host pipe для COM1, пусть на /tmp/junos9com1
Собственно, скопипастенные действия для JunOS 9.6:
cd /var/tmp
mkdir jinst ; cd jinst ; tar xvzf ../jinstall-9.6R1.13-domestic-olive.tgz
# rm *.md5 *.sha1 *.sig
mkdir domestic ; cd domestic ; tar xvzf ../jbundle-9.6R1.13-domestic.tgz
rm *.md5 *.sha1 *.sig
mkdir pkgtools ; cd pkgtools ; tar xvzf ../pkgtools.tgz
cd pkg ; rm *.md5 *.sha1 *.sig ; cd ..
все распаковано и все контрольные суммы прибиты, теперь подменяем скрипт проверки (обращение будет возвращать код true)
cp /usr/bin/true bin/checkpic
пакуем все обратно, стирая созданные каталоги:
tar cvzf ../pkgtools.tgz *
cd .. ; rm -rf pkgtools
tar cvzf ../jbundle-9.6R1.13-domestic.tgz *
cd .. ; rm -rf domestic/
tar cvzf ../jinstall-9.6R1.13-domestic-no-checkpic.tgz *
cd .. ; rm -rf jinst/
В результате получаем тарболл jinstall-9.6R1.13-domestic-no-checkpic.tgz, который и будет установлен:
pkg_add jinstall-9.6R1.13-domestic-no-checkpic.tgz
перезагружаемся - reboot, параллельно можно открыть консольный вывод, чтобы видеть процесс установки JunOS, или, как рекомендуемый вариант, поправим запись:
chmod +w /boot/loader.conf
vi /boot/loader.conf
находим запись console="comconsole" и исправляем ее на
    console="vidconsole"
если этого параметра нет - просто дописываем в конец файла и сохраняем.
Да, консольный вывод (используя socat), мне нравится такой вариант:
screen sudo socat /tmp/junos9com1 -
После всех проделанных процедур, получаем виртуальный рутер с ПО для Juniper M / T / MX Series.
В данной серии оборудования функционал распределяется по аппаратным модулям, ОС же играет роль центра управления, так что огромное количество фич будет не доступно, например, для работы NAT необходим service-interface (sr-0/0/0.0). Без него настройки NAT просто не применятся, кстати, в данной серии девайсов настройка NAT осуществляется через edit services nat.
Пошарив по задворкам тырнета наткнулся на пару утверждений, что для Оливки самый правильный JunOS - тот, который для J-Series (JSR?) рутеров - типа там у них все софтово творится, так что на эмуляторе пойдет кучеряво.
Надыбал  junos-jsr-10.3R1.9-domestic.tgz, который сам по себе на фряху не ставится, но им можно проапгрейдить имеющийся 9.6 JunOS.
Правим тарбол практически аналогично, с добавками (для 10й и старших версий) - везде, где видим файлы +INSTALL и +REQUIRE находим в них строки проверки архитектуры и подменяем (в vi):
check_arch_compatibility()
{
    #re_name=`/sbin/sysctl -n hw.re.name 2>/dev/null`
    re_name='olive'
    if [ -z "$re_name" ]; then
        Error "hw.re.name sysctl not supported."
    fi
комментируем строку re_name... и создаем свою с именем "olive", сохраняем все правки и пакуем обратно.
Теперь процедура обновления, в моем случае, патченный тарболл находится на локальном ftp серваке, так из cli выполняем:
request system software add unlink no-copy ftp://_username_:_password_@_ip_ftp_server_/Software/Juniper/junos-jsr-10.3R1.9-domestic-patched.tgz
Дожидаемся примерно таких строк:
JUNOS 10.3R1.9 will become active at next reboot
cat: /packages/junos-10.3R1.9-domestic.sha1: No such file or directory
Saving state for rollback ...
Removing /var/tmp/junos-10.3R1.9.tgz
и перезагружаем виртулку:
request system reboot
Новый рутер начал определяться уже как J4300, однако при настройке NAT (эта проверка настоятельно рекомендуется тем, кто планирует использовать сабж, как пограничное устройство), опять постиг облом:
error: usp_ipc_client_open: failed to connect to the server after 1 retries
поиск по ошибке указал на то, что в девайсе не хватает модуля, что проверка шасси и подтвердила:
show chassis fpc             
                     Temp  CPU Utilization (%)   Memory    Utilization (%)
Slot State            (C)  Total  Interrupt      DRAM (MB) Heap     Buffer
  0  Empty          
  1  Empty          
  2  Empty          
  3  Empty          
  4  Empty          
  5  Empty          
  6  Empty          
Кстати, здесь NAT настраивается через edit security nat...