Lieber Zuschauer, dieser Untertitel wurde automatisch generiert von YouTube und dementsprechend (sehr) fehlerhaft. Wenn du kannst, hilf uns bitte gute Untertitel zu erstellen: https://c3subtitles.de/talk/1927 Danke!
[Musik]
ja servus guten abend noch mal ich darf
vorstellen joe ist Netzwerker bei
ebenfalls belbü Sebastian vorin schon
auch und er kümmert sich dort um
Automatisierung und
einpv6 und wird uns heute Abend ein
bisschen erzählen wie man Router die
kein ZTP also Zero Touch Provisioning
können voll automatisch installiert ich
freue mich jo die Böhne gehört
dir so hallo wie schon gesagt ich bin
der jo
und ich habe mal irgendwann was gemacht
mit Routern und wollte die Automat
installeren hab dann festgestellt die
können kein CTP deswegen oder könn ich
richtig ZP deswegen bin ich ir tiefer
eingestiegen ähm kurzum Überblick
erstmal die problemeschreibung was ich
genau Problem hatte dann was mein ku mit
ZTP an der Stelle war und weswegen das
nicht immer getan
hat warum so eine Konsole manchmal dann
doch irgendwelche Vorteile mit sich
bringt dann keine Übersicht System ich
gebaut habe und dann gibt's einmal ein
kleines Stückchen Demo und dann hat noch
was zu dem Installationsablauf wie der
im Hintergrund
funktioniert bei uns läuft so wir haben
relativ häufig den Fall dass wir neue
Router installieren müssen aber das in
der Regel nur einzelne also weil z.B ein
Kunde bestellt irgendwas bei uns und
dann braucht man jetzt einen neuen
Router oder wir upgraden diesen einen
Pop oder man braucht jetzt einmal für
irgendeinen Test im lap halten Router
mit irgendeiner confonig Firmware
drauf und das kommt halt regelmäßig V
dass tun muss aber halt immer n
einzelner ich kann mich nicht hinhoocken
und sagen jetzt hier 50 Stück und dann
sind die fertig das klappt bei uns
nicht das nächste Problem ist dass wir
teilweise dann haben die schon irg im
Einsatz war weil kam zurück von dem
Kunden oder man hat den popupgrad auf
den größeren Router mit mehr Ports jetzt
kommt die alte Hardware zurück und dann
hat die halt immer noch alte Config
drauf und eventuell unbekanntes Passwort
landet irgendwo im Lager W wieder
rausholt um wieder irgendwo einzubauen
dann ist es halt ein bisschen blöd weil
man hat erstmal keine Ahung wie da drauf
kommt und wenn man das alles von Hand
durchspielt so ein Router zu
installieren ist super zeitaufwendig vor
allem wenn man Sachen hat die lange
brauchen zum booten
W F Update zwischendurch macht da hat
man ganz schnell mal irgendwie eine
Stunde verbracht und muss immer warten
bis ein Schritt durch ist dann kann man
sich wieder Router kümmern kann gucken
ist er schon fertig und wenn ja dann
macht man nächsten Schritt weiter und
hat immer dieses dieses okay der Router
macht jetzt was dann muss ich warten bis
der Router fertig ist dann kann ich
wieder gucken nächsten Schrein packen
und das ja ziemlich nervig dazu ist
immer noativ vielf ich ganz ganz viele
Schritte die eigentlich überall immer
gleich passieren sollten manuell macht
ja das war so grob das Problem wenn ich
sag Router vollständig installieren dann
könt für mich ein Prinzip dazu ein fir
Upgrade zu machen eventuell fir Upgrades
für Bootloader DSL Modems was immer
Router noch alles in extra Teilen drin
hat dann muss da noch eine Config drauf
und eventuell Sachen wieak generieren od
Zertifikate und auf manchen Modellen hat
man eventuell noch Sachen mit Lizenzen
oder so weiter das kommt immer drauf an
was man denn
konkret für ein Modell hat gen macht
normalerweise jetzt dann Zero Touch
Provisioning
nehmen im Prinzip Verfahren mit dem man
m Router per DCP sagt da ist ein Script
und Firmware bitte Bo die mal und für
das Skript dann aus das hat aber so ein
paar Probleme primär dass man da auf
manchen Plattformen Einschränkungen hat
z.B dass manche Router keine Configs
laden können
keine Skripte laden können und nur
Configs das ist ein bisschen ungeschickt
D mal hinstellen noch ein paar Sachen
mehr machen will als nur eine Config
aufspielen und manche können auch keine
Firmware laden
ähm das macht dann vor allem Kombination
Probleme wenn man ein firw Update machen
will man könnte jetzt eventuell Config
drauf laden aber keine firmw hat man die
Config kurz SSH her und kann dann da
wier im extra Programm sich aus seinem
DHCP so wieder die IP-Adresse von dem
Router rausholen
dann drauf hen und da dann irgendwie
weiter frickeln das ist irgendwie
bisschen umständlich und nervig das
nächste Problem ist wie man CTP startet
in der Regel startet es von selber auf
den Routern wenn man keine Config
default Config auf dem Gerät hat wie
schon vorher erwähnt das ist ein
bisschen schlecht wenn man auf die
Geräte hat wo der Config schon drauf
ist dann ist immer ein Fall von viel
Konsole und Handarbeit und man rennt hin
und man Power cycelt das Gerät weil man
hat keine Ahung was das Passwort ist
muss Factory Reset
machen genau gerade in Zeiten von Corona
wenn eventuell nicht physikalisch dem
Gerät sitzt ist es super nervig
und dann gibt's noch manche speziellen
Implementierungen die sich ZTP nennen
die dann solche Sachen machen dass erst
starten wenn Sie ein uspf ip46 neighb
Discovery up oder irgendwas ähnliches
das ein bisschen brer multicasted auf
dem Interface sehen und dann gibt's
einfach Geräte die halt gar nichts in
Richtung ZTP können das ist dann halt
blöd die zusammenfassungavon also ZP
löst irgendwie nicht alle Probleme
und Zweifelsfall muss man doch irgendwie
an so einem Konsolenport
vorbei und wenn man e schon so einem
Konsolenport vorbei muss dann kann man
das auch irgendwie sich B zum Vorteil
machen weil eiglich hat irgendwie so
jedes Gerät so ein Konsolenport dran das
ist so Industriestandard und die meisten
Leute haben irgendwo so ein konsolerver
rumfahren und das ist dann quasi einen
Adapter von Konsolenport auf SSH oder
telnet und wenn Factory Reset machen
muss dann wie gesagt
Konsolenport noch kom Z Knopf am Gerät
nächster Vorteil von Konsolenport ist
der ist unabhängig vom Netzwerk das
heißt
auch wenn ich jetzt komplett die Config
die mein Gerät gerade hat anpasse in
Sachen Netzwerk drunter dann verlie ich
meine Verbindung nicht was eventuell bei
irwchen Geschichten Pers od so der Fall
wäre kommt auch während das Gerät Boot
an den bootler ran und wenn man sich
dann am Ende eingeloggt hat hat man
eigentlich das gleiche command Interface
wie man auch per SSH bekommen
würde genau und für Interfaces die
für dieses CLI Interfaces gibt's ja
libraries die so Zeug bequemer machen
nenn sich dann CLI scraping eins von den
gängigen Tools dafür in Python ist
scrapely
ähnliches Tool ist netmiko
und am Ende macht das halt das Arbeiten
mit das Stil einfach man kann solche
Sachen machen wie dass man sagt hier
importierten ein Treiber man gibt einal
sein Gerät an mit Host und Username und
sonstigen Parametern und da find wir
einmal drauf und dann kann man halt
solche Sachen Sachen wie Sachen sagen
wie scha mititte diese Config auf das
Gerät
drauf der konkrete Vorteil von scrapely
ist dass man Zugriff bekommt auf den
Transport unten drunterlegt also die SSH
tnet Session und man kann das
Login sa Transport ist wichtig weil man
da damit Sachen machen kann bevor diese
eigentliche CLI prompt Logik arbeitet
die halt in wo halt nicht geht wenn man
an diese Logik gebunden ist
ähm genau und man kann auch damit dann
das Login selber händeln falls man
spezielle Sachen hat wenn man z.B jetzt
Consol sererver sich auf der Konsole vom
Gerät einlogt dann fragt dass einen
eventuell Username und ein Passwort
in pltext und deswegen muss mich da
haben halt kümmern ich habe dann mal
gesagt gut ich fange an was zu bauen und
am Ende ist dann Übersicht ganz gr das
rausgekommen es gibt dann ein
WebUI Frontend da kann ich angeben ich
will einen Router von dem Modell mit der
firmwversion und der Config
konfigurieren und der hängt auf dem
consolleport da drüben das schreibt dann
die Config anegeben hat auf den
fallserver drauf und den Rest davon
wirft in den redes rein das als jobque
genutzt wird und als Datenbank
missbraucht wird und im Backend habe ich
dann
ein Prozess der fischt aus dem Red ist
dann quasi Jobs wier raus und SP
Installationsprozess äh pro ähm pro
Router den ich da installieren will der
Installationsprozess verbindet auf den K
Server drauf und an dem hängt dann mein
eigentlicher zielrouter den ich
konfigurieren will dran und dann schickt
ihr dem über die Konsole irendwelche
Befehle baut dann eine minimale
netzwerkcfig zusammen und kannst dann
über das Netzwerk die sonzen Dateien
also Firmware und Configs ziehen und
dann äh kann man das darüber
installieren jetzt zum interessanten
Teil äh ein bisschen Demo ich habe das
mal vorbereitet so schaut das be aus
aktuell habe ich gerade keine Sachen
eingetragen aber ich kann hier mal was
machen malgendwie
denok und ich habe da gerade im lapnen
Cisco 1100 rumliegen weil der war gerade
da brnotiz der kann ZTP aber der fiel
deben herer dann beim B System quasi for
free raus ich kann hier dann diverse
firw auswählen gerade nur eine als als
Vorlage gespeichert aber ich könnte auch
wenn ich wollte irgendwie hier andere
angeben wo ich dann halt den Pfad zur
firm auf dem falls selber angeben muss
die Größe und die Prüfsumme dazu
m genau und dann habe ich hier noch den
Consol Server Port bei uns ist der Kol
Server da hart
reingecodet auf Port 20 28 hängt das
ganze gerade und ich kann mir noch
aussuchen wo die Config herkommt ich
könnteche vorgefertigten standardcigs
nehmen ich könnte irgendw anderen Pfad
angeben oder ich kann halt auch hier
plext
reinwerfen ich ma das mal ganz kurz ich
habe
vorbereitet und zegen da einmal copy pas
und rein damit habe ich hier irgendwie
so ein ha Config
rumliegen und wenn ich das ganze
abschicke dann sagt mir neuen Prozess
und dann sehe ich ganz grob okay mit dem
Namen Modell hier ist fah zum Image zur
Config Port und so weiter wenn ich jetzt
gleich mal refresh hat Status refresh
und sagt mir error das liegt daran dass
ich hier gerade neben dran noch die
Session zum kver off hab deswegen kommt
gerade nicht ran normalerweise wä jetzt
der Punkt wo ich ins Lab gehen würde und
den Router verkabeln würde also aber
Netzwerk anschließen an richtigen Port
console port einen anstecken würde und
dann im gesamten Teil Strom geben würde
dass der
bootet da ich gar nicht aufstehen will
gebe ich kurz hier einmal nebendran auf
dem Cons Server reload ein seht jetzt
gerade
nicht soll das gleich fertig
sein okay jetzt Reboot NEB dran geh ich
aus mein Session raus so und jetzt habe
ich hier im Prinzip mehrere Buttons ich
könnte einmal das Ding löschen ich
könnte es jetzt neu starten das sollte
jetzt dann
tun weil der Router gerade neu bootet
sag erstmal running und dann sollte der
bald hier wechseln auf was Neues
hoffentlich vielleicht oder ich habe den
Demo Götter nichtug geöpfert genau und
jetzt fängt er hier halt an Sachen zu
tun ich könnte auch den mit dem Knopf
hier abbrechen wenn ich merk ja ich will
den doch nicht konfigurieren oder ich
habe irgendwas falsch eingegeben oder
was immer und ich habe hier noch ein
relativ ausgiebiges lockfall wo im
Prinzip der mit ziemlich viel debug
output äh
gibt wo er denn gerade ist und was er
dann gerade
tut und da taucht halt dann ganz ganz
viel Lock auf ich lass das mal eine
Runde rüdeln und geh mal wieder zurück
zu den Slides und lass das Laufen genau
Demo hat wir gerade
Installationsablauf das ist ganz grob
Überblick was man getan hat die zwei
Sachen in orange also ausft und Router
verkabeln haben wir gerade mehr oder
Wener gemacht und da muss den routter
jetzt nicht mehr anfassen bis er fertig
ist und was jetzt das das Programm
Hintergrund macht ist sendet im Prinzip
wenn der Router Bute die ganze Zeit ein
Break signignal dadurch kommt man
irgendwann in den rommon von dem Cisco
Router rein und kann dort dann ein
Factory Reset machen das der Config
bootet und dann bootet meine Router
durch und das Gerät wartet al die sof
wet dann bis der Router gebootet hat
installt eine minimal netzwerkcfig
auf dem gesen Port sagt einfach im
Prinzip sprech da bitte DHCP und warte
dann bis das Gerät bei DHCP eine Adresse
bekommen hatich könnt man das auch fest
machen dass man statische Adresse
vergibt aber die HCP ist einfacher und
tut auch wenn es Adresse hat dann kommt
der schr anfängt images runterzuladen
und dann wird auch direkt davor geprüft
ob genug spreicher da ist für das Image
und ob die Prüfsumme danach auch stimmt
so Schrit die mal gerne von Hand
weglässt und einfach hofft dass es
funktioniert
dann SSH Keys generieren ist immer so
ein Schritt den man oft braucht
und dann final einmal die Config äh in
die stadup conffig schreiben die W man
sich dann geladen hat das conffig
Register wieder richtig setzen und dann
ist man eigentlich fertig mit dem Gerät
und nach und beim nächsten Mal Booten
hat die richtige Firmware und
richtige Config und ssh Keys und man ist
glücklich
ähm wie das dann intern ein Software
seitig funktioniert ist so dass die
Installation eine State Machine ist und
jeder Zustand
stemchine also stemchine ist
pythonklasse und für jeden Zustand
gibt's eine Methode und ich kann jetzt
dann im Prinzip hergehen und kann diese
Klassen die ich da habe durch Subklassen
erweitern verschiedene Modelle oder
verschiedene
Hersteller mir den den Installer der
kümmert sich im Prinzip nur um g
setmaschinen und die Verbindung zum
Console Server dann habe ich in dem Fall
weil ich discco hatte ähm einen
Installer gemacht für Cisco Geräte der
kann im Prinzip
das M das Handling vom vom romon von den
Cisco Geräten der kann Dateien
kopieren diese Geschichten und dann
gibt's im Prinzip noch drei also aktuell
drei Subklassen davon für verschiedene
Modelle die überschreiben im Prinzip nur
ein paar default Parameter primär wie
der Port heißt auf dem der Router sein
Netzwerk suchen soll und
M auf welch von Dateisystem man den den
firm schreiben will und wenn ich jetzt
irgend anderen Hersteller haben will
oder ein anderes Modell dann würde ich
mir je nachdem irgendwie zweiten teilben
dran bauen der diesen Hersteller händelt
und den spezielle Modelle oder ich würde
halt mich hier irgendwo noch mal neben
dran eine neue Klasse setzen die die
entsprechend Anpassungen für das ganze
daavür nimmt ja ich hoffe mittlerweile
ist die Demo hinten schon soweit fertig
ähm nee er bootet noch okay dann ich
kann kurz den Lock gucken da taucht
jetzt dann bedeuten viel mehr
auf genau hier sieht man z gerade
irgendwie noch irgendwelche Sachen
verifiziert gut wen das ganze noch
arbeitet kann ich noch ein bisschen was
zu dem ganzen Teil sagen der Namensfeld
ist eigentlich beliebig frei wbar das
hat nichts zu sagen außer halt dass man
sein Modell die man drin hängen hat
wiederfindet und mal ganz gr weiß was
dann das ist was darum hängt
die verschieden Modelle die man hier
drin hat kommen aus einem kleinen Config
SIP wo man die vor definieren kann und
kann den dann auch gewisse defaults
mitgeben wenn ich z. auf den AS2 gehe
dann gibt's mir direkt hier verschiedene
Vorschläge Config Verionen für dem
ganzen firmvion V dem ganzen
und auch hier unten immer die die
Default Configs ab und wenn ich z ein
Router habe wo ich einen DSL Modem drin
habe kriege ich noch hier ein extra Feld
dazu für die Firmware vom DSL
Modem so Bo der Spaß leider immer
noch
J genau das ist soweit der
Teil ich könnte sagen ich bin soweit
erstmal fertig ähm gibt's denn schon
fragen dann würde ich erstmal Ire ein
zwei Fragen entgegennehmen und dann ist
hoffent Installation fertig ich habe es
doch schneller gered in dem Teil als ich
hier
hab ja vielen Dank jo soweit wir haben
schon auch zwei Fragen im Chat die ich
gleich an nicht weiterleiten kann und
ich denke eine der spannendsten Fragen
natürlich ist die S source bzw hast du
da schon was geplant
aktuell ist das ganze nicht Open Source
aber grundlegend wenn da Interesse
besteht kann ich das Open Sourcen das
Problem ist aktuell dass da noch Code
von dem Kollegen mit drin hängt und das
ganze noch nebenher ein
bisschen Zeug für richtiges ZTP mit dem
DCP Server und so weiter handhabt und es
ist so ein bisscheninander
gewachsen da muss man mal gucken ob man
das Trend ob man das beides
veröffentlicht ob das so rum machen will
und dann gibt's ein paar Sachen die auf
unser aktuell gehardcodet sind mehr oder
weniger aber das sollte man auch
aufdröseln
können aber wenn da Interesse besteht
dann können Leute mit ein mal schreiben
und dann kann man gucken was man machen
kann ich habe da grundsätzlich kein
Problem mit das zu
veröffentlichen super also es wurde
schon von sieben Leuten geliked die
Frage vielleicht findet sich ja do der
ein oder andere Mitreiter ich finde dich
entweder auf Twitter oder auch in
E-Mailadresse verlinkt slides zweite
Frage wer da noch welchen konsolenserver
verwendet wde
aktuell haben wir da einen Cisco 2901
drin laufen da kann man so ein
harwigmodul reinstecken dann fallen da
Konsolenports
raus und man kann die aktuell bei uns
per Telnet gemacht dann erreichten man
kann h auch per SSH
betreiben grich sollte eigentlich mit
allen gehen ich brauche bloß irgendwas D
mein Konsolenport dann ja per Tel od SSH
zugänglich
macht ja ich denke es ist ein wirklich
schönes Stück äh Software was am Ende
auch ein problemlöst was wirklich viele
haben da auf jeden Fall danke schon mal
für deine Einsichten und ich denke es
würden sich glaube ich sehr viele freuen
wenn es wie gesagt haensust wird wenn du
willst geh noch mal zu deiner Demo
zurück weitere Fragen sind aktuell im
Chat nicht aufgetaucht denke der Vortrag
war soweit ja auch sehr
verständlich okay
ähm dann schreib mich BTE live mit Dings
genau top so ist Biss weiter gelaufen
aktuell sagt er mir hier dass er hys
baut und kopiert noch seine Firmware
einal rüber ich habe hier an der Stelle
ein bisschen beschummelt weil firw Image
lag schon drauf das heißt der
verifiziert quasi jetzt einfach nur noch
einmal das Image richtige Image
ist
und
dann nach dem filmw copy ist er
eigentlich fast fertig ich kann hier
auch viele andere Sachen noch parallel
reinmachen ähm die einzige Beschränkung
für wie viel Installation mal laufen
lassen kann ist wie viel Ports man auf
einem Consol sererver hat man kann auch
z.B schon irgendwelche Sachen
vorbereiten wenn man dann weiß am selben
Port läuft später dann direkt der
nächste
ä ja
genau von
daher ja genau jetzt sagt er m h datate
complete
ähm ich ma mal kurz h neben her den KCH
auf da wird es erstmal nicht allzu viel
auftauchen weil der Router jetzt dann
neu bootet
noch Z nach da will ich
verschieben genau ich hoffe gleich noch
die bootmeldung dann vom Router kommen
genau da fängt es der Router an zu
booten nicht so spannend be zu gucken
aber gut hier vor d das vorher
angegebene im gefunden
hat was baut übrigens so ein Bildschirm
was ziemlich häufig anguckt macht nicht
wirklich viel
Spaß
J
anderes Problem was man mit vielen von
Routern hat ist dass manche 15 Minuten
lang brauchen zum butoten und dann hängt
man halt 15 Minuten lang im WebUI im
Status waiting for Boot fest
und bei ersten Test mit dem Kollegen kam
dann immer so die Frage mit Ja der hängt
jetzt schon seit 10 Minuten da soll das
ist der aufgehängt geht das noch weiter
äh und dann muss manchm Leute beruhigen
mit ja der Router ist einfach nur
langsam äh das soll so warte noch mal 5
Minuten wenn es dann nicht weiter ist
dann meldde dich noch
mal
und leider lässt sich der Router gerade
auch sehr sehr viel Zeit h Anderl
Stellen
sollen genau für die Live Demo nur die
mit schnellen Flash speeichern das das
ist schon die Variante mit schnellem
flleashchpeicher wenn as 29 nimmst dann
wirst du nicht fertig in den von dem
T das auch mal spannend eine Software
die schneller ist als die Hardware dann
ich denke mal kann sich sehr gut
vorstellen haben noch einiges debar
Output gesehen Fragen waren soweit
erstmal keine mehr ich denke war auch
soweit übersichtlich
ich glaub deine Kontaktdaten sind soweit
bekannt Open Source finden viele schön
und hoffentlich beteiligen sich da noch
einige dran es W auch schon
vorgeschlagen ob man nicht mal denor
white noch mal so ein Konsolen Server
Runde macht und zusammenschreibt und
zusammenfet was für vielleicht die
besten äh Kombinationen und Geräte und
Tools sind am Ende es ist ja tatsächlich
ein Thema was wirklich jeder von uns hat
wie provisioniert der Geräte die aus dem
Schrank
kommen ja genau also ich wde auch Dr
interessiert von daher wenn Leute
irendwie D was anstoßen wollen auf
malisten ir sonst wie äh gerne bin ich
gerne
dabei so ich glaube der B ist auch bald
fertig
Router Halt macht wenn er bootet g habe
ich ein Router der heißt denok und wenn
ich
einmal des mache dann gibt's auch mal
Interface mit hallodenok und Show
run Leid sieh Login bner gerade nicht
aber hier noch
mein bnerchen von vorher von daher tut
zu weit und das ist alles gespeichert
und äh ja könnte man es wieder einpacken
und zum Kunden schicken oder den
Menschen des einb mitgeben von daher bin
ich jetzt eigentlich fertig danke für
Aufmerksamkeit und
ja ja vielen Dank dir ähm vi Dank für
den Talk sehr schön ich würde damit die
Runde schließen und weitergeben an Momo
für das Closing vielen
Dank