NetBIOS staat voor het Network Basic Input/Output Systeem. Dit door IBM ontwikkelde protocol is de standaard in de lokale netwerken (Local Area Network) geworden en wordt o.a. door OS/2 en Windows gebruikt.
Het NetBIOS is te te vergelijken met het eveneens door IBM ontworpen IBM PC BIOS: Het inmiddels door de PC klonenbouwers gekraakte IBM PC BIOS fungeert voor DOS programma's als een veilige en transparant medium (interface) naar uiteenlopende maar IBM BIOS compatibele hardware. Programma's hoeven slechts de BIOS functies aan te roepen en het karwei wordt door de hardware geklaard.
In een multitasking omgeving zullen de BIOS functies door het besturingssysteem worden geëmuleerd. Dit is nodig om gelijktijdige toegang tot de hardware door meerdere programma's te voorkomen. Een modern besturingssysteem zal bovendien de hardware direct (d.w.z. met zijn eigen stuurbestanden en dus buiten het BIOS om) zien te benaderen. Dit levert snelheidswinst op. En het zal via zijn Application Programming Interface (API) bibliotheken nieuwe functionaliteit aan zijn programma's leveren.
Maar DOS programma's kunnen nog steeds de basale BIOS functies aanroepen. Dat kan onder DOS, de Virtual Dos Machine (VDM) van OS/2, Linux' DOSEMU en onder de meeste versies van Windows.
Met het NetBIOS speelt iets soortgelijks. Applicaties die er gebruik van maken hoeven zich niet om details van de communicatie (onderliggende hardware en netwerkprotocollen) te bekommeren. Dergelijke programma's zijn gemakkelijk te porteren naar andere platformen die NetBIOS functies ondersteunen. Het NetBIOS is immers een alles (OS en netwerkprotocol) overkoepelende standaard, die bijv. ook via TCP/IP of NetWare IPX te benaderen is. Maar ieder OS is vrij om meer of minder functionaliteit aan haar NetBIOS uitvoering (implementatie) te geven.
Voor meer informatie zie : 4.1.5 Network Basic Input/Output System (NetBIOS) in het "LAN Concepts and Products: LAN Architecture" Redbook van IBM.
Ik richt me nu verder op de praktijk. Hierbij concentreer ik me op de basale NET-opdrachten. Dit omdat deze goed in scripts (autoexec.bat, setup.cmd) te verwerken zijn en de grafische programma's die ze gebruiken niet (veel) meer zijn dan grafische front-end voor deze basale hulpmiddelen voor de prompt.
Veel applicaties (Lotus) en hulpprogramma's kunnen met de universal naming convention namen omgaan. Een UNC naam bestaat uit drie componenten: \\server\share\pad.
Het gebruik van UNC namen is vooral handig in scripts.
Helaas wordt XCOPY niet op deze manier ondersteund.
Met de vrij simpele NET-opdrachten kunt u van alles op een NetBIOS netwerk doen. Er is dus geen grafische interface voor nodig. Het NetBIOS protocol bestond al voordat de OS/2 GUI (laat staan de Windows GUI) ontworpen was. Veel NET-opdrachten werken ook onder de Windows prompt.
[F:\]net
De syntaxis van deze opdracht is als volgt:
NET { ACCESS | ACCOUNTS | ADMIN | ALIAS | APP | AUDIT | COMM |
CONFIG | CONTINUE | COPY | DASD | DEVICE | ERROR | FILE |
FORWARD | GROUP | HELP | LOG | MOVE | NAME | PASSWORD | PAUSE |
PRINT | RUN | SEND | SESSION | SHARE | START | STATISTICS |
STATUS | STOP | TIME | USE | USER | VIEW | WHO }
NET [OPDRACHT] geeft dus toegang tot de NetBIOS functies. Een goede NET-opdracht om mee te beginnen is: NET HELP | MORE
De syntaxis van deze opdracht is als volgt:
NET HELP [opdracht [/OPTIONS]]
NET HELP onderwerp
NET opdracht [/HELP]
[/?]
Help is beschikbaar voor deze hulpprogramma's:
* AT DSPDOMDF * GETRPL * MAKEIMG * PROFILER
BACKACC FIXACC * HDCON * MKRDPM RESTACC
* CACHE386 * FTADMIN LSAUDIT * MMUTIL * RPLENABL
* CHGSRVR * FTMONIT LSERROR NETMSG * RPLDSABL
* CHKSTOR * FTREMOTE * LTU * PREPACL * THIN386
* DLIMFIX * FTSETUP * MAKEDISK * PRIV
Help is beschikbaar voor deze NET-opdrachten:
ACCESS COPY MOVE START
ACCOUNTS DASD NAME STATISTICS
ADMIN DEVICE PASSWORD * STATUS
* ALIAS ERROR PAUSE STOP
APP FILE PRINT TIME
AUDIT FORWARD * RUN USE
COMM GROUP SEND USER
CONFIG HELP SESSION VIEW
CONTINUE LOG SHARE * WHO
* Deze hulpprogramma's en NET-opdrachten gelden niet voor het
programma Bestanden en Printers Client.
Help is beschikbaar over deze speciale onderwerpen:
NAMES SYNTAX
Typ NET HELP opdracht | MORE als u de Help-informatie scherm voor scherm
wilt afbeelden.
Welke servers zijn er in de netwerkomgeving?
Dit werk alleen met in \IBMLAN\IBMLAN.INI:
Wat heeft de server te bieden? Hier moet u de met "net view" de "\\server" specificeren:
[I:\]net view \\LAPTOP
Gemeenschappelijke resources bij \\LAPTOP
Samba 2.0.5a
naam resource Type Gebruikt als Commentaar
ascii Afdrukken cdjcolor-a4-ascii-mono-300
cdjcolor-a4- Afdrukken cdjcolor a4 raw
cdrom Schijf Linux CD-ROM
Docs Schijf Mijn Documenten
lp2 Afdrukken cdjcolor-a4-auto-mono-300
In dit geval wordt een onder Linux draaiende samba server getoond die naast Windows op de laptop staat. Omdat ik niet aan de Novell\Windows configuratie van de systeembeheerder mag komen gebruik ik Linux voor bestandsuitwisseling met mijn eigen LAN. De samba server presenteert "Mijn documenten" als de share "Docs".
Niet alle shares zijn te zien. Onder samba kunt u met de optie:
browseable = no
in /etc/smb.conf voorkomen dat een share in een netwerkomgeving wordt gezien. Daarnaast is een firewall (ipchains) en het goed instellen van hosts.deny (ALL:ALL) en hosts.allow (ALL: 192.168.0.0) van belang om te voorkomen dat de shares elders te zien zijn.
Nog even snel met Linux op zolder verbinden :
Wat is de netwerkomgeving?
Wat heeft \\zolder te bieden?
We gaan de nu de Linux samba server als station S gebruiken:
In het drives object moet nu een station S: te zien zijn. Met "net use" kunt u de gebruikte shares zien:
[H:\]net use
Status Local name Remote name
____________________________________________________
OK S: \\ZOLDER\SAMBA
Dormant \\ZOLDER\IPC$
The command completed successfully.
Met net share kunt u uw eigen shares activeren. Bedenk wel dat ze met NetBIOS via TCP/IP ook voorbij het LAN te zien zijn. Beveilig ze in ieder geval met een wachtwoord.
De syntaxis van deze opdracht is onder OS/2 is als volgt:
Onder OS/2 is dit (net als onder windows NT) een taak van de systeembeheerder.
[I:\]net share
NET2761: U kunt deze opdracht alleen geven als u
beheerdersbevoegdheid hebt of als u beschikt over de volgende
gebruikersrechten: PRINT,COMM,SERVER.
Voor meer informatie typt u HELP NET2761.
In de praktijk moet u zich dan als zodanig even opnieuw aanmelden op het netwerk.
[F:\]net share
Naam resource Resource Opmerking
------------------------------------------------------
IPC$ IPC op afstand
ADMIN$ F:\IBMLAN Systeembeheerder op afstand
DATA E:\ Data op VFAT
DOS D:\
FAT32 M:\ FAT32 op L
HPFSDATA G:\ Data op HPFS
VAPRO M:\ VAPRO op M
PRINTER LPT1 Gespoold Deskjet op OS/2
COM1 COM1
De opdracht is uitgevoerd.
Een logbestand aanmaken van het netwerkverkeer.
[I:\]net log
De functie Berichten vastleggen is ingeschakeld.
De naam van het logboekbestand of het apparaat is I:\IBMLAN\LOGS\MESSAGES.LOG.
De tijd opvragen:
Netstat geeft veel informatie over het TCP/IP netwerk. IBM heeft hier geen online informatie voor. De PEER FAQ van Thomas Baumann (Buchhorn BBS) wel.
De opdracht netstat geeft een globaal overzicht van de parameters. De netstat parameters kunt u combineren: netstat -mtuisprcna >j:/data/netstat.log.
[I:\]netstat
Syntaxis: netstat [ -? ] | [ -mtuisprcna ]
Where:
m - mbufs |
[I:\]netstat -m mbufs verkregen van pagina-pool 80 mbufs vrij 32 mbufs gegevens 0 mbufs koptekst 2 mbufs socket-structuur 12 mbufs socket-naam 0 mbufs socket-optie 0 mbufs protocol-stuurblok 18 mbufs routing-tabel 13 mbufs opnieuw samenstellen 0 clusters verkregen van pagina-pool 95 vrije clusters 94 aantal keren dat geen ruimte werd gevonden 0 aantal keren gewacht op ruimte 0 |
t - tcp |
Informatie over de TCP/IP transmissie via het TCP protocol. |
u - udp |
Informatie over de TCP/IP transmissie via het UDP protocol. |
i - ip |
Informatie over de verwerking van de IP pakketten. |
s - sockets |
Informatie over internet diensten (sockets). In het onderstaande voorbeeld staat een smpt poort op en is er een telnetverbinding met een samba server op IP adres 192.168.1.20. -------------------------------------------------------------------------- AF_INET Adresfamilie :
SOCK TYPE FOREIGN LOCAL FOREIGN STATE PORT PORT HOST ==== ========= ============= ============= ============= ============= 17 STREAM telnet..23 1025 192.168.1.20 ESTABLISHED 16 STREAMnetbios-ssn..139 1024 192.168.1.20 ESTABLISHED 15 DGRAM 0 13991 0.0.0.0 UDP 14 DGRAM 0 0 0.0.0.0 UDP 13 STREAM 0 0 0.0.0.0 CLOSED 12 STREAM 0 smtp..25 0.0.0.0 LISTEN 11 STREAM 0 0 0.0.0.0 CLOSED 10 DGRAM 0 emfis-data..140 0.0.0.0 UDP 9 STREAM 0 netbios-ssn..139 0.0.0.0 LISTEN 8 DGRAM 0 netbios-ns..137 0.0.0.0 UDP 7 DGRAM 0 netbios-dgm..138 0.0.0.0 UDP -------------------------------------------------------------------------- AF_OS2 Adresfamilie :
-------------------------------------------------------------------------- AF_NB Address Family :
SOCK TYPE PARTNER NAME LOCAL NAME U/G ADP STATE ==== ======= ================ ================ === === =========
|
r - routes |
Netstat-r geeft de routing tabel weer.
Hier een output van netstat -r >netstat.txt tijdens een internet sessie.
|
c - icmp |
Netstat -c geeft de ICMP statistieken.
|
n - interfaces |
Netstat -n
|
a - address |
Waarheen de datagrammen verzonden worden.
|
p - arp |
Geeft de ARP tabel weer.
|
? - help |
Geeft het staatje in de eerste kolom. |
ARP staat voor het Address Resolution Protocol .
Arp host vraagt het fysieke hardware-adres van de netwerkaart op. Dit adres is door de fabrikant in de netwerkadapter aangebracht.
[I:\]arp zolder
zolder (192.168.0.2) at 0:0:b4:b8:1e:20
Warps arp kan "visser" hardware adres niet achterhalen.
Met telnet vanuit Linux lukt het (na een opvallende vertraging) wel, maar ook linux kan zijn eigen hardware-adres niet vinden:
Netstat -p geeft de inhoud van de arp tabel.
Traceroute ( tracerte onder OS/2) geeft de weg weer van uw IP adres naar een andere host. De weg naar uw eigen provider (hieronder) is natuurlijk kort, maar ga je verder dan kom je tientallen tussenstations (routers) tegen.
Nslookup is vooral bedoeld voor het opsporen van domeinen. Het gaat om een test voor de DNS. De door mij ingestelde DNS server van Demon geeft zonder blikken en blozen het IP adres van mijn domein. Dat is logisch, want Demons naamserver(ns-cache-1.ns.nl.demon.net) is verantwoordelijk voor de hosts in het domein demon.nl.
Vraag je de de DNS server van Demon om het IP adres van IBM, dan blijken er meerdere adressen voor www.ibm.com te bestaan. Demon geeft een "Antwoord zonder machtiging", d.w.z dat de cache ingangen voor "www.ibm.com" bevat, maar dat hier de "authoritative" DNS server van het domein www.ibm.com niet geraadpleegd is.
Het commando "host domein" geeft aan dat 198.133.17.99 gebruikt moet worden. Overigens gaven de door nlookup geleverde IP adressen hetzelfde resultaat.