Internetwork Operating System Software (IOS)
ist das Betriebssystem von Cisco-Routern und -Switches.
Das Betriebssystem geht zurück auf den Angestellten der Stanforder Medizinischen Schule namens Bill Yeager, der um 1980 die Software entwickelte, welche es den Routern ermöglicht, Netzwerke unterschiedlicher Medien und Protokolle miteinander zu verbinden. Er arbeitete bis 1984 mit Sandra Lerner und Len Boseck, den Gründern von Cisco, an der Verbesserung dieser Software zusammen. Mit der Gründung von Cisco im Jahre 1984 lizenzierte Cisco diese Software von Yeager. Seitdem wurde sie in verschiedenen Versionen eingesetzt und liegt seit Mai 2005 in der Version 12.4 vor.
IOS wurde in der Vergangenheit auch an andere Hersteller lizenziert. So verwendeten z. B. die in den 1990er Jahren verbreiteten DEC Brouter ein im Funktionsumfang eingeschränktes Cisco IOS.
IOS wird bei modernen Geräten beim Einschalten des Gerätes aus dem nichtflüchtigen Flash-Speicher dekomprimiert und in den Hauptspeicher geladen, während es bei älteren Routermodellen wie z. B. dem Cisco 2500 grundsätzlich direkt vom Flash-Speicher ausgeführt wird. Letzteres begrenzt die Ablaufgeschwindigkeit wegen des zum Hauptspeicher vergleichsweise geringen Durchsatzes von Flash-Speicher. Nach dem Start stellt es die grundlegenden Funktionen des Routing und/oder Switching zur Verfügung. Es werden je nach sogenanntem Feature-Set unter anderem Routing-Protokolle wie BGP, OSPF, EIGRP und RIP unterstützt. Außerdem werden je nach Feature-Set auch weitere Netzwerkprotokolle wie IPv6, IPX, AppleTalk unterstützt. Über Zugriffskontrolllisten werden grundlegende Paketfilterfunktionen bereitgestellt.
Gesteuert und konfiguriert wird dieses per Kommandozeile über eine Telnet, SSH oder eine direkte serielle Konsolenverbindung am Endgerät. Die Bedienung ist der von MS-DOS- oder Unix-Kommandozeilen ähnlich und enthält Funktionen wie Autocomplete (das automatische Vervollständigen eines eingegebenen Kommandos). Eine enorme Hilfe ist dabei das Fragezeichen, welches an beliebiger Stelle eingegeben eine kontextabhängige Kurzhilfe ausgibt. Es sind aber auch Web- und Windows-Oberflächen verfügbar. Auch über SNMP kann man IOS eingeschränkt konfigurieren.
Kommandoprompt:
- User Mode: Router>
- Privileged Mode: Router#
- Global Configuration Mode: Router(config)#
- Spezieller Interface Configuration Mode: Router(config-if)#
Mit dem User-Modus können nur einfache Abfragen und diverse show-Befehle ausgeführt werden.
Im privilegierten Modus und im Global-Configuration-Modus kann der Router oder Switch konfiguriert werden.
Der Wechsel in den privilegierten Modus kann ein Passwort erfordern, von dort kann man in den Global Configuration Mode wechseln.
Um einzelne Schnittstellen einstellen zu können, muss in den „Interface Configuration Mode“ der jeweiligen Schnittstelle gewechselt werden.
Die verschiedenen IOS Versionen liegen als *.bin Datei vor. Der Name dieser Dateien ist so aufgebaut:
- Beispiel: C2500-D-L.120-9.bin
- Platform C2500
- Feature Set: D
- Run Location: L
- Version: 120-9
IOS Befehle
Eine gruppierte Auswahl an IOS Befehlen
- Router Kommandos
- Usermode-Kommandos
- Privilegemode Kommandos
- Global configuration mode Kommandos
- Interface subconfiguration mode Kommandos
- Line subconfiguration mode Kommandos
- Subnterface subconfiguration mode Kommandos
- IP routing protocol subconfiguration mode Kommandos
Usermode
disconnect #Loggt den Benutzer aus und trennt Telnet-Session| enable ping <host-name | ip-address> #Überprüft physikalische Verbindung mit Standardpaketen. Extended Ping ohne Parameter mgl. traceroute <hostname | ip-address > #Erweiterter Ping mit Rückmeldung aller Router
Privilege Mode
clear arp-cache #Löscht den Arp-Cache configure terminal #Wechselt in Konfigurationsmodus, Befehle zum Ändern der Konfiguration möglich copy running-config startup-config #Speichert aktuelle Konfiguration copy startup-config running-config debug ip packet disable #Springt in den UserEXEC Modus zurück disconnect <TELNET_ID> erase startup-config #Löscht alle Konfigurationsdateien logout #Verlässt Konfigurationsmodus ping <host-name> #Überprüft physikalische Verbindung mit Standardpaketen. Extended Ping ohne Parameter mgl. ping <ip-address> reload resume <TELNET_ID> show access-list #Accessliste von allen eingestellten Protokollen show banner show cdp #Status von CDP wie Holdtime Value oder Pakete/60s show cdp interface #CDP Konfiguration auf Interface-by-Interface-Basis. show cdp neighbor show cdp traffic show clock show flash #Zeigt IOS-Images im Flashspeicher show frame-relay lmi #Genaue Statistik von LMI aus. show frame-relay map show frame-relay pvc <dlci_num> #Zeigt alle geendeten Frame- Relais PVCs und ihre Statistiken an einem spezifizierten Router show history #Letzte 10 ausgeführten Befehle show hosts show interfaces #Zeigt die Interface-Status und Statistiken, ideal zur Fehlersuche show interfaces ethernet 0 show interfaces loopback <port-number> show interfaces serial 0 #Gibt den genutzten LMI Typ und zusätzliche Statistiken aus show ip arp show ip eigrp neighbors #Zeigt Liste von der benachbarten eigrp-Router show ip eigrp neighbors detail show ip eigrp topology #Zeigt eine Topologie vom Netzwerk sowie andere Wege an show ip eigrp traffic #Trafiic-Statistics für eigrp show ip interface show ip interface brief #Prüft IP-Konfiguration show ip ospf database show ip ospf interface show ip ospf neighbor detail show ip route #Zeigt die Konfiguration der statischen Routen und der Standard-Gateways show protocols #Zeigt Informationen zu den Schnittstellen show running-config show sessions #Listet aktuelle Telnet-Sessions show startup-config show version #Versionsinformation für Hard- und Firmware telnet <host-name> #Beginnt Telnet-Session telnet <IP-address> traceroute <hostname> traceroute <ip-address> #Erweiterter Ping mit Rückmeldung aller Router, ideal zum Aufspüren von Routingproblemen vlan database #Zugriff auf VLAN- und VTP- Konfiguration gestatten write erase #Konfiguration löschen write memory #Konfiguration festschreiben write terminal
Global configuration Mode
access-list <list-num> {permit | deny} <source-ip-address> #Ausschließlich definierten IPs Zugriff gestatten bzw. verweigern access-list <list-num> {permit | deny} <any> access-list <list-num> {permit | deny} <ip-address> <ip-address> access-list <list-num> {permit | deny} <host-name> <ip-address> banner motd <banner> #Erstellt Login-Banner auf dem Router cdp advertise-v2 cdp holdtime <seconds> cdp run cdp timer <seconds> config-register <value> #Hexadezimaler oder dezimaler Wert, der die 16-bit Konfiguration im Register darstellt. Das Register wird zum Starten des Routers verwendet. Der Wertebereich kann von 0x0 bis 0xFFFF (0 bis 65535 im Dezimalbereich) liegen. Normalerweise ist der Standard-Wert 0x2102 dialer-list<list-num>protocol ip permit enable password <password> #Passwort vergeben enable secret <password> #Verschlüssle Passwort nach deren Festlegung end hostname <host-name> interface ethernet 0 #Zugang zum Ethernet-Interface dem Subkonfigurations-Modus interface fastethernet <pnum> interface loopback <port-number> #Erstelle eigene Loopback- Adresse. Die Port können zwischen 0 to 214748364 liegen interface serial 0 interface vlan <vlan_num> ip default-gateway <ip-address> #Standard-Gateway festlegen. Wird genutzt, wenn Router eine Anforderung mit eingetragenen Routen nicht bedienen kann ip default-network <ip-address> ip domain-lookup ip host <name> <ip-address> #Kompletter Befehl: ip host name [tcp-port] address1 [address2...address8] ip name-server <ip-address> #DNS-Server zur Namenauflösung eintragen ip route <quelle> <subnetz> {ziel | interface} #Definiert Routingeinträge ip route 0.0.0.0 0.0.0.0 <ip-address> ip route <ip-address> <ip-address> <ip-address> ip route <ip-address> <ip-address> serial 0 ip routing ipx routing isdn switch-type <switch_type> line aux line console 0 #Zugang zu Konsolen-Interface, hier Konsolenpart 0 line vty #Unterstützt werden 16 simultane Telnet-Verbindungen, Nummerierung von 0-15. no banner motd no cdp run #cdp am Router kann explizit aktiviert/deaktiviert werden no ip domain-lookup #Deaktiviert alle DNS-Lookups no ip routing no router eigrp no router ospf no router rip no vlan <vlan_num> router eigrp <aut_sys> router ospf <proc_id> #Process_id is locally significant and is used to differentiate different ospf processes running on a router. router rip #Startet den Konfigurationsmodus für das RIP-Routing snmp-server enable traps vtp username <name> password <password> #Benutzer anlegen
Interface subconfiguration Mode Kommandos
bandwidth <kilobits> #Festlegung der Bandbreite (Geschwindigkeit) in kb/Sekunde. cdp enable clock rate <bps> #Desired clock rate in bits per second: 1200, 2400, 4800, 9600, 19200, 38400, 56000, 64000 etc. compress stac <num> in description <string> #Beschreibung (1 bis 80 Zeichen) dialer-group<dialer_list_#> dialer map ip <ip-address> <des-phone> dialer map ip <ip-address> name <hostname> <des-phone> dialer string< phone_#> <class map_name> encapsulation <encapsulation-type> #Verkapselung folgender Typen (zum Beispiel PPP/HDLC) encapsulation framerelay<num> in frame-relay lmi-type <lmi_type> #Festlegen des LMI-Typs, welcher zur Kommunikation zwischen Router und Transportswitchs genutzt wird. LMI Typ ist festgelegt am kompletten Interface, nicht ausschließlich am VC. frame-relay map<protocol-name> <ip-address> <dlci_num> #Konfiguriert die manuelle resolution of PVC's. frame-relay map<protocol-name> <ip-address> <dlci_num> broadcast frame-relay map<protocol-name> <ip-address> <dlci_num> broadcast cisco frame-relay map<protocol-name> <ip-address> <dlci_num> broadcast ietf frame-relay map<protocol-name> <ip-address> <dlci_num> cisco frame-relay map<protocol-name> <ip-address> <dlci_num> ietf ip access-group <num> in ip access-group <num> out ip address <ip-address> <sub-net mask> isdn spid1<spid_num> #Defines the spid's that are used to authenticate call requests.Used only on local connection between router and isdn switch. isdn spid2<spid_num> keepalive <seconds> login no bandwidth no cdp enable no clock rate no frame map <protocol name> <ip-address> <dlci_num> no frame map<protocol-name> <ip-address> <dlci_num> broadcast no frame map<protocol-name> <ip-address> <dlci_num> cisco no frame map<protocol-name> <ip-address> <dlci_num> ietf no ip address no shutdown shutdown #Deaktiviert laufende Interfaces shutdown switchport #Bestimmtes Interface deaktivieren speed switchport access vlan <vlan_num> switchport port-security mac-address sticky<mac_addr> switchport port-security maximum <max_macadd> switchport port-security violation <violat_mode>
Line subconfiguration Mode
exec-timeout <minuten> [sekunden] #Festlegen des Timeout für Ausführungen [Sekunden sind optional] logging synchronous password <password> #Passwort festlegen
Subinterface Subconfiguration Mode
description <string> #Benutzerdefinierter Hilfetext zu einem Interface, z.B. „eth0: Verbindung Internet frame-relay interface-dlci <dlci_num> #Man kann DLCI konfigurieren, wenn man Datenverbindungen bestimmten Nummern zuordnen will. Einfaches Switchen ist dann möglich, da sich Router nach DLCI-Nummer verbinden frame-relay map <protocol-name> <ip-address> <dlci_num> frame-relay map <protocol-name> <ip-address> <dlci_num> broadcast frame-relay map <protocol-name> <ip-address> <dlci_num> broadcast cisco frame-relay map <protocol-name> <ip-address> <dlci_num> broadcast ietf frame-relay map <protocol-name> <ip-address> <dlci_num> cisco frame-relay map <protocol-name> <ip-address> <dlci_num> ietf ip address <ip-address> <subnet-mask> no ip address no shutdown [int] #Aktivieren von deaktivierten Interfaces shutdown [int] #Deaktivieren bestimmter Interfaces
IP Routing Protocol Subconfiguration Mode
network <ip-address> #Mit dem Router verbundene Netzwerke no network <ip-address> #Entfernen von NetzwerkeinträgenBasierend auf der Dokumentation von Cisco Systems, Inc. „Cisco IOS Software Command Summary Cisco IOS Release 11.1”, die auch im Internet unter verfügbar ist: http://www.cisco.com/univercd/home/home.htm
Beispiele
Anzeigen der aktuellen Konfiguration:
show running-config
Anzeigen der IOS-Version, Router-Modell und Ausstattung, usw.:
show version
Anzeigen detaillierter Informationen über alle Router-Schnittstellen:
show interface
Kurzübersicht über IP-Adressen und Status der vorhandenen Router-Schnittstelle:
show ip interface brief
Anzeigen der aktuellen Routing-Tabelle der jeweiligen Netzwerkprotokolle:
show ip route show ipv6 route show ipx route show appletalk route
Wechsel in den privilegierten Modus:
enable
Wechsel in den globalen Konfigurationsmodus:
configure terminal