1 / 38

TCP/IP netværk

TCP/IP netværk. Henrik Størner SSLUG. TCP og IP og. ”TCP/IP” er en kombinations-protokol Lagdelt protokol – TCP og IP Andre: ICMP, UDP, GRE, ESP m.fl. Relaterede: ARP, PPP. Lag i netværket – OSI model. Fysisk lag: 10/100BaseT, telefon, fiber ... Datalink: Ethernet, PPP, ATM ...

selah
Download Presentation

TCP/IP netværk

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TCP/IP netværk Henrik Størner SSLUG

  2. TCP og IP og ... • ”TCP/IP” er en kombinations-protokol • Lagdelt protokol – TCP og IP • Andre: ICMP, UDP, GRE, ESP m.fl. • Relaterede: ARP, PPP

  3. Lag i netværket – OSI model • Fysisk lag: 10/100BaseT, telefon, fiber ... • Datalink: Ethernet, PPP, ATM ... • Netværks-lag: IPv4 eller IPv6 • Transport/Sessionslag: TCP, UDP

  4. IP er grundlaget • IP = ”Internet Protocol” • Bære-protokol for de øvrige protokoller på Internet – man sender ikke ”rå IP” • Nuværende versioner: 4 og 6 • Tidligere versioner fandtes, men er ikke længere i brug

  5. Adressering • IP-adresse – 32 bit tal (4 bytes) • Skal være unik på et netværk ! • Som regel er een IP-adresse knyttet til eet system (computer) • Skrives ofte i ”dotted-quad”:130.228.2.150 • Alternativt: 2195980950

  6. Nogle adresser er specielle • 127.*.*.* : Lokale system, localhost • 255.255.255.255 : Broadcast • 224.*.*.*: Multicast adresse • ”Interne” IP adresser- 192.168.*.*- 172.16-31.*.*- 10.*.*.*

  7. IP netværk • En IP adresse hører til et IP netværk • Netmasken afgør størrelsen af nettet • Netmasken måles i bits: Det er det antal bit i IP adressen, som er fælles for alle systemer på netværket. • Typisk 24, 16 eller 8 bit – men kan være alt fra 1-32

  8. Netværks- og broadcast adresse • Netværks-adressen er den ”mindste” adresse på IP-netværket • Broadcast-adressen er den ”største” • Beregnes ud fra en IP-adresse og netmasken

  9. Eksempel: 130.228.2.150/24 • IP-adressen 130.228.2.150, 24 bit netmaske • Netværks-adressen er da10000010 11100100 00000010 10010110 AND11111111 11111111 11111111 0000000010000010 11100100 00000010 00000000 (130.228.2.0) • Broadcast-adressen er da10000010 11100100 00000010 00000000 OR00000000 00000000 00000000 1111111110000010 11100100 00000010 11111111 (130.228.2.255)

  10. Netmasken kan være ”skæv” • Eksempel: Det reserverede netværk med 12-bit netmaske • 172.17.10.1/12 • Netværks-adresse er 172.16.12.0 • Broadcast bliver 172.31.255.255 !

  11. IP-adresser i Linux • Tildeles med ”ifconfig” eller ”ip” programmet • Netværks-IP og broadcast kan udregnes med ”ipcalc” • Et netkort kan have flere adresser - aliaser

  12. Routing • Foregår på IP-laget • Betyder blot at en maskine videresender pakker, som ikke er adresseret til den selv • Afhænger kun af destinations-IP • Routere kan være dedikerede systemer eller almindelige Linux/Unix systemer, med mere end een IP adresse.

  13. Simpel routing • Maskinen har een IP adresse, og eet netkort • Al ikke-lokal trafik routes til ”default gateway” • Hvad er lokalt? Afhænger af IP-netværket! • Lokal trafik sendes direkte til modtageren via Ethernet (ARP) • Alt andet sendes til default gateway

  14. Routing med 2+ netværk • Router fungerer ligesom det simple tilfælde • Blot checkes flere IP-netværk • Hvis pakken er adresseret til et af de lokale IP-netværk sendes den direkte • Ellers sendes den videre til routerens default gateway • Der kan være defineret lokale gateways for ikke-lokale netværk

  15. Hvad sker der ved routing? • Indholdet af pakken røres ikke ... • Undtagen lige time-to-live feltet • Ikke noget spor af, hvordan pakken er kommet frem • Ingress filtering: Check af ankomne pakker • Egress filtering: Check af udgående pakker

  16. Routing i Linux • Route-kommandoen definerer ”default gateway” og andre ruter • Hvis 2 netkort bliver der ikke automatisk sendt trafik mellem dem • Styres af ip_forward sysctl flaget, /proc/sys/net/ipv4/ip_forward • Foregår automatisk når flaget er sat

  17. IP protokollen • Datagram baseret • Ingen garanti for at pakker når frem • Ingen garanti for rækkefølgen • Pakker kan blive dubleret undervejs • Ingen kontrol af integriteten • Med andre ord: En helt upålidelig protokol

  18. IP pakken • Header (40 bytes) og data (op til 64 KB) • Version (4 eller 6) • Header længde (kun ”Options” feltet) • Type of Service • Total længde af pakken • Datagram nummer • DF / MF flag (Dont fragment / More fragments) • Fragment offset (0-8191) • Time-to-live • Protokol (TCP, UDP ...) • Source og Destination IP

  19. Hvad indeholder felterne • Protokol: Tal som angiver typen af data • Type-of-Service: Påvirker routing • Total længde: Op til 64 KB, større end noget fysisk lag kan håndtere • Time-to-Live: Antal systemer pakken må passere igennem. • Source/Destination: Kun IP-adressen!

  20. Hvad bruges IP til ? • I sig selv: Ingenting • Blot et ”transport-medie” for andre protokoller, som gemmer sig nede i ”data” området • Kan flytte noget data fra een IP-adresse til en anden

  21. TCP protokollen • Overbygning til IP • Anvendes til kommunikation, når pålidelig data-overførsel er ønskelig • F.eks: Web, Mail, ftp, news, Windows filesharing • Relativt stort ”overhead” når kommunikationen starter

  22. TCP er anderledes end IP • Kommunikation mellem services, ikke systemer • Bruger port-numre til at identificere brugere/services, oveni IP-adressen • Garanterer at data kommer frem i rigtig rækkefølge og er komplet

  23. TCP pakken • Sendes som data i en IP-pakke • IP pakken har Protokol = 6 • Har sin egen header, som kommer efter IP-headeren

  24. TCP headeren • Source- og Destination portnummer • Eget sekvensnummer samt ”acknowledge” sekvensnummer • Header-længde • Flag • Vinduesstørrelse • Checksum • ”Urgent” data pointer • Options

  25. TCP portnumre • Standard services bruger vel-definerede portnumre på server-siden (SMTP=25, HTTP=80, FTP=21 osv) • Klienten bruger også et portnummer i sin ende – tildeles dynamisk • Source-IP og port samt destination-IP og port identificerer een forbindelse

  26. Sekvensnumre • Holder rede på rækkefølgen af pakker, og at pakker ikke går tabt • 32-bit tal som tælles een op for hver pakke, der sendes

  27. TCP siger ”Pænt goddag” • Sekvens-numrene skal initialiseres når forbindelsen etableres • Sker med et ”three-way handshake”A: SYN=1, ACK=0, SEQ=12345, ACKSEQ=0B: SYN=1, ACK=1, SEQ=67890, ACKSEQ=12346A: SYN=0, ACK=1, SEQ=12346, ACKSEQ=67891

  28. Sekvensnumre (2) • SYN-flaget bruges til at SYNkronisere sekvens-numrene • Start-nummeret skal vælges tilfældigt • Ellers kan man lave ”spoofede” forbindelser • SYN flood

  29. TCP siger ”Pænt farvel” • Lige som ved etablering af forbindelsen er der et 3-vejs handshake når den lukkes • Bruger FIN-flaget i stedet for SYN • FIN indikerer ”jeg har ikke mere at sende” • Begge ender skal være enige om at lukke ned, ellers fortsætter data med at komme

  30. Flag i TCP headeren • SYN, FIN, ACK – styrer sekvensnumre • RST – lukker en forbindelse uden afsluttende handshake • PSH – ”Push” bruges til at ”skubbe” en pakke igennem nettet uden buffering • URG – ”Urgent”, data som haster. F.eks. En ”ctrl-c” i en terminal-session

  31. Nye flag ! • I mange år har der kun været 6 flag – og 2 ubrugte bits • Nu er de defineret i RFC 3168 (standard) • ECN og CWR bruges til flow-control og adaptiv routing • Volder problemer for en del firewalls!

  32. UDP pakken • UDP er datagram trafik ligesom IP • Simplere end TCP – men bruger portnumre • Bruger en IP-pakke med protokol=17 • Intet overhead til at etablere en forbindelse • Header: Blot source- og destination-port, længde og checksum

  33. ICMP • Bruges til ”kontrol”, ikke til data • Kan f.eks. Bruges til at signalere at et system er off-line, eller en service er lukket • Indeholdt i en IP-pakke med protokol=1 • Header: Type, Kode, Checksum og evt. Data

  34. ICMP pakke-typer • Echo/Echo reply (0 / 8) • Destination unreachable (3) • Redirect (5) • Time exceeded (11) • Timestamp, info, address mask request/reply (13-18)

  35. ICMP pakke-typer (2) • Nogle ICMP-pakketyper har ekstra information i ”kode” feltet • Destination unreachable : Kode angiver net/system/port – 16 forskellige • Redirect – kan redirecte et helt netværk eller en enkelt host • Time exceeded – TTL eller reassembly

  36. ICMP bruges ofte! • Ping, traceroute • Kan I huske ”DF/MF” flagene i IP ? • Nyttigt at kunne finde ud af hvor store pakker man kan sende til en modtager, uden at de skal fragmenteres • ”Path MTU discovery” bruger ICMP type 3, kode 4 (fragmentation needed, DF set) svar

  37. IP pakker i Linux • Firewall-systemerne logger indholdet af pakker • Ipchains: Oct 9 07:18:18 www kernel: Packet log: input - eth0 PROTO=6 61.113.5.106:3014 130.228.2.150:111 L=60 S=0x00 I=19082 F=0x4000 T=39 SYN (#47)

  38. IP pakker i Linux (2) • Iptables:Oct 8 16:11:51 fenris kernel: IN=eth1 OUT= • +MAC=00:00:b4:c7:28:62:00:20:6f:0b:45:cb:08:00 SRC=217.230.143.200 • +DST=192.168.1.2 LEN=52 TOS=0x00 PREC=0x00 TTL=119 ID=35562 DF PROTO=TCP • +SPT=3259 DPT=21 WINDOW=32767 RES=0x00 SYN URGP=0

More Related