Contact by mail

Asiantuntija-artikkeli: Nokia SROS-vinkit

Tietoverkot

13/09/2021


Tähän blogiin kootaan käytännön vinkkejä Nokia Service Router Operating System -järjestelmään liittyen johtavan verkkoasiantuntijamme Williamin toimesta. Klikkaa itsesi alta sopivan vinkin ääreen!

SROS – Alias

Kun ajan – ja näppäimistönsäästäminen kiinnostaa, hyödynnä SROS:n antamaa mahdollisuutta luoda omia alias-käskyjä.

Jos usein katsoo esim. bgp-liittyviä asioita ”show router bgp” käskyä voi lyhentää vaikkapa ”sb” käskyllä.

*A:SR1# environment alias sb ”show router bgp”
*A:SR1#
*A:SR1# sb summary
==========================================================
BGP Router ID:10.10.10.15      AS:65100       Local AS:65100
==========================================================
BGP Admin State         : Up BGP Oper State              : Up
Total Peer Groups       : 6           Total Peers                 : 18
Total VPN Peer Groups   : 1            Total VPN Peers             : 1
Total BGP Paths         : 122         Total Path Memory       : 42456
 
<–SNIP–>

Kun usein siirtyy SR:stä toiseen ssh:lla, siihen voi tehdä seuraavanlaisen pikakäskyn.

*A:SR1# environment alias sr2 ”ssh -l admin 10.10.10.2”
*A:SR1# sr2
TiMOS-C-16.0.R5 cpm/x86_64 Nokia 7750 SR Copyright (c) 2000-2018 Nokia.
All rights reserved. All use subject to applicable license agreements.
Built on Fri Dec 21 09:49:09 PST 2018 by builder in /builds/c/160B/R5/panos/main
 
admin@10.10.10.2’s password:

”.srosrc”

Alias -komennot ovat sessiokohtaisia, eli kun kirjaudut ulos niin aliakset katoavat. Ei ole olemassa sellaista kun ”.srosrc”. Kuitenkin on mahdollista tehdä aliaksista pysyviä ja useammalle käyttäjälle yhteiset tai omat aliakset.

Alias-tiedoston voi kopioida SR:lle tai luoda käyttäen vi-editoria.

*A:SR1# file vi cf3:/alias-file
*A:SR1# file type cf3:/alias-file
File: alias-file

———————————————————————————————-
environment alias sr2 ”ssh -l admin 10.10.10.2”
environment alias sb ”show router bgp”

===================================================
*A:SR1#
*A:SR1# configure system security user ”admin” console login-exec cf3:/alias-file

Näin se latautuu seuraavalla kirjautumisella:

admin@SR1’s password:
 
Pre-processing configuration file (V0v0)…
Completed processing 3 lines in 0.0 seconds
Executed 3 lines in 0.0 seconds from file cf3:\alias-file

Muita käyttötapoja

Aliaksia voi käyttää myös esimerkiksi osana toista käskyä, jos on tietty string mitä useasti tulee katsottua.

*A:SR1# environment alias sysif ”interface \”system\””
*A:SR1# show router sysif
=============================================================
Interface Table (Router: Base)
=============================================================
Interface-Name                   Adm       Opr(v4/v6)  Mode    Port/SapId
   IP-Address                                                  PfxState
————————————————————————————————————-
system                           Up        Up/Up       Network system
   10.10.10.1/32                                               n/a
   fd00:11:11::1/128                                           PREFERRED
————————————————————————————————————-
Interfaces : 1
=============================================================
*A:SR1#

A:SR1# tree detail

SROS – Tree

Mikä komento, mikä context? Tree-komennon avulla saat listan kaikista SROS:ssä käytettävistä CLI-komennoista. Komentoa voi käyttää eri syntaxilla, joka antaa tuloksen eri muodossa.

A:SR1# tree

Pelkkä tree -komento tulostaa puu-muodostelman komennoista ja hierarkiasta, missä contextissa mitäkin komentoa pystyy käyttämään.

A:SR1# tree
|
+—admin
| |
| +—certificate
| | |
| | +—cmpv2
| | | |
| | | +—cert-request
| | | |
| | | +—clear-request
| | | |
| | | +—initial-registration
| | | |
| | | +—key-update
| | | |
| | | +—poll
| | | |
| | | +—show-request
<–SNIP–>

A:SR1# tree detail

Tree detail -komento antaa samanlaisen puu-rakenteisen tulostuksen kun pelkkä tree -komento, lisäyksenä että kaikkien komentojen syntaxit tulee näkyville. Tämä tekee koko hommasta suhteellisen sekavaa ellei tiedä tarkalleen mitä komentoa on hakemassa ja haluaa siihen tulostaa syntaksit

A:SR1# tree detail
|
+—admin
| |
| +—certificate
| | |
| | +—cmpv2
| | | |
| | | +—cert-request ca current-key current-cert [hash-alg ] newkey subject-dn [domain-name ] [ip-addr ] save-as
| | | |
| | | +—clear-request ca
| | | |
| | | +—initial-registration ca key-to-certify protection-alg {password reference | signature [cert [send-chain [with-ca ]]] [protection-key ] [hash-alg {md5|sha1|sha224|sha256|sha384|sha512}]} subject-dn [domain-name ] [ip-addr ] save-as
| | | |
| | | +—key-update ca newkey oldkey oldcert [hash-alg ] save-as
| | | |
| | | +—poll ca
| | | |
| | | +—show-request [ca ]
<–SNIP–>

A:SR1# tree flat

Kaikkien komentojen koko komentopolun pystyy tulostamaan käyttäen ”flat” avainsanaa. Tästä on selvästi eniten hyötyä, jos muistaa tai etsii komentoa, mutta ei muista mistä contextista se löytyy.
Yhdistämällä ”match” komentoon, löytää helposti sen mitä etsii.

A:SR1# tree flat
admin
admin certificate
admin certificate cmpv2
admin certificate cmpv2 cert-request
admin certificate cmpv2 clear-request
admin certificate cmpv2 initial-registration
admin certificate cmpv2 key-update
admin certificate cmpv2 poll
admin certificate cmpv2 show-request
<–SNIP>>

A:SR1# tree flat | match router-id
configure router bgp best-path-selection ignore-router-id
configure router bgp router-id
configure router isis router-id
configure router l2tp group l2tpv3 rem-router-id
configure router mpls srlg-database router-id
configure router mpls srlg-database router-id interface
configure router mpls srlg-database router-id shutdown
configure router ospf router-id
configure router ospf3 router-id
configure router router-id
configure service vprn bgp best-path-selection ignore-router-id
configure service vprn bgp router-id
configure service vprn isis router-id
configure service vprn l2tp group l2tpv3 rem-router-id
configure service vprn ospf router-id
configure service vprn ospf3 router-id
configure service vprn router-id
A:SR1#

SROS – Match

Match-komentoa kannattaa käyttään jos etsii konfiguraatiosta jotain tiettyä hakusanaa. Käyttämällä lisävipuja voi asioita hakea myös varsinaisen hakusanan ympäriltä. Tässä esimerkki, miten sitä voi käyttää.

*A:SR1# admin display-config | match

match context {parents|children|all} [ignore-case] [max-count ] [expression]
match [ignore-case] [invert-match] [pre-lines ] [post-lines ] [max-count ] [expression]
: string or regular expression – [200 chars max]
: [0..100]
: [1..2147483647]
: Keyword – Interpret the pattern as a regex expression

Match-komentoa voi tavallaan verrata unix-maailman ”grep”-komentoon:

match ignore-case BlaBlaBla
– vastaa ’grep -i’, eli ei ota kantaa onko stringissä ISOJA vai pieniä kirjaimia.

match invert-match blablabla

– vastaa ’grep -v’, tulostaa siis kaiken muun paitsi ko string.
Tämä on hyödyllinen komento silloin, jos se mitä etsii löytyy monelta riviltä ja niistä haluaa sulkea pois ne jotka sisältää tietyn stringin, esim. tämä tulostaa kaikki portit paitsi ne joka löytyy kortista 1/2.

*A:SR1# admin display-config | match port | match invert-match ”1/2/”

Match context

Context -syntaxia käyttämällä pystyy kätevästi tulostamaan halutun osan konfiguraatiosta esimerkiksi skriptausta varten.

context parent
– Tulostaa context-polun match-stringin yläpuolella

context children
– Tulostaa konfiguraation match-stringin alapuolelta

context all
– Tulostaa context-polun ja konfiguraation match-stringing alapuolelta

*A:SR1# admin display-config | match ”customer 101” context all
————————————————–
service
customer 101 name ”101” create
description ”demo-customer 101”
epipe 20001 name ”demo epipe-20001” customer 101 create
description ”demo epipe1”
sap lag-100:101.* create
no shutdown
exit
spoke-sdp 1002:20001 create
no shutdown
exit
no shutdown
vpls 40001 name ”demo vpls-40001” customer 101 create
description ”demo vpls1”
stp
shutdown
exit
spoke-sdp 1002:40001 create
no shutdown
exit
no shutdown

SROS – Tech Support

Aina kun epäilee, että nyt on tapahtunut jotain sellaista mihin saatetaan tarvita Nokian tukea, kannattaa ottaa tech-support dumpit laitteesta.

Suositus on että aina otetaan 2kpl tech-support dumppia, vähintään 15min välein. Dump-tiedostot tallennetaan reitittimen flash-kortille ja siirretään sieltä sopivin keinoin. Tiedosto kannattaa nimetä esimerkiksi muotoon ’tech-supp-YYYYMMDD-HHmm’ eli ’tech-supp-20210910-1105’

Tech-support dumpin ottaminen ei haittaa missään määrin reitittimen toimintaa, joten tämän harjoittelu kannattaakin, jotta on tuoreessa muistissa kuinka se otetaan kun hetki koittaa.

Komento, jolla otetaan dumppi on ’admin tech-support’ :

*A:SR1# admin tech-support cf3:/tech-supp-20190615-1107
Processing CPM…
Second Pass
Processing CPM…
Processing IOM in Slot 1…
Processing MDA in 1/1…
Processing MDA in 1/2…
Done with data collection
Total Time 000 00:00:26.030
*A:SR1#
*A:SR1# file dir | match tech-supp
06/19/2019 10:06a 468388 tech-supp-20190615-1107
*A:SR1#

Tiedoston voi kopioida käyttäen SCP, FTP tai vaikka NSP:n kautta, sellaiseen paikkaan josta sen saa lähetettyä sähköpostilla meille.

Huom! Virallinen tukisähköposti on support.fi [at] netnordic.com 😉

$ scp user1@SR1:tech-supp-20190615-1107 .
TiMOS-B-16.0.R5 both/x86_64 Nokia 7750 SR Copyright (c) 2000-2018 Nokia.
All rights reserved. All use subject to applicable license agreements.
Built on Fri Dec 21 09:49:09 PST 2018 by builder in /builds/c/160B/R5/panos/main

user1@SR1’s password:
tech-supp-20190615-1107 .. 100% 457KB 457.4KB/s 00:00
$

SROS – Candidate config ja rollback

Oletko joskus testannut tuotannossa ja joutunut toteamaan, että homma ei mennytkään ihan putkeen?
Tässä avataan kahta apuvälinettä konfiguraatiohallintaan, joista näissä tilanteissa voi olla apua.

candidate config

Teet laitteeseen konfiguraatiot kaikilla komennoilla ja oikeilla syntaxeilla.
Pystyt tarkistamaan konfiguraatiomuutokset tai tallentamaan tiedoston myöhempää käyttöä varten.
Hyväksyt muutokset jotta ne siirtyvät ajoon joko lopullisesti tai tietylle ajalle, jonka jälkeen muutokset automaattisesti peruuntuu ellet hyväksy niitä uudelleen.

configuration rollback

Pystyt tallentamaan jopa 10 kpl rollback-checkpoint johon voit palata mikäli tulee tehtyä virhettä.

Näiden avulla voit kätevästi valmistella konfiguraatiomuutokset vaikka labrassa (virtuaali SR ?) ja kätevästi tuoda konfiguraatio ’candidate config’ kautta tuotantoon. Näin ollen vältät mahdolliset copy-paste tai kirjoitusvirheet notepadin kautta tehdyissä muutoksissa.

Esivalmisteluna pitää määritellä rollback-tiedoston sijainti. Tämä tarvitsee tehdä ainoastaan kerran.

A:SR1# configure system rollback rollback-location cf3:/rollback-db
INFO: CLI No checkpoints currently exist at the rollback location.
A:SR1#

Tämän jälkeen luodaan ensimmäinen rollback-piste, mihin halutessaan voi peruuttaa.

A:SR1# admin rollback save comment ”starting point”
Saving rollback configuration to cf3:/rollback-db.rb… OK
A:SR1#
A:SR1# show system rollback
=======================================================
Rollback Information
Rollback Location : cf3:/rollback-db
Max Local Rollback Files : 10
Max Remote Rollback Files : 10
Save
Last Rollback Save Result : Successful
Last Save Completion Time : 2019/06/19 13:01:07 UTC
Revert
In Progress : No
Last Revert Initiated User : admin
Last Revert Checkpoint File: cf3:rollback.rb
Last Revert Result : Successful
Last Revert Initiated Time : 2019/05/03 08:49:01 UTC
Last Revert Completion Time: 2019/05/03 08:49:01 UTC
Delete
Last Rollback Delete Result: None
======================================================
Rollback Files
Idx Suffix Creation Time Release User
Comment
latest .rb 2019/06/19 13:01:05 UTC B-16.0.R5 admin
starting point
No. of Rollback Files: 1
A:SR1#

Tämän jälkeen voidaan kokeilla.

A:SR1# configure system name HuuHaa
*A:HuuHaa#

Jos vertaillaan mitä on tullut muutettua, tästä näkee hyvinkin selkästi muutokset.

*A:HuuHaa# admin rollback compare
Processing current config… 0.160 s
Processing ”cf3:/rollback-db.rb”… 0.170 s
configure
system
name ”HuuHaa”
name ”SR1”
exit
exit
Finished in 0.390 s
*A:HuuHaa

Jos muutos ei tuottanutkaan haluttua tulosta, voidaan aina peruuttaa takaisin haluttuun rollback-checkpointiin.

*A:HuuHaa# admin rollback revert latest-rb
Restoring rollback configuration cf3:/rollback-db.rb
Processing current config… 0.120 s
Processing ”cf3:/rollback-db.rb”… 0.140 s
Resolving dependencies… 0.110 s
Tearing setup down… 0.020 s
Rebuilding setup… 0.020 s
Finished in 0.430 s
*A:SR1#

Nyt, jos halutaan tehdä muutos jota ei haluta toteuttaa heti ajossa olevaan konfiguraatioon – esimerkiksi siirtää asiakkaan SAP epipe-palvelusta vpls:ään, voidaan käyttää candidate config -tilaa.

A:SR1# admin display-config | match ”customer 101” context all
#————————————————–
service
customer 101 name ”101” create
description ”demo-customer 101”
epipe 20001 name ”demo epipe-20001” customer 101 create
description ”demo epipe1”
sap lag-100:101.* create
no shutdown
exit
spoke-sdp 1002:20001 create
no shutdown
exit
no shutdown
vpls 40001 name ”demo vpls-40001” customer 101 create
description ”demo vpls1”
stp
shutdown
exit
spoke-sdp 1002:40001 create
no shutdown
exit
no shutdown
A:SR1#

Vaihdetaan vain candidate config-tilaan ja tehdään halutut muutokset.

A:SR1>edit-cfg>config>service>epipe# no sap lag-100:101.
*A:SR1>edit-cfg>config>service>epipe# back
*A:SR1>edit-cfg>config>service# vpls 40001
*A:SR1>edit-cfg>config>service>vpls# sap lag-100:101. create
*A:SR1>edit-cfg>config>service>vpls>sap# exit all
*A:SR1>edit-cfg#

Seuraavaksi varmistetaan, että homma meni oikein. Riippuen missä kohtaa konfiguraatio-puuta ollaan, niin ’candidate view’ voi näyttää kyseisen tason muutokset; ”juuri tasolta” näyttää kaiken.

*A:SR1>edit-cfg#
*A:SR1>edit-cfg# candidate view
1: configure
2: service
3: epipe ”20001”
4: sap ”lag-100:101.”
5: shutdown
6: exit
7: no sap ”lag-100:101.”
8: exit
9: vpls ”40001”
10:* sap ”lag-100:101.*” create
11: exit
12: exit
13: exit
14: exit
*A:SR1>edit-cfg#

Mikäli ollaan tulokseen tyytyväisiä ja halutaan laittaa tuotos ajoon, voi käyttää ’confirm 10’ vipua, joka tarkoittaa että muutos pitää vielä vahvistaa 10 min sisällä tai se palautuu automaattisesti. Vahvistus tapahtuu ’candidate confirm’ komennolla.

Tässä voi tietenkin lähteä vain ”candidate commit” komennolla, jolloin siirtyy heti tuotantoon, ja hyödyntää rollback -komentoa jos haluat palauttaa. ’confirm ’ on hyödyllinen jos on olemassa riski että muutokset aiheuttaa hallintayhteyden katkeaminen etälaitteeseen.

*A:SR1>edit-cfg#
*A:SR1>edit-cfg# candidate commit confirmed 10
Processing current config… 0.170 s
Saving checkpoint file… OK
INFO: CLI Successfully executed 18 lines in 0.020 s.
INFO: CLI The changes will be auto-reverted in 10 minutes (06/19/2019 13:29:06) unless they are confirmed.
*A:SR1>edit-cfg#
*A:SR1>edit-cfg# candidate confirm
*A:SR1#

Jos ollaan muutokseen tyytyväisiä niin tietenkin ’admin save’ tallentaa konfiguraation normaalisti.

Mikäli muutokset haluaakin tehdä vasta myöhemmin, niin ne voidaan tallentaa.

*A:SR1>edit-cfg# candidate save cf3:candidate-sapmuutos
Writing candidate-cfg to cf3:candidate-sapmuutos… OK
*A:SR1>edit-cfg#


Näin ne ladataan vasta myöhemmin.

*A:SR1#
*A:SR1# candidate edit
*A:SR1>edit-cfg#
*A:SR1>edit-cfg# candidate load cf3:candidate-sapmuutos
Executed 25 lines in 0.0 seconds from file cf3:\candidate-sapmuutos
INFO: CLI Added 18 lines: ’configure service’.
*A:SR1>edit-cfg# candidate view
1: configure
2: service
3: epipe ”20001”
4: sap ”lag-100:101.”
5: shutdown
6: exit
7: no sap ”lag-100:101.”
8: exit
9: vpls ”40001”
10: sap ”lag-100:101.” create
11: exit
12: exit
13: epipe ”20001”
14: exit
15: vpls ”40001”
16: exit
17: exit
18: exit
*A:SR1>edit-cfg#
*A:SR1>edit-cfg# candidate commit
Processing current config… 0.180 s
Saving checkpoint file… OK
INFO: CLI Successfully executed 18 lines in 0.000 s.
*A:SR1#

Candidate edit tilasta pääsee pois ’candidate discard’ -kommennolla. Se heittää roskiin siihen mennessä tehdyt muutokset candidate-edit tilassa jos ei niitä ole tallentanut erikseen save -kommennolla.

Kysymyksiä?

Ota yhteyttä sales.fi@netnordic.com

 

Viimeisimmät sisällöt - Tietoverkot