В одном офисе перестал работать pppoe канал в интернет.
Со стороны провайдера было видно srx, но не проходила аутентификация.
При установлении pppoe соединения маршрутизаторы общаются по протоколу LCP - Link Control Protocol.
Что бы разобраться в проблеме надо посмотреть обмен LCP сообщениями.
Смотрим трафик на интерфейсе к которому подключен провайдер.
root@srx> monitor traffic interface pp0.0 extensive count 100
Начало новой сессии, srx послылает запрос на согласование (Conf-Request) параметров (опций) подключения.
18:03:52.248235 Out ... -----original packet----- 54:e0:32:00:00:01 > 00:1e:67:00:00:02, ethertype PPPoE S (0x8864), length 36: PPPoE [ses 37713]LCP (0xc021), length 16: LCP, Conf-Request (0x01), id 70, length 16 encoded length 14 (=Option(s) length 10) 0x0000: c021 0146 000e MRU Option (0x01), length 4: 1492 0x0000: 05d4 Magic-Num Option (0x05), length 6: 0x5665bd0c 0x0000: 5665 bd0c
Провайдер согласился с предложенными значениям параметров (Conf-Ack).
18:03:52.268010 In ... -----original packet----- 00:1e:67:00:00:02 > 54:e0:32:00:00:01, ethertype PPPoE S (0x8864), length 60: PPPoE [ses 37713]LCP (0xc021), length 16: LCP, Conf-Ack (0x02), id 70, length 16 encoded length 14 (=Option(s) length 10) 0x0000: c021 0246 000e MRU Option (0x01), length 4: 1492 0x0000: 05d4 Magic-Num Option (0x05), length 6: 0x5665bd0c 0x0000: 5665 bd0c
Провайдер предложил следующую пачку опций, в т.ч. и метот аутентификации - PAP (Auth-Prot Option).
18:03:54.132155 In ... -----original packet----- 00:1e:67:00:00:02 > 54:e0:32:00:00:01, ethertype PPPoE S (0x8864), length 60: PPPoE [ses 37713]LCP (0xc021), length 37: LCP, Conf-Request (0x01), id 2, length 37 encoded length 35 (=Option(s) length 31) 0x0000: c021 0102 0023 PFC Option (0x07), length 2: MRU Option (0x01), length 4: 1492 0x0000: 05d4 Magic-Num Option (0x05), length 6: 0x2840ee38 0x0000: 2840 ee38 Auth-Prot Option (0x03), length 4: PAP 0x0000: c023 MRRU Option (0x11), length 4: 2048 0x0000: 0800 12-Bit seq # Option (0x12), length 2: End-Disc Option (0x13), length 9: MAC 00:1e:67:00:00:03 0x0000: 0300 1e67 0278 27
SRX не согласился (Conf-Reject) с предложенными провайдером значениями папаметров, и послал список неугодных опций.
18:03:54.132528 Out ... -----original packet----- 54:e0:32:00:00:01 > 00:1e:67:00:00:02, ethertype PPPoE S (0x8864), length 43: PPPoE [ses 37713]LCP (0xc021), length 23: LCP, Conf-Reject (0x04), id 2, length 23 encoded length 21 (=Option(s) length 17) 0x0000: c021 0402 0015 PFC Option (0x07), length 2: MRRU Option (0x11), length 4: 2048 0x0000: 0800 12-Bit seq # Option (0x12), length 2: End-Disc Option (0x13), length 9: MAC 00:1e:67:00:00:03 0x0000: 0300 1e67 0278 27
Провайдер еще раз предлагает метот аутентификации PAP (Auth-Prot Option)
18:03:54.134273 In ... -----original packet----- 00:1e:67:00:00:02 > 54:e0:32:00:00:01, ethertype PPPoE S (0x8864), length 60: PPPoE [ses 37713]LCP (0xc021), length 20: LCP, Conf-Request (0x01), id 3, length 20 encoded length 18 (=Option(s) length 14) 0x0000: c021 0103 0012 MRU Option (0x01), length 4: 1492 0x0000: 05d4 Magic-Num Option (0x05), length 6: 0x2840ee38 0x0000: 2840 ee38 Auth-Prot Option (0x03), length 4: PAP 0x0000: c023
SRX поправляет и предлагает CHAP (Auth-Prot Option).
18:03:54.134654 Out ... -----original packet----- 54:e0:32:00:00:01 > 00:1e:67:00:00:02, ethertype PPPoE S (0x8864), length 31: PPPoE [ses 37713]LCP (0xc021), length 11: LCP, Conf-Nack (0x03), id 3, length 11 encoded length 9 (=Option(s) length 5) 0x0000: c021 0303 0009 Auth-Prot Option (0x03), length 5: CHAP, MD5 0x0000: c223 05
Последние два сообщения еще раз десять ходят в обе стороны и потом согласование параметров начинается заново.
После осозная проблемы связались с провайдером и попросили переделать аутентификацию на CHAP.
tcp-rst - Send RST for NON-SYN packet not matching TCP session
[edit] root@bluebox# set security zones security-zone TRUST ? Possible completions: <[Enter]> Execute this command > address-book Address book entries application-tracking Enable Application tracking support for this zone + apply-groups Groups from which to inherit configuration data + apply-groups-except Don't inherit configuration data from these groups description Text description of zone > host-inbound-traffic Allowed system services & protocols > interfaces Interfaces that are part of this zone screen Name of ids option object applied to the zone tcp-rst Send RST for NON-SYN packet not matching TCP session | Pipe through a command
show chassis hardware
[edit security utm] root@msk-02-srx2# run show chassis hardware Hardware inventory: Item Version Part number Serial number Description Chassis AU3911AF0XXX SRX100H Routing Engine REV 18 750-021773 AT3911AF0XXX RE-SRX100H FPC 0 FPC PIC 0 8x FE Base PIC Power Supply 0
[edit] admin@nsk-01-srx2# show forwarding-options ... helpers { bootp { server 192.168.10.22; server 192.168.9.12; vpn; interface { vlan.502; vlan.504; vlan.501; vlan.506; } } }
[edit security zones security-zone trust] admin@msk-04-srx1# show interfaces { vlan.501 { host-inbound-traffic { system-services { ping; traceroute; ssh; dhcp; } } } vlan.502 { host-inbound-traffic { system-services { ping; traceroute; bootp; } } }
bootp - надо использовать когда на srx настроен dhcp хелпер ([edit forwarding-options helpers bootp]).
dhcp - надо использовать когда на самом srx настроен dhcp сервер.
name-server { 208.67.222.222; 208.67.220.220; }
Что бы скрыть часть конфига надо уровнем ниже дать скрытую команду “apply-flags omit”.
[edit firewall] admin@srx2# set family inet filter TEST apply-flags omit [edit firewall] admin@srx2# show ... filter TEST { /* OMITTED */ }; } ...
Что бы посмотреть надо через пайп дать команду “display omit”
[edit firewall] admin@srx2# show | display omit ... filter TEST { apply-flags omit; term DENY-ANY { then { discard; } } } ...
Что бы при логине обычный пользователь попадал не в консоль CLI, а сразу в unix-шелл надо дать скрытую команду “shell sh” (UNIX Bourne shell) или “shell csh” (UNIX C shell).
Заход сразу в шелл можно использовать когда надо вытащить логи srx которые не попадают в syslog.
{primary:node0}[edit system login user scp] root@srxmaster# show apply-flags omit; uid 2000; class super-user; shell sh; authentication { encrypted-password "XXX"; ## SECRET-DATA }
root@srx100B# commit check error: zone quota exceeded (usage 11 > max 10) error: configuration check-out failed
Вывод “show interface”:
Input errors: Errors: 0, Drops: 0, Framing errors: 0, Runts: 0, Policed discards: 0, L3 incompletes: 0, L2 channel errors: 0, L2 mismatch timeouts: 0, FIFO errors: 0, Resource errors: 0 Output errors: Carrier transitions: 5, Errors: 0, Drops: 0, Collisions: 0, Aged packets: 0, FIFO errors: 0, HS link CRC errors: 0, MTU errors: 0, Resource errors: 0
Carrier transitions just mean the link has flapped. See the exact description from Juniper:
Carrier transitions—Number of times the interface has gone from down
to up. This number does not normally increment quickly,
increasing only when the cable is unplugged, the far-end system is
powered down and then up, or another problem occurs. If the number
of carrier transitions increments quickly (perhaps once every 10 seconds),
the cable, the far-end system, or the PIC or PIM is malfunctioning.
You would need to do basic troubleshooting to find out why the link is flapping. Those steps would be different >if it was a telco circuit or an P2P ethernet cable.
KB27597
Вывод “show interface”:
Input errors: Errors: 468, Drops: 0, Framing errors: 468, Runts: 0, Policed discards: 71, L3 incompletes: 0, L2 channel errors: 0, L2 mismatch timeouts: 0, FIFO errors: 0, Resource errors: 0
KB27597
Framing errors - это ошибка в контрольнной сумме пришедшего на интерфейс пакета, пакет “бьется” и контрольные суммы отправленного и полученно пакета не совпадают.
Решение проблемы с Framing errors заключается в:
Policed discards - дропаются служебные пакеты протоков которык нет в “security interface host-inbound-traffic protocols”.
При случае проверить с ospf.
“Frames that the incoming packet match code discarded because they were not recognized or of interest. Usually, this field reports protocols that the JUNOS software does not handle, such as CDP.”
KB23428
root@srx2> show security monitoring fpc ? Possible completions: <fpc-slot> FPC slot number (0..0) root@srx2> show security monitoring fpc 0 ? Possible completions: <[Enter]> Execute this command | Pipe through a command admin@msk-01-srx2> show security monitoring fpc 0 FPC 0 PIC 0 CPU utilization : 3 % Memory utilization : 57 % Current flow session : 469 Current flow session IPv4: 469 Current flow session IPv6: 0 Max flow session : 524288 Total Session Creation Per Second (for last 96 seconds on average): 15 IPv4 Session Creation Per Second (for last 96 seconds on average): 15 IPv6 Session Creation Per Second (for last 96 seconds on average): 0
root@srx2> show snmp mib walk .1.3.6.1.4.1.2636.3.39.1.12.1.4.1.5 jnxJsNodeSessionCreationPerSecond.0 = 15
Когда два srx работают в режиме кластера в выводе появится строка “jnxJsNodeSessionCreationPerSecond.1 = ”
root@srx2> show snmp mib walk .1.3.6.1.4.1.2636.3.39.1.12.1.4.1 jnxJsClusterMonitoringNodeIndex.0 = 0 jnxJsClusterMonitoringNodeDescr.0 = single jnxJsNodeCurrentTotalSession.0 = 485 jnxJsNodeMaxTotalSession.0 = 0 jnxJsNodeSessionCreationPerSecond.0 = 15 jnxJsNodeSessCreationPerSecIPv4.0 = 15 jnxJsNodeSessCreationPerSecIPv6.0 = 0 jnxJsNodeCurrentTotalSessIPv4.0 = 485 jnxJsNodeCurrentTotalSessIPv6.0 = 0
Часто возникает задача синхронизировать конфиги основного и резервного srx.
Пока опустим момент как мы оба srx ставим в сеть.
Идея:
Скачиваем текущий конфиг
# scp root@10.13.1.254:/config/juniper.conf.gz ./ Password: juniper.conf.gz 100% 11KB 10.7KB/s 00:00
переименовываем
# mv juniper.conf.gz juniper.conf.new.gz
закачиваем на резервный srx2
# scp juniper.conf.new.gz root@10.13.1.254:/config/ Password:
накатываем новый конфиг
[edit] admin@srx2# load override /config/juniper.conf.new.gz
Потом проверяем его, меняем где надо адреса на интерфесах и название и комитим.
Message of the day
admin@srx2# set system login message “Privet Serega! NE PEREGRUZHAI srx! Lozhis` spat` WBR EKS and Levin.”
root@srx-master> request system snapshot slice alternate node0:
Formatting alternate root (/dev/ad0s1a)…
Copying '/dev/ad0s2a' to '/dev/ad0s1a' .. (this may take a few minutes) The following filesystems were archived: /
node1:
Formatting alternate root (/dev/ad0s2a)… Copying '/dev/ad0s1a' to '/dev/ad0s2a' .. (this may take a few minutes) The following filesystems were
На кластере можно дать команду только на активной ноде.
Будем переносить записи в address book.
Отображаем конфирацию в set стиле
[edit security address-book UNTRUST-BOOK] root@srx-old# show | display set set security address-book UNTRUST-BOOK address perevod-korona.ru dns-name perevod-korona.ru ipv4-only set security address-book UNTRUST-BOOK address wupos.westernunion.com dns-name wupos.westernunion.com ipv4-only ...
Подгружаем конфигурацию
У команды load есть ключ relative который подкружает set не от корня конфигуации, а от текущего места.
{primary:node1}[edit security address-book] root@srx-new# load set terminal [Type ^D at a new line to end input] set security address-book UNTRUST-BOOK address perevod-korona.ru dns-name perevod-korona.ru ipv4-only set security address-book UNTRUST-BOOK address wupos.westernunion.com dns-name wupos.westernunion.com ipv4-only ... ^D
Нюансы
Если сразу переносить много конфига, то RE возможно будет не успевать его отрабатывать и будут появляться ошибки вида - “terminal:2:(4) syntax error: address”.
Проблема описана в KB15472. Как решить в линуксовом терминале пока не придумал.
Если сидеть на srx через череp minicom, то заливаться будет без ошибок - скорость соединения маленькая.
root> request system software add ? Possible completions: <package-name> URL or pathname of package best-effort-load Load succeeds if at least one statement is valid delay-restart Don't restart processes no-copy Don't save copies of package files no-validate Don't check compatibility with current configuration partition Format and re-partition the media before installation reboot Reboot system after adding package unlink Remove the package after successful installation validate Check compatibility with current configuration root> request system software add no-copy http://192.168.10.12/junos/junos-srxsme-12.1X47-D25.4-domestic.tgz
http://kb.juniper.net/InfoCenter/index?page=content&id=KB25265
Проблема.
root@srx> ping ocsp.comodoca.com PING6(56=40+8+8 bytes) :: --> 2a02:1788:2fd::b2ff:5301 ping: sendmsg: No route to host ping6: wrote ocsp.comodoca.com 16 chars, ret=-1 ^C --- ocsp.comodoca.com ping6 statistics --- 1 packets transmitted, 0 packets received, 100% packet loss
Решение.
root@srx> ping ocsp.comodoca.com inet PING ocsp.comodoca.com (178.255.83.1): 56 data bytes 64 bytes from 178.255.83.1: icmp_seq=0 ttl=57 time=79.415 ms ^C --- ocsp.comodoca.com ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max/stddev = 79.415/79.415/79.415/0.000 ms
root@srx> show services application-identification application detail | save ai-app-detail
Файл запишется в домашнюю директорию пользователя.
root@srx> show system license License usage: Licenses Licenses Licenses Expiry Feature name used installed needed av_key_kaspersky_engine 1 0 1 28 days dynamic-vpn 0 2 0 permanent ax411-wlan-ap 0 2 0 permanent appid-sig 1 0 1 invalid - APPID Signature
Все ранее настроенные политики продолждают работать.
Нельзя обновить сигнатуры и верме комита увеличилось секунд на 40.
root@srx# commit [edit security idp idp-policy Recommended rulebase-ips rule 1 match attacks] 'predefined-attack-groups "[Recommended]IP - Critical"' Security Package is being used, however license is not valid/has expired. This may be in violation of policy. commit complete
nested-application my:XAKEP-SSL { type XAKEP; protocol SSL; signature NestedApplication:XAKEP-SSL { member m01 { context ssl-server-name; pattern xakep.ru; direction client-to-server; } maximum-transactions 1; } }
maximum-transactions - максимальное количество совпадений с “подписью” при при достижении которого считается, что это именно это приложение.
root@srx> show services application-identification application summary Application(s): 800 Nested Application(s): 981 Applications Disabled ID Order junos:ZENGUARD-SSL No 1987 33799 junos:FACEBOOK-TIMELINE No 1986 33793 junos:FACEBOOK-STATUS-UPDATE No 1985 33794 junos:GOLFZON-MEMBERS-SSL No 1984 33792 junos:AFREECA-HTTP-STREAM No 1982 33790 .... root@srx> show services application-identification application summary | match HTTP junos:AFREECA-HTTP-STREAM No 1982 33790 junos:WECHAT-HTTP No 1932 33751 junos:SSH-OVER-HTTP No 1907 33586 junos:YAHOO-FINANCE-HTTP No 1896 33722 junos:AIM-HTTP-API No 1865 33700 junos:ALIWANGWANG-HTTP No 1863 33704 junos:BAIDU-HI-HTTP No 1859 33703 junos:GROOVE-HTTP No 1264 33669 ... root@srx> show services application-identification application detail junos:YAHOO-FINANCE-HTTP Application Name: junos:YAHOO-FINANCE-HTTP Application type: YAHOO-FINANCE-HTTP Description: This signature detects Yahoo! finance, a site from Yahoo! that provides financial news and information. Application ID: 1896 Disabled: No Number of Parent Group(s): 1 Application Groups: junos:web:finance Application Tags: characteristic : Bandwidth Consumer characteristic : Loss of Productivity risk : 2 subcategory : Finance category : Web Signature NestedApplication:YAHOO-FINANCE-HTTP Layer-7 Protocol: HTTP Chain Order: no Maximum Transactions: 1 Order: 33722 Member(s): 1 Member 0 Context: http-header-host Pattern: (.*\.)?finance\.yahoo\.com Direction: CTS
root> show configuration groups junos-defaults applications
root> show system users no-resolve 5:38PM up 28 days, 2:04, 4 users, load averages: 0.10, 0.06, 0.04 USER TTY FROM LOGIN@ IDLE WHAT root p0 3:17PM 2:04 cli root p1 3:03PM 55 cli root p2 4:21PM 56 cli root p3 5:31PM - cli
root> set cli idle-timeout 60 Idle timeout set to 60 minutes root> show cli CLI complete-on-space set to on CLI idle-timeout set to 60 minutes CLI restart-on-upgrade set to on CLI screen-length set to 55 CLI screen-width set to 207 CLI terminal is 'xterm' CLI is operating in enhanced mode CLI timestamp disabled CLI working directory is '/cf/root'
root> request chassis cluster failover redundancy-group [0|1] node [0|1]
Увести RG0 на node1:
root> request chassis cluster failover redundancy-group 0 node 1
После этого приоритет node1 для RG0 станет равным 255.
Что бы привести приоритет в соответствие со штатными настройками надо дать комануду:
root> request chassis cluster failover reset redundancy-group 0
После этого, в зависимости от настройки “Preempt”, RG0 останется или на node1 или вернется на node0.
[edit] root# load factory-default warning: activating factory configuration
Routing Engine
user@srx> show chassis routing-engine Routing Engine status: Temperature 57 degrees C / 134 degrees F Total memory 1024 MB Max 655 MB used ( 64 percent) Control plane memory 544 MB Max 457 MB used ( 84 percent) Data plane memory 480 MB Max 202 MB used ( 42 percent) CPU utilization: User 4 percent Background 0 percent Kernel 10 percent Interrupt 0 percent Idle 85 percent Model Serial ID Start time 2015-02-04 19:03:18 GMT-3 Uptime 26 minutes, 6 seconds Last reboot reason 0x200:normal shutdown Load averages: 1 minute 5 minute 15 minute 0.07 0.17 0.61
Forwarding Plane
Смотреть “Real-time threads CPU utilization”
user@srx> show chassis forwarding FWDD status: State Online Microkernel CPU utilization 14 percent Real-time threads CPU utilization 0 percent Heap utilization 42 percent Buffer utilization 1 percent Uptime: 22 minutes, 39 seconds