Netwerken 3
00
Hoofdstuk 1

TCP/IP & routing

Fundament: lagen, poorten, TCP vs UDP, IP-adressering, subnetting, NAT, routing en LAN-WAN-verbindingen.

0%
voltooid

1Lagen en encapsulatie

In de praktijk werk je met het 5-lagenmodel (TCP/IP): applicatie (bevat ook presentatie + sessie), transport, netwerk, datalink, fysisch. OSI = de theorie, TCP/IP = de praktijk.

LaagEenheidHeader bevatVoorbeelden
Applicatie (7-6-5)DATAn.v.t.HTTP, FTP, SMTP, DHCP, SNMP, Telnet, NFS, RPC, SQL
Transport (4)Segmentbronpoort, doelpoort, volgnummer, ACK-nummer, window size, controlesomTCP, UDP
Netwerk (3)Pakketbron-IP, doel-IP (32 bit), versie, TTL, protocolnummer, controlesomIP, ICMP
Datalink (2)Framebron-MAC, doel-MAC (48 bit), type-code; controlesom achteraanEthernet, PPP, HDLC
Fysisch (1)Bitsspanningen / golven (wat is 1, wat is 0)kabel, frequenties
Elke laag verpakt (encapsuleert) wat de bovenliggende laag aanlevert.
  • IP kijkt enkel naar het doeladres: de weg vinden voor het pakket. Het protocolnummer in de IP-header zegt of het naar TCP of UDP moet.
  • TCP en IP hebben aparte controlesommen: IP controleert enkel de header, TCP de segmenten (TCP moet ook zonder IP kunnen werken).
  • TTL (levenstijd) wordt bij elke router met 1 verlaagd. Op 0 wordt het pakket vernietigd: dat voorkomt eindeloze loops. tracert / traceroute gebruikt dit.
  • Ontvanger pakt in omgekeerde volgorde uit: Ethernet-header + controlesom weg, type-code zegt IP, IP-header weg, protocolnummer zegt TCP, enz.
+25 XP

2Poorten, TCP en UDP

Poorten zijn virtuele nummers aan elke kant van een verbinding, zodat je meerdere verbindingen tegelijk kan onderscheiden. De server gebruikt een vast (well-known) poortnummer < 1024, de client kiest een willekeurig poortnummer > 1024 (bv. 2145).

PoortDienstTransport
20 / 21FTP data / FTP controlTCP
23TelnetTCP
25SMTP (mail versturen)TCP
53DNSUDP (opzoeking) + TCP (zone transfer)
69TFTPUDP
80HTTPTCP
110POP3 (mail ophalen)TCP
161SNMPUDP
TCP (betrouwbaar)
  • Verbindingsgeoriënteerd: eerst 3-way handshake
  • Bevestigt ontvangst (ACK), herstuurt verloren segmenten
  • Zet segmenten in de juiste volgorde
  • Flow control met window size
  • Gebruikt door HTTP, FTP, Telnet, SMTP
UDP (onbetrouwbaar)
  • Geen verbinding opzetten, geen ACK, geen volgorde
  • Minder overhead: sneller en eenvoudiger
  • Fouten/herstel gebeuren (indien nodig) in de applicatie
  • Gebruikt door DNS, TFTP, SNMP, RIP, (VoIP/RTP)
  • Moeilijker te filteren in een firewall (geen vlaggen/handshake)
TCP 3-way handshake (verbinding opzetten)
Stap 1 van 3
SYN

Client stuurt SYN met zijn beginvolgnummer x. Status client: SYN_SENT.

TCP afsluiten (graceful)
Stap 1 van 4
FIN

Eén kant stuurt FIN.

+25 XP

3Wat heb je nodig voor één pakket? + tools

Voorbeeld: client 172.17.167.150 vraagt http://www.kdg.be/info.htm. Om één pakket (frame) te kunnen versturen moet je 6 gegevens kennen:

GegevenWaar komt het vandaan?
1Poort clientwillekeurig > 1024 (bv. 2145)
2IP clientvast (admin) of via DHCP
3MAC clientingebakken in de netwerkkaart (ipconfig /all)
4Poort serverwell-known poort (HTTP = 80)
5IP serverDNS vertaalt naam naar IP (DNS-server kreeg de client via DHCP)
6MAC serverARP-broadcast: "wie heeft IP x?". Zit de server in een ander netwerk, dan is dit het MAC van de router (gateway).
ToolDoetTest laag
pingbereikbaarheid (kabel + driver + IP-instelling)1-3
ipconfig / ifconfigtoont IP, subnetmask, gateway3
tracert / traceroutealle tussenliggende routers (hops, via TTL)3
arp -aARP-tabel: IP naar MAC2
netstat -aalle openstaande verbindingen4
routerouteringstabel tonen/aanpassen3
telnet / browsertest tot op applicatielaag7
+25 XP

4IP-adressering en subnetting

Een IPv4-adres is 32 bit = netwerkgedeelte + hostgedeelte, in 4 groepen van 8 bit. Het subnetmask (of /prefix) zegt waar de grens ligt. Netwerkadres = IP AND mask. Hostbits allemaal 0 = netwerkadres, allemaal 1 = broadcast; beide zijn niet bruikbaar voor hosts.

Klasse1e byteMaskNetw/host bitsMax hosts
A1-126255.0.0.0 (/8)8 / 2416,7 miljoen
B128-191255.255.0.0 (/16)16 / 1665 534
C192-223255.255.255.0 (/24)24 / 8254
D224-239multicast
E240+test
127.0.0.1 is de loopback (de machine zelf).
Private range (RFC 1918)PrefixKlasse
10.0.0.0 - 10.255.255.25510.0.0.0/8A
172.16.0.0 - 172.31.255.255172.16.0.0/12B (16 netwerken)
192.168.0.0 - 192.168.255.255192.168.0.0/16C (256 netwerken)
Private adressen worden niet gerouteerd op het internet: je hebt NAT nodig om naar buiten te gaan. 169.254.x.x = APIPA (geen DHCP gevonden).
Subnetten in 4 stappen
Stap 1 van 4
Hosts nodig

Tel hosts + 2 (netwerk + broadcast). Kleinste macht van 2 die past: hostbits h. Hosts = 2^h − 2.

PrefixMaskBlokHostsSubnetten in een /24
/25255.255.255.1281281262
/26255.255.255.19264624
/27255.255.255.22432308
/28255.255.255.240161416
/29255.255.255.2488632
/30255.255.255.2524264
Uit het hoofd kennen. /30 = punt-tot-punt verbinding tussen 2 routers.
text
Mask /26 = 255.255.255.192  -> blok 64, 62 hosts

Subnet 1: 192.168.1.0   - broadcast 192.168.1.63    hosts .1   - .62
Subnet 2: 192.168.1.64  - broadcast 192.168.1.127   hosts .65  - .126
Subnet 3: 192.168.1.128 - broadcast 192.168.1.191   hosts .129 - .190
Subnet 4: 192.168.1.192 - broadcast 192.168.1.255   hosts .193 - .254
Uitgewerkt: 192.168.1.0/24 opdelen in /26. Wat is het 2e subnet?
text
Hostbits: 16 - 12 = 4  -> hosts per subnet = 2^4 - 2 = 14
Subnetten: 2^12 - 2 = 4094   (cursus slaat "subnet 0" en "all-ones" over)
Blokgrootte 16:  subnet 1 = 176.16.0.16, 2 = .32, 3 = .48, 4 = .64, 5 = .80, 6 = .96, 7 = .112

6e subnet     : 176.16.0.96
Broadcast     : 176.16.0.112 - 1 = 176.16.0.111
Hostbereik    : 176.16.0.97  -  176.16.0.110
Cursusvoorbeeld: netwerk 176.16.0.0, 12 bits van het hostgedeelte afgenomen (mask /28). Waar zit de 6e subnet?
+25 XP

5NAT, NAPT en port forwarding

TechniekWatOpmerking
NATElk intern IP wordt 1-op-1 gemapt op een extern IPElke PC krijgt een uniek (publiek) adres; kost veel publieke IP's
NAPT / PAT / masqueradingHerschrijft bron-IP én bronpoort; alle interne PC's delen 1 publiek IPDe router onthoudt de poortnummers in een tabel om antwoorden bij de juiste client te leggen
Port forwarding (DNAT)Extern IP:poort wordt doorgestuurd naar interne server:poortDe andere richting: zo bereikt het internet je interne webserver
NAPT in actie
Stap 1 van 3
Uitgaand

Client 192.168.1.2:4444 stuurt naar webserver. Router herschrijft bron naar publiek IP:nieuwe poort en bewaart de koppeling in zijn tabel.

cisco
interface FastEthernet0/1
 ip address 202.17.164.50 255.255.252.0
 ip nat outside
interface FastEthernet0/0
 ip address 192.168.1.254 255.255.255.0
 ip nat inside
!
access-list 1 permit 192.168.1.0 0.0.0.255
ip nat inside source list 1 interface FastEthernet0/1 overload
ip route 0.0.0.0 0.0.0.0 FastEthernet0/1
Cisco-router met NAT/NAPT (uit de slides). Let op: "overload" is nodig voor NAPT (veel intern op 1 publiek IP).
bash
# NAPT: alles dat via eth0 naar buiten gaat krijgt het IP van eth0
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# Port forwarding: publiek IP:80 -> interne webserver 192.168.1.10:80
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.1.10:80
Zelfde idee op Linux (iptables): masquerade uitgaand, port forwarding inkomend.
+25 XP

6Routing en route-commando's

Hoe beslist een host/router waar het pakket heen gaat?
Stap 1 van 4
Bestemming in eigen subnet?

Doel-IP AND eigen mask = eigen netwerk? Dan rechtstreeks: ARP voor het MAC van het doel, geen router.

Een route = doelnetwerk + mask + next hop (gateway) + metric. De gateway moet rechtstreeks bereikbaar zijn (zelfde subnet als je interface). Statische routes zijn handmatig; dynamische (RIP, OSPF, BGP) leren routes van elkaar.

ActieWindowsLinuxCisco
Tabel tonenroute printroute -n / ip route showshow ip route
Default gateway toevoegenroute add 0.0.0.0 mask 0.0.0.0 192.168.1.1 metric 10ip route add default via 192.168.1.1ip route 0.0.0.0 0.0.0.0 192.168.1.1
Route naar 192.168.200.0/24route add 192.168.200.0 mask 255.255.255.0 192.168.1.1ip route add 192.168.200.0/24 via 192.168.1.1ip route 192.168.200.0 255.255.255.0 192.168.1.1
Verwijderenroute delete ...ip route del ...no ip route ...
Permanentroute -p add ...lijn in /etc/rc.localcopy running-config startup-config
bat
:: route tonen
ROUTE PRINT
:: default gateway toevoegen (tijdelijk)
ROUTE ADD 0.0.0.0 MASK 0.0.0.0 192.168.1.1 METRIC 10
:: permanent (ook na reboot)
ROUTE -P ADD 0.0.0.0 MASK 0.0.0.0 192.168.1.1 METRIC 10
ROUTE DELETE 0.0.0.0 MASK 0.0.0.0 192.168.1.1
:: route naar intern netwerk 192.168.200.0 via gateway 192.168.1.1
ROUTE ADD 192.168.200.0 MASK 255.255.255.0 192.168.1.1
ROUTE DELETE 192.168.200.0 MASK 255.255.255.0 192.168.1.1
Windows
bash
# tonen
route -n
ip route show
# default gateway
route add default gw 192.168.1.1
ip route add default via 192.168.1.1
ip route del default via 192.168.1.1
# permanent: lijn toevoegen in /etc/rc.local
ip route add default via 192.168.1.1
# route naar 192.168.200.0/24 via 192.168.1.1
route add -net 192.168.200.0 netmask 255.255.255.0 gw 192.168.1.1
ip route add 192.168.200.0/24 via 192.168.1.1
ip route del 192.168.200.0/24 via 192.168.1.1
Linux ("ip" is het nieuwe commando, "route" valt op termijn weg)
cisco
show ip route
! default gateway (host-modus / switch)
ip default-gateway 192.168.1.1
! default route (router)
ip route 0.0.0.0 0.0.0.0 192.168.1.1
no ip route 0.0.0.0 0.0.0.0 192.168.1.1
! route naar 192.168.200.0/24 via 192.168.1.1
ip route 192.168.200.0 255.255.255.0 192.168.1.1
no ip route 192.168.200.0 255.255.255.0 192.168.1.1
! permanent bewaren
copy running-config startup-config
Cisco
text
set protocols static route 0.0.0.0/0 next-hop 192.168.56.1 distance '1'
set protocols static route 192.168.200.0/24 next-hop 192.168.1.1
commit
save
VyOS (voor het ontwerphoofdstuk): zelfde idee
+25 XP

7LAN-WAN-verbindingen: router, firewall, proxy

  • Router verbindt LAN-LAN en LAN-WAN. Keuze Cisco / ADSL-modem / PC-router hangt af van: aantal gebruikers, hardware-instructies (snelheid), fail-proof, verbruik.
  • Firewall blokkeert of laat poorten/IP-adressen toe. Kan een aparte box zijn of software op een PC (bv. iptables).
  • Een proxy voert diensten uit voor interne gebruikers en beperkt ook diensten naar buiten. Door LAN en WAN te scheiden werkt ze als firewall.
Traditionele proxy
  • Browser moet ingesteld worden op proxy-IP:poort 8080
  • 2 aparte verbindingen (client-proxy, proxy-server); niets wordt gerouteerd
  • Default gateway moet niet ingesteld zijn
  • DNS moet intern niet draaien (de proxy lost namen op)
Transparante proxy
  • Clients merken niets: ze denken via een router te werken
  • De machine is router én proxy: aanvragen op poort 80 worden intern doorgestuurd naar poort 8080
  • Browser direct (niet via proxy) instellen
  • Default gateway wel instellen; DNS-server voor clients op de proxy
Port forwarding
  • Extern IP:poort wordt 1-op-1 doorgestuurd naar interne server:poort
  • Pakket wordt herschreven, geen cache, geen inhoudscontrole
  • Eén poort naar één server
Reverse proxy / HTTP accelerator
  • Proxy staat als front-end voor de interne webserver(s)
  • Statische pagina's uit de cache, dynamische worden opgehaald
  • Kan meer dan 1 interne server bedienen en verkeer filteren
  • Internet verbindt nooit rechtstreeks met de interne server
+25 XP
Volgende stap

Nog niet klaar? Je kan altijd terugkomen.

Leer de begrippen