Skip to content
Snippets Groups Projects
Name Last commit Last update
MACogIP
Scapy
ansible-cisco
script
tftp
.gitignore
README.md

Guide

Dette er guiden for oppkobling av utstyr

Nødvendigheter: Linux eller WSL

Førstegangsinstallasjon

Før du kan komme i gang og og administere Cisco-laben må du installere Ansible, TFTP og andre dependencies på en maskin med Linux installert, helst Ubuntu-distribusjonen da den ble benyttet i prototype-utviklingen. Selve maskinen kan ta hvilken som helst form (laptop, liveboot fra USB, VM, Raspberry Pi), men må være på samme lokalt nett som nettverksutstyret.

Scapy

Scapy er et Python-bibliotek som gjør det mulig å oppdage enheter på nettverket. I dette tilfellet tar vi i bruk verktøyet for å liste opp alle aktive IP-adresser og tilknyttede MAC-adresser i et nettverk.

For å installere Scapy pakkebibliotek skriv i kommandolinjen

sudo apt install python3-scapy

Ansible

For mer informasjon om installasjonsprosessen se her.

  1. Installasjon av Ansible

sudo add-apt-repository --yes --update ppa:ansible/ansible

sudo apt install ansible

  1. Denne må lastes ned for at ansible skal kunne kjøre Python-skripter

sudo apt install python3-is-python

  1. Ansible galaxy collection for å lettere konfigurere Cisco-utstyret

ansible-galaxy collection install cisco.ios

TFTP-server

  1. Last ned TFTP-serveren

sudo apt install tftpd-hpa

  1. Konfigurer TFTP-serveren. Åpne filen /etc/default/tftpd-hpa som burde se sånn ut:

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"

Her går det an å bytte ut innholdet i TFTP_DIRECTORY til tftp-mappen i git. Gjøres dette må eierskapet av mappen byttes til tftp gruppen og brukeren, som gjøres med denne kommandoen:

sudo chown tftp:tftp tftp

Det går også ann å bruke standard mappen, /srv/tftp, men da må må filene i tftp-mappen i git bli overført til mappen som har valgt for TFTP-serveren.

Fremgangsmåte

Før du begynner sørg for at TFTP-serveren kjører.

  1. Skru av strømmen på alle podene som skal oppdateres eller bli konfigurert
  2. Koble til en ethernetkabel fra g0/0 for 2901, 4221 og 3650 og fa 0/0 for 2960 til svitsjen på toppen av poddene. (Det er viktig å bruke rett ethernet port på nettverksutstyret for at oppdateringsscriptet skal fungere)
  3. Skru på strømmen igjen og vent til alt utstyret har bootet opp og satt opp SSH. Dette kan ta opp til 10 minutter

Nå er nettverksutstyret klart for å bli konfigurert av Ansible. Det er laget flere playbooks for diverse ulike formål som bli forklart under. Den letteste måten å gjøre dette er ved å bruke bash filen script.sh, som blir brukt på følgene måte:

./script.sh playbooks/<navn på playbook>

Her er en liste over de nåverende playbooks:

show_version

show version er en veldig enkel playbook som bare vil sende tilbake hvilken IOS versjon nettverksutstyret kjører på.

clear config

Denne playbooken vil slette oppstartskonfigurasjonen på nettverksutstyret.

update_*

Brukes til å oppdatere nettverksutstyret

send_konfig

Brukes til å sende konfigurasjons filer til nettverksutstyret

Nytt legge til nytt utstyr i maskinvarelisten

Feilsøking


Hvis ansible-galaxy collection install cisco.ios feiler kan disse kommandoene hjelpe

sudo apt install python3-pip

sudo -H pip install -Iv 'resolvelib<0.6.0'


Hvis installasjonen av pip eller scapy feiler, kan denne kommandoen hjelpe

sudo add-apt-repository universe


Hvis SCP-filer får feilmeldingen Insert error message, kan det være fordi ansible prøver å bruke ansible-pylibssh som ikke fungerer med Cisco-utstyret, dette kan løses ved å avinstallere ansible-pylibssh.