orm@doc-tcpip.org | Erstellt: August 2000 - Letzte Modifikation: November 2001 |
Ich habe mein Interface en0 mit dem SMIT (smit tcpip) konfiguriert. Dabei war ich faul und habe nur eine Adresse, einen Hostnamen und eine Netzmaske vergeben (also kein Gateway etc.)
Das sieht dann so aus:
#ifconfig en0 en0: flags=e080863Jetzt schaue ich mir mit lsattr die in der ODM abgelegten, aktuellen Attribute an:inet 192.168.1.4 netmask 0xffffff00 broadcast 192.168.1.255
#lsattr -El en0 mtu 1500 Maximum IP Packet Size for This Device True remmtu 576 Maximum IP Packet Size for REMOTE Networks True netaddr 192.168.1.4 Internet Address True state up Current Interface Status True arp on Address Resolution Protocol (ARP) True netmask 255.255.255.0 Subnet Mask True security none Security Level True authority Authorized Users True broadcast Broadcast Address True netaddr6 N/A True alias6 N/A True prefixlen N/A True alias4 N/A True rfc1323 N/A True tcp_nodelay N/A True tcp_sendspace N/A True tcp_recvspace N/A True tcp_mssdflt N/A TrueDer Adapter ist available:
# lsdev -Cc adapter sa0 Available 01-C0 Standard I/O Serial Port 1 sa1 Available 01-D0 Standard I/O Serial Port 2 sioka0 Available 01-F0 Keyboard Adapter sioma0 Available 01-G0 Mouse Adapter fda0 Available 01-H0 Standard I/O Diskette Adapter pmc0 Available 01-I0 Power Management Controller scsi0 Available 04-C0 Wide SCSI I/O Controller iga0 Available 04-01 GXT110P Graphics Adapter siota0 Available 01-A0 Tablet Adapter ppa0 Available 01-B0 Standard I/O Parallel Port Adapter paud0 Available 01-E0 Ultimedia Integrated Audio tok0 Available 04-05 IBM PCI Tokenring Adapter (14101800) ent0 Available 04-B0 IBM PCI Ethernet Adapter (22100020) ent1 Available 04-04 IBM PCI Ethernet Adapter (22100020)Und das Interface auch (das müßte nicht so sein: Ich kann, wenn der Adapter, also die Hardware (entX, tokX), da ist, das Interface mit ifconfig konfigurieren, also an der ODM aussen vorbeilaufen. Dann funktioniert alles prima, nur mein Interface en0 ist nur defined und der State ist down....).
# lsdev -Cc if et0 Defined IEEE 802.3 Ethernet Network Interface et1 Defined IEEE 802.3 Ethernet Network Interface lo0 Available Loopback Network Interface tr0 Available Token Ring Network Interface en0 Available Standard Ethernet Network Interface en1 Defined Standard Ethernet Network InterfaceWas steht jetzt in der ODM? Wir schauen nur in die Datenbanken, die wir verändern (Customizing). In der CuAt (Customized Attributes) finden sich Einträge wie die Adresse, Netzmaske und der Status des Interfaces: (Hier stehen keine Routen. Die Interface-Route wird unter AIX automatisch angelegt bzw. gehört zur Interface Datenstruktur dazu. Weitere statische Routen werden in den inet0-Objektklassen abgelegt.)
# odmget CuAt|grep -p en0 CuAt: name = "en0" attribute = "netaddr" value = "192.168.1.4" type = "R" generic = "DU" rep = "s" nls_index = 4 CuAt: name = "en0" attribute = "netmask" value = "255.255.255.0" type = "R" generic = "DU" rep = "s" nls_index = 8 CuAt: name = "en0" attribute = "state" value = "up" type = "R" generic = "DU" rep = "sl" nls_index = 5Die Information, die sich auf den Treiber bezieht (oder, korrekter, auf das Eltern-Device, also wo ist das Interface eingehängt?) bekommt man aus der Objektklasse CuDv (Customized Devices). Die Status-Information korrespondiert mit der Information in CuAt, Attribut "state": eine 1 ist up. Korrespondiert heißt aber nicht, das diese Werte miteinander verknüpft sind - man kann sie einzeln ändern und sich so Probleme schaffen. Weiter findet man das Eltern-Device (inet0) und den Treiber, in diesem Fall eine Kernel-Extension: if_en.
#odmget CuDv|grep -p en0 CuDv: name = "en0" status = 1 chgstatus = 1 ddins = "if_en" location = "" parent = "inet0" connwhere = "" PdDvLn = "if/EN/en"Jetzt setze ich mit dem chdev-Kommando den Status des Interfaces auf down, und zwar mit dem Flag -P, es soll also nur in die ODM geschrieben werden (das Device als solches wird also nicht informiert bzw. geändert).
# chdev -l en0 -a state=down -P en0 changedMit dem ifconfig-Kommando ist alles noch in Ordnung, und sowohl Interface wie auch Adapter funktionieren einwandfrei. Schließlich ist es ihnen herzlich egal, was in der ODM steht.
# ifconfig en0 en0: flags=e080863Das lsattr-Kommando sieht das genau umgekehrt: Hier ist es egal, was wirklich in den Datenstrukturen von Adapter oder Interface steht. So ist unser Adapter down - auch wenn wir das erst nach dem nächsten Reboot merken würden. Oder wenn man den cfgmgr laufen läßt. Das Interface würde dann als Stopped erscheinen, der Status in der CuDv wäre 2. (Schließlich ist ja was definiert für das Interface, nur ist es down gesetzt. Daher schließt das System, das es gestoppt ist).inet 192.168.1.4 netmask 0xffffff00 broadcast 192.168.1.255
# lsattr -El en0 mtu 1500 Maximum IP Packet Size for This Device True remmtu 576 Maximum IP Packet Size for REMOTE Networks True netaddr 192.168.1.4 Internet Address True state down Current Interface Status True arp on Address Resolution Protocol (ARP) True netmask 255.255.255.0 Subnet Mask True security none Security Level True authority Authorized Users True broadcast Broadcast Address True netaddr6 N/A True alias6 N/A True prefixlen N/A True alias4 N/A True rfc1323 N/A True tcp_nodelay N/A True tcp_sendspace N/A True tcp_recvspace N/A True tcp_mssdflt N/A TrueUnd das Interface ist auch in den Status Defined gesetzt.
# lsdev -Cc if et0 Defined IEEE 802.3 Ethernet Network Interface et1 Defined IEEE 802.3 Ethernet Network Interface lo0 Available Loopback Network Interface tr0 Available Token Ring Network Interface en0 Defined Standard Ethernet Network Interface en1 Defined Standard Ethernet Network InterfaceBei den Customized Attributes fehlt der Eintrag für das Attribute State - der Default ist schließlich down, und nur eine Änderung zum Default wird in die CuAt eingetragen.
# odmget CuAt|grep -p en0 CuAt: name = "en0" attribute = "netaddr" value = "192.168.1.4" type = "R" generic = "DU" rep = "s" nls_index = 4 CuAt: name = "en0" attribute = "netmask" value = "255.255.255.0" type = "R" generic = "DU" rep = "s" nls_index = 8In der CuDv sehen wir, das der Treiber auf down steht: Der Status ist 0, statt 1.
# odmget CuDv|grep -p en0 CuDv: name = "en0" status = 0 chgstatus = 1 ddins = "if_en" location = "" parent = "inet0" connwhere = "" PdDvLn = "if/EN/en"Und damit mir alle glauben hole ich das Device jetzt wieder hoch. Nochmal: zu keinem Zeitpunkt hat der Adapter oder das Interface aufgehört zu funktionieren. Ich habe nur die ODM manipuliert; solche Änderungen würde ich erst nach Reboot oder cfgmgr merken.
# chdev -l en0 -a state=up -P en0 changed # lsdev -Cc if et0 Defined IEEE 802.3 Ethernet Network Interface et1 Defined IEEE 802.3 Ethernet Network Interface lo0 Available Loopback Network Interface tr0 Available Token Ring Network Interface en0 Available Standard Ethernet Network Interface en1 Defined Standard Ethernet Network InterfaceUnd hier zu guter Letzt die Standard-Einstellungen für das Interface:
# lsattr -Dl en0 mtu 1500 Maximum IP Packet Size for This Device True remmtu 576 Maximum IP Packet Size for REMOTE Networks True netaddr Internet Address True state down Current Interface Status True arp on Address Resolution Protocol (ARP) True netmask Subnet Mask True security none Security Level True authority Authorized Users True broadcast Broadcast Address True netaddr6 N/A True alias6 N/A True prefixlen N/A True alias4 N/A True rfc1323 N/A True tcp_nodelay N/A True tcp_sendspace N/A True tcp_recvspace N/A True tcp_mssdflt N/A True
[ Allgemein | UNIX | AIX | TCP-IP | TCP | ROUTING | DNS | NTP | NFS | FreeBSD | Linux | RPi | SMTP | Tracing | GPS | LW ]
Copyright 2001-2021 by Orm Hager - Es gilt die GPL