Operační systém UNIX
Sítě v operačním systému Unix
Sítě v operačním systému Unix ! !
!
Sítě jsou složité pro zjednodušení jsou řešeny po vrstvách ISO/OSI model - od teorie k praxi příliš se neujal 7 vrstev používán pro klasifikaci a výuku TCP/IP - od praxe k teorii sada protokolů implementovaných na internetu 4 resp. 5 vrstev specifikován pomoci RFC
!
Protokol ! !
je sada pravidel popisujících výměnu dat. Pro TCP/IP jsou nejčastěji popsány v tzv. RFC.
predn_11.doc
11.05.01 12:52
1
Operační systém UNIX
Sítě v operačním systému Unix
Síťové modely ISO/OSI
TCP/IP
Application Presentation
Application
Session
predn_11.doc
Transport
Transport
Network
Internet
Link
Network Interface
Physical
Hardware
11.05.01 12:52
2
Operační systém UNIX
Sítě v operačním systému Unix
Zapouzdřování (enkapsulace) system2:
system1:
vi
Aplikační data
Aplikační vrstva - zprávy telnetd ! (telnet protokol)
Aplikační data
TH
Aplikační data
Transportní vrstva - pakety (TCP)
TH
Aplikační data
TH
Aplikační data
IH
TH
Aplikační data
IH
TH
Aplikační data
telnet
IH
FH
IH
TH
predn_11.doc
Aplikační data
IP vrstva - datagramy (IP)
FT
Síťová a fyzická vrstva - rámce (ethernet) 11.05.01 12:52
FH
FT
3
Operační systém UNIX
Sítě v operačním systému Unix
Síťová a fyzická vrstva Topologie: ! ! !
Sběrnice (bus) původní ethernet na koaxiálním kabelu Hvězda (star) ethernet na kroucené dvojlince Kruh (ring) TokenRing (IBM)
Metodologie: ! ! !
Pravděpodobnostní: CSMA/CD (Ethernet) Deterministická TokenRing Spojovaná ATM
predn_11.doc
11.05.01 12:52
4
Operační systém UNIX
Sítě v operačním systému Unix
Protokoly: fyzické přenosové protokoly ! Ethernet, TokenRing, ATM ! SLIP (Serial Line IP) - přenos IP po sériové lince ! PPP (Point to Point Protokol) - novější způsob přenosu IP po sériové lince ! ARP (Address Resolution Protocol)- mapování IP adres do fyzických adres přenosového protokolu ! RARP (Reverse Address Resolution Protocol) - zjištění IP adresy na základě fyzické adresy
predn_11.doc
11.05.01 12:52
5
Operační systém UNIX
Sítě v operačním systému Unix
Ethernet Adresace na ethernetu ! ! !
fyzická adresa, MAC adresa, 6 bytů psaných hexa oddělené dvojtečkou 3 byty přidělené výrobci, 3 byty určovány výrobcem různé karty mají (by měly mít) různé fyzické adresy
Typy adres: !
broadcast:
ff:ff:ff:ff:ff:ff
!
multicast
01:00:5e:xx:xx:xx
!
unicast
ostatní adresy
!
Rozhraní předává ke zpracování: broadcasty, definované mulicasty a unicast s vlastní adresou - normální činnost nebo vše (promiskuitní režim) - sledování sítě, výrazně více zatěžuje systém
! !
predn_11.doc
11.05.01 12:52
6
Operační systém UNIX
Sítě v operačním systému Unix
Struktura ethernetového rámce: ! 8B
! preamble
! 6B
! adresa cíle
! 6B
! adresa zdroje
! 2B
! typ (>=5dd) resp. délka (<5dd)
! max. 1500B ! data ! 4B
! CRC
!
Výpis konfigurace rozhraní: ifconfig interface root@solaris/root>ifconfig nei0 nei0: flags=1000843
mtu 1500 index 2 inet 192.168.10.2 netmask ffffff00 broadcast 192.168.10.255 ether 0:80:48:ed:84:17 predn_11.doc
11.05.01 12:52
7
Operační systém UNIX
Sítě v operačním systému Unix
CSMA/CD
Host has message
Carrier sense
Yes
Traffic on network? No
Collision detection
Send message and check for collision. In case of collision, transmit jam and stop.
No
Was there a collision
Success Yes Wait, back of exponentially
predn_11.doc
11.05.01 12:52
8
Operační systém UNIX
Sítě v operačním systému Unix
Výpis nakonfigurovaných rozhraní a informace o přenesených paketech: !
netstat -i
root@solaris/root>netstat -i Name Mtu Net/Dest Address Ipkts Ierrs Opkts lo0 8232 loopback localhost 718831 0 718831 nei0 1500 192.168.10.0 solaris 51533 110 16603
! !
Oerrs Collis Queue 0 0 0 0 0 0
Kolize normální jev, pokud nepřesahuje trvale 10%, nevadí Chyby nesmí být, pokud se vyskytují pravidelně, znemožňují provoz na síti
predn_11.doc
11.05.01 12:52
9
Operační systém UNIX
Sítě v operačním systému Unix
Segment sítě !
jeden fyzický úsek sítě (koaxiální kabel zakončený odpory, jeden kroucený kabel)
Opakovač (repeater, hub) ! !
spojuje segmenty sítě do tzv. kolizní domény šíří všechny pakety včetně kolizí a chyb (může chybový port odpojit)
Přepínač (switch, most, bridge) ! ! ! !
přepíná pakety na linkové vrstvě na základě fyzických adres spojuje kolizní domény a přenáší mezi nimi jen potřebná data zvyšuje bezpečnost sítě a zmenšuje zátěž sítě je dražší a hlučnější než hub
predn_11.doc
11.05.01 12:52
10
Operační systém UNIX
Sítě v operačním systému Unix
IP vrstva Protokoly: !
!
IP (Internet Protocol) přenos datagramů mezi dvěma uzly sítě Definuje adresaci a směrování. Dvě verze: IPv4 a IPv6 ICMP (Internet Control Message Protocol) testování a přenos chybových zpráv
Adresy IPv4: ! ! !
4 byty psané dekadicky po bytech oddělené tečkou adresa rozdělena na adresu sítě a adresu uzlu Třídy adres (x = část adresy sítě, y = adresa uzlu, z = multicast adresa): A: 1-127.y.y.y B: 128-191.x.y.y C: 192-223.x.x.y D: 224-239.z.z.z
predn_11.doc
11.05.01 12:52
11
Operační systém UNIX
Sítě v operačním systému Unix
Speciální adresy: 127.y.y.y rezervováno pro tzv. loopback ! Adresa s nulovou částí adresy uzlu: adresa sítě ! Adresa s jedničkovou částí adresy uzlu: broadcast ! 0.0.0.0 použita v případě když vlastní adresa není známa (RARP) ! 10.y.y.y, 172.16-31.y.y, 192.168.y.y lze použít jako privátní adresy. Nikdy se nesmí objevit na Internetu. !
predn_11.doc
11.05.01 12:52
12
Operační systém UNIX
Sítě v operačním systému Unix
Výpis nastavení síťového rozhraní: root@solaris/root>ifconfig nei0 nei0: flags=1000843 mtu 1500 index 2 inet 192.168.10.2 netmask ffffff00 broadcast 192.168.10.255 ether 0:80:48:ed:84:17
Ověření průchodnosti cesty: ! root@solaris/root>ping dilna dilna is alive root@solaris/root>ping -s dilna PING dilna: 56 data bytes 64 bytes from dilna (192.168.10.1): icmp_seq=0. time=1. ms 64 bytes from dilna (192.168.10.1): icmp_seq=1. time=1. ms ^C ----dilna PING Statistics---4 packets transmitted, 4 packets received, 0% packet loss round-trip (ms) min/avg/max = 1/1/1
predn_11.doc
11.05.01 12:52
13
Operační systém UNIX
Sítě v operačním systému Unix
Náhrada adres jménem ! ! ! !
pomůcka pro uživatele překlad jmen na adresy (a naopak) se nazývá "resolvování" jméno může být jednoduché nebo doménové překlad je pomocí: souboru /etc/hosts distribuované služby DNS (implementováno např. programem named)
!
jmenných služeb NIS, NIS+, LDAP druh překladu bývá určován souborem /etc/nsswitch.conf
Příklad: root@solaris/root>cat /etc/hosts # # Internet host table # 127.0.0.1 localhost 192.168.10.2 solaris loghost 192.168.10.1 dilna root@solaris/root>grep hosts /etc/nsswitch.conf hosts: files predn_11.doc
11.05.01 12:52
14
Operační systém UNIX
Sítě v operačním systému Unix
Směrování (routing): ! !
přepínéní datagramů v mezilehlých uzlech (routerech) je ovlivněno adresou sítě, nikoliv adresou uzlu
Maska sítě: ! !
explicitně definuje rozdělení adresy na adresu sítě a adresu uzlu na Solarisu jsou masky v souboru /etc/netmasks
Subsítě: !
pomocí masky sítě delší než je standardní se jedna síť rozdělí na více podsítí.
VLSM (Variable Length Subnet Masks): !
maska podsítě není konstantně dlouhá ale má různou délku pro různé podsítě
CIDR (Classless Inter Domain Routing) !
sdružování více sítí do jedné pomocí masky kratší než je standardní
predn_11.doc
11.05.01 12:52
15
Operační systém UNIX
Sítě v operačním systému Unix
Směrování v Unixu ! ! !
je integrováno v jádře je řízeno tabulkou tabulku lze nastavit: ručně (staticky při startu) příkazem route dynamicky démony které implementují speciální routovací protokoly rdisc implementace protokolu Router Discovery na Sunech routed implementace protokolu RIP gated implementace protokolů RIP, OSPF, BGP a další
predn_11.doc
11.05.01 12:52
16
Operační systém UNIX
Sítě v operačním systému Unix
Výpis směrovací tabulky: ! root@solaris/root>netstat -r Routing Table: IPv4 Destination Gateway Flags Ref Use -------------------- -------------- ----- ----- -----192.168.10.0 solaris U 1 202 224.0.0.0 solaris U 1 0 localhost localhost UH 211068440
Interface --------nei0 nei0 lo0
Ověření cesty k cíli: ! root@solaris/root>traceroute dilna traceroute to dilna (192.168.10.1), 30 hops max, 40 byte packets 1 dilna (192.168.10.1) 1.286 ms 0.930 ms 0.928 ms
predn_11.doc
11.05.01 12:52
17
Operační systém UNIX
Sítě v operačním systému Unix
Unix jako router ! !
vyžaduje 2 nebo více síťových rozhraní musí být povoleno v jádře, obvykle parametrem ip_forwarding příkazu ndd
!
obvykle na něm běží routovací daemoni
Unix jako firewall ! ! !
router který filtruje provoz podle zadaných pravidel může být součástí jádra nebo speciální produkt
predn_11.doc
11.05.01 12:52
18
Operační systém UNIX
Sítě v operačním systému Unix
Transportní vrstva ! !
Doplňuje adresaci uzlů o adresaci aplikací běžících na uzlech (o tzv. porty)
Protokoly: !
přiřazení čísel protokolům je v souboru /etc/protocols
oboustranný spojovaný zabezpečený ! TCP (Transmissin Control Protocol) proud dat nespojovaný, nezabezpečený přenos ! UDP (User Datagram Protocol) datagramů mezi aplikacemi
Porty: ! ! !
64k portů TCP a 64k portů UDP porty 0-1023 jsou privilegované - mohou být použity pouze aplikacemi s UID=0 v /etc/services jsou uvedeny porty přidělené standardním aplikacím:
! root@solaris/root>grep telnet /etc/services telnet 23/tcp predn_11.doc
11.05.01 12:52
19
Operační systém UNIX
Sítě v operačním systému Unix
Aplikace Model klient server ! Aplikace je obvykle tvořena klientem (volaným přímo uživatelem) a serverem (běžícím nebo podle potřeby odstartovaným démonem). ! Aplikace se píší metodou socketů (BSD) nebo RPC.
Sockety ! !
obdoba souborů většina portů z /etc/services je používána pomocí socketů
!
Typické aplikace: telnet, ftp, rlogin, sendmail, named
predn_11.doc
11.05.01 12:52
20
Operační systém UNIX
Sítě v operačním systému Unix
RPC (Remote Procedure Call) ! síťové operace jsou zamaskovány pomocí volání procedur, které se provádějí na vzdáleném uzlu ! Jedna z implementací je od firmy Sun jako součást tzv. ONC (Open Network Computing) Je to TI-RPC (Transport Independent) - vazba na transportní vrstvu může být až při startu aplikace, ne při jejím psaní. Součástí je protokol XDR (eXternl Data representation) zaručující správné předávání datových typů mezi různými platformami Přidělování portů může být dynamické pomocí démona rpcbind (dříve portmap) !
Typické aplikace: NFS: mountd, dfshares, dfmounts NIS+, NIS: ypcat, ypwhich spray
!
Informace o RPC programech běžících na uzlu lze získat příkazem rpcinfo
predn_11.doc
11.05.01 12:52
21
Operační systém UNIX
Sítě v operačním systému Unix
Start serverů aplikací: ! ! !
ručně startovacím skriptem při startu systému programem inetd
Program inetd ! !
startován při startu systému načítá konfigurační soubor inetd.conf
! může startovat jak socketové tak RPC aplikace ! poslouchá na požadovaných portech a pří požadavku na spojení startuje démona ! běží s UID=0 a proto může být použit k útokům na systém ! pro zvýšení bezpečnosti lze použít tzv. wrappery: programy startované z inetd místo démona provedou kontrolu přípustnosti požadavku a buďto jej odmítnou nebo odstartují démona
predn_11.doc
11.05.01 12:52
22
Operační systém UNIX
Sítě v operačním systému Unix
Výsek z /etc/inetd.conf: # Configuration file for inetd(1M). See inetd.conf(4). # # To re-configure the running inetd process, edit this file, then # send the inetd process a SIGHUP. # # Syntax for socket-based Internet services: #<service_name> <socket_type> <proto> <user> <server_path> <args> # # Syntax for TLI-based Internet services: # # <service_name> tli <proto> <user> <server_pathname> <args>
# Ftp and telnet are standard Internet # ftp stream tcp6 nowait root telnet stream tcp6 nowait root # # Rquotad supports UFS disk quotas for # rquotad/1 tli rpc/datagram_v wait root
predn_11.doc
services. /usr/sbin/in.ftpd /usr/sbin/in.telnetd
in.ftpd in.telnetd
NFS clients /usr/lib/nfs/rquotad rquotad
11.05.01 12:52
23
Operační systém UNIX
Sítě v operačním systému Unix
Výpis aktivních spojení: root@solaris/root>netstat -a UDP: IPv4 Local Address Remote Address State -------------------- -------------------- ------*.route Idle *.* Unbound *.sunrpc Idle *.* Unbound *.32771 Idle TCP: IPv4 Local Address Remote Address Swind Send-Q Rwind Recv-Q State ---------------- --------------- ----- ------ ----- ------ ----*.* *.* 0 0 24576 0 IDLE *.sunrpc *.* 0 0 24576 0 LISTEN *.* *.* 0 0 24576 0 IDLE *.ftp *.* 0 0 24576 0 LISTEN *.telnet *.* 0 0 24576 0 LISTEN *.shell *.* 0 0 24576 0 LISTEN localhost.32933 localhost.32773 predn_11.doc
localhost.32773 localhost.32933
32768 32768
0 32768 0 32768
11.05.01 12:52
0 ESTABLISHED 0 ESTABLISHED 24