Ein kort intro om nettverk eg skreiv for nFF. Poster den her ogsÃ¥, for Ã¥ fÃ¥ litt meir poster pÃ¥ denne sida mi…
IP-adressa si oppbygning.
Ei IP-adresse er et 32-bits tall, det vil sei mellom 0 og 4294967295. For lesbarheta si skuld deler ein dette opp i 4 grupper på 8 bit per gruppe. 8 bit vil bli eit tal mellom 0 og 255. Om ein tar for seg IP-adressa 255.255.255.255 vil den skrivast slik:
255 | 255 | 255 | 255 |
11111111 | 11111111 | 11111111 | 11111111 |
IPen 192.168.10.2 blir då følgande:
192 | 168 | 10 | 2 |
11000000 | 10101000 | 00001010 | 00000010 |
Det er enklare for menneske å hugse 192.168.10.2 enn 11000000101010000000101000000010
Kva er ei nettmaske?
Opprinneleg var IP-adresser inndelt i ulike klasser, for ulike føremÃ¥l. Denne er ein gÃ¥tt vekk frÃ¥ i dag med CIDR – Classless Inter-Domain Routing. Dei opphavelege klassane var følgande:
- Klasse A: 0 som MSB (Most Significant Bit, talla heilt til venstre i bitstringen over), 126 forskjellige klasse A-nett, 16777214 adresser per nett. Opphaveleg 0.0.0.0-127.255.255.255
- Klasse B: 10 som MSB, 16382 nett og 65534 adresser per nett. Opphaveleg 128.0.0.0-191.255.255.255.
- Klasse C: 110 som MSB, 2097150 nett, og 254 adresser per nett. Opphaveleg 192.0.0.0-223.255.255.255.
IPer over 223 var reservert til ting som multicast og forskning. For kvar av klassane har ein eit privat nett. Eit privat nett er eit som ikkje blir ruta av en vanlig ruter, og som ikkje kan brukast til å snakke med andre maskiner på internett. Dei eksisterer med andre ord mange plasser, og treng kun vere unike innan eit nett. Desse adressene er følgande:
- 10.0.0.0/8 som er klasse A-nett.
- 172.16.0.0/12 som er klasse B-nett.
- 192.168.0.0/16 som er klasse C-nett.
Full oversikt over reserverte adresser finner en i RFC3330. Så kom noko som heiter CIDR, som er såvidt nemt over. Etterkvart som IP-adressene vart tatt i bruk, innsåg ein at det var veldig skjelden ein hadde bruk for så enorme nett som A-klasse, og det var hensiktsmessig å dele opp desse. Den observante vil legge merke til at det over står ting som 192.168.0.0/16. Den skråstreken er skiljeteikn mellom IP og nettmaske. Nettverksmaska maskerer IPen, og gir maskina beskjed om kva IP-adresser som eksisterer i samme nett som seg sjølv, og kva IPer den må gå via en ruter (ofte kalt gateway eller GW på kortform). Tallet etter skråstreken seier kor mange bits som skal vere 1 i nettmaska, om du skriv den ut på samme form som IPen over. Om vi tar for oss eit kjapt eksempel med IPen 192.168.10.2 og nettmaska 255.255.255.0 ser vi følgande:
Address: | 192.168.10.2 | 11000000 | 10101000 | 00001010 | 00000010 |
Netmask: | 255.255.255.0 | 11111111 | 11111111 | 11111111 | 0000000 |
Wildcard: | 0.0.0.255 | 00000000 | 00000000 | 00000000 | 11111111 |
Dei 24 første bits i nettmaska er 1, dei siste 8 er 0. Det stemmer med 255.255.255.0. Det seier då maskina at dersom den skal nå ei IP-adresse der alle einaste forskjellen ligg innanfor nettmaska, så treng den ikkje gå via en ruter. IPen 192.168.10.127 ligg innanfor nettmaska. 192.168.11.1 ligg utanfor nettmaska, og maskina må sende pakken til sin gateway istadenfor å sende den direkte. Om ein skal jobbe litt med slikt er ipcalc veldig nyttig verktøy for å visualisere det og konvertere mellom notasjoner. Nettmaska seier med andre ord kor mange IPer du kan ha i samme nett, og som kan kommunisere direkte med kvarandre uten å måtte gå vegen om ein ruter.
UDP og TCP
Ein har to protokoller pÃ¥ toppen av IP: TCP og UDP. UDP er ein tilstandløs protokoll, der serveren sender pakker, uten Ã¥ vente pÃ¥ svar fra klienten. UDP blir derfor brukt til ting som streaming, DNS og NTP, der det er (relativt) uviktig om en bestemt pakke kjem fram eller ikkje. Om en UDP-pakke kjem vekk eller blir skada, blir det berre ignorert. Klienten gir ikkje beskjed om det til serveren. TCP blir brukt til nesten alt anna, der det er viktig at pakker kjem fram heile, og i rett rekkefølge. For kvar TCP-pakke som blir sendt vil serveren fÃ¥ et svar – ACK – pÃ¥ at pakken er komt fram heil og uskada. Det gjer at pakker som blir skada eller ikkje kjem fram blir sendt pÃ¥ nytt.
Kort om porter
En port i internett-verdenen er eit tall mellom 0 og 2^16-1, eller 0 og 65535. Dette seier kva lyttande program på mottakarmaskina som skal svare. Det er ei offisiell portliste, velikeholdt av IANA, som seier kva tenester ein kan [b]forvente[/b] å finne på ein gitt port. Det er ingenting i vegen for å kjøre ting på andre porter enn det som er spesifisert som standard, men då må typisk klienten oppgi kva port han vil kople seg til. Når du trykker inn http://vg.no i nettleseren din kontakter nettleseren vg.no på port 80, som er porten tildelt protokollen http. Om du bruker ein e-postklient vil den typisk nytte seg av port 110 (POP3) eller 143 (IMAP). Den offisielle lista over tilordna porter finn du hos IANA. Den er delt i tre: registrerte, velkjente og dynamiske porter. Velkjente porter er dei portane under 1023. Dei kan vanligvis ikkje nyttast av andre enn root/Administrator på ei maskin, og dei skal ikkje nyttast av uregistrerte protokollar.Dei over 1024 kan alle brukarar på ei maskin vanligvis lytte til, og dei blir i praksis brukt rimelig vilkårleg, utan tanke på at dei skal i prinsippet vere registrert hjå IANA før dei blir brukt åpent i distribuert programvare. Porter over 49152 er fritt fram, og kan ikkje registrerast hos IANA på nokon måte.
Kort om NAT (Les:Kvifor verden vil ha IPv6)
NAT, Network Adress Translation, er ein teknikk som kom i bruk mot slutten av nittitallet, nÃ¥r ein innsÃ¥g at det begynte Ã¥ bli mangel pÃ¥ IP-adresser i verden, og ein trengte ei stop-gap solution inntil IPv6 var rulla ut. NAT gÃ¥r i korte trekk ut pÃ¥ Ã¥ tilordne en ruter/gateway ei offentleg adresse. Deretter lar ein alle maskiner som stÃ¥r bak den ruteren fÃ¥ ei privat IP-adresse frÃ¥ eit av omrÃ¥da beskreve i RFC3330. Maskinene som stÃ¥r bak ruteren sender dÃ¥ trafikken sin mot internett til ruteren. Sidan dei har private IP-adresser kan ikkje ruteren sende dei ut pÃ¥ internett og forvente svar – den mÃ¥ skrive om litt. Den noterer ned kva intern IP som sendt pakken, kva port som vart nytta og slikt, og bytter ut IPen i pakkeheaderen med sin eigen, offentlege IP, før den sender den ut pÃ¥ internett. NÃ¥r den sÃ¥ fÃ¥r svar, slÃ¥r den opp i tabellen sin over IP:port-par og finn ut kva for ein interne klient som skal ha svaret den fekk. SÃ¥ skriv den atter ein gang om headers, og sender pakken ut pÃ¥ det interne nettet. NAT har ført til at ein kan ha bokstaveleg tala tusenvis av maskiner bak ein offentlig IP. Dei fleste heimebrukarar har NAT-ruter.
Applied networking…
Mkay, enough primer om IPer. Over to the real stuff. La oss sjå på følgande nettverk gjennom eksempla etterpå:
Kort forklaring av dette:
- Vi har en ruter som har tilkopling mot internett.
- En brannmur for arbeidsstasjonane. Tillater kun www mot internett, og imap mot intern mailserver.
- En brannmur for serverparken. Tillater kun www mot www-server, kun ftp mot ftp-server, imap fra internett og lokalt, og SMTP bare fra lokale maskiner i nettet arbeidsstasjoner.
Vi antar at alle maskiner stÃ¥r pÃ¥ offentlig IP. Her har brannmurane to litt ulike roller. Den for klientnettet skal beskytte klientnettet mot angrep, ved Ã¥ nekte alle innkommande tilkoplinger, slik at sÃ¥rbarheter og malware pÃ¥ arbeidsstasjonane skal kunne gjere mindre skade. Den filtrerer i tillegg utgÃ¥ande connections, slik at kun www-browsing, og sending av e-post via bedrifta sitt e-postsystem funker. Brannmuren foran serverparken skal ogsÃ¥ beskytte serverparken mot angrep, men ogsÃ¥ filtrere vekk trafikk for Ã¥ redusere problem med kjørande tenester. I staden for Ã¥ sette opp SMTP skikkelig er admin her lat, og tillater kun SMTP fra internt nettverk. Det vil sei at firewall for servere mÃ¥ sjekke om tilkoplinger pÃ¥ port 25 kommer fra en IP innen bedrifta sitt nettverk, og kun tillate det om sÃ¥ er tilfelle. IMAP skal tillatast fra internett og lokalt, sidan selgerane skal kunne lese epost nÃ¥r dei er ute… WWW og ftp er sjølvsagt public mot internett, sidan dei trossalt er bedrifta sitt ansikt utad. Her gjer ikkje ruteren noko meir enn Ã¥ sende viare alle pakker mot destinasjonen – det er opp til brannmuren Ã¥ filtrere trafikk.
Det samme gjelder i eit heimenett, sjølv om ein har NAT der: ruteren filtrerer ikkje trafikk, den berre viaresender blindt. Det er opp til ein eventuell brannmur Ã¥ filtrere vekk uønska trafikk! SÃ¥ tar vi for oss det samme – bare med NAT. Reglane blir omtrent dei samme, utover at ruteren no mÃ¥ fÃ¥ beskjed om at port 143(IMAP) skal peikast til mail sin IP, port 80 (WWW) mÃ¥ peikast mot www, og 21 mot ftp. Dette er det som er kalla portforwarding. Brannmurane ville gjere noksÃ¥ lik jobb.
Takk til m0b for kommentarer og innspel undervegs. Denne posten er lisensiert under Creative Commons Share Alike, Non-commercial, Attribution. Det vil sei at du står fritt til å kopiere og endre denne, så lenge du beholder ein tilsvarande lisens på kopien din, og du siterer meg som opphavsmann, med lenke tilbake til http://bitsex.net.