Ruterz 'n shit

poruka: 8
|
čitano: 2.339
|
moderatori: Lazarus Long, pirat, XXX-Man, DrNasty, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
10 godina
offline
Ruterz 'n shit

                Dok tu malo listam teme, primijetio sam da dosta ljudi nije jesno što router uopće je i čemu služi. Stoga odlučih napisati par tekstova o tome što je router i kako radi. Možda se ovo vremenom razvije u nešto naprednije, općenito oko mrežnih tehnologija i best practices konfiguracija. Za sve one koji će napomenuti da server = poslužitelj ili switch = preklopnik, dabog da vas i lingviste koji izmišljaju sranja pogodio 48 portni PoE preklopnik dok pada s 2. kata. Ako je potrebno neki dio bolje objasniti ili ako sam pak previše zalutao u apstrakciju slobodno to napomenite.

                Prvo što bi napomenuo je kad napišem router, mislim na vulgaris t-šrot ZTE i slično.

 

                Dakle prije nego krenemo, osnovni protokol za komuniciranje na internetu je TCP/IP protokol. Trenutna verzija koju koristimo je IPv4, postoji i IPv6, ali pošto to još nije zaživjelo kako je trebalo, fokusirat ćemo se na IPv4. Skraćenica TCP/IP znači Transmission Control Protocol/Internet Protocol. I zapravo definira na koji način se podaci za komunikaciju na internetu pretvaraju u pakete, šalju, primaju, route-aju, adresiraju.

Dvije jako važne adrese su IP adresa i MAC adresa. MAC adresa je fizička adresa, svaki uređaj koji ima mogućnost spajanja na mrežu prilikom proizvodnje dobije unikatnu MAC adresu, adresa se sastoji od šest setova po dva karaktera odvojenih dvotočkom („:“).

Primjer: 00:14:22:9d:68:16

                Bitno za zapamtiti je to da je to adresa koja je zapisana u samom hardveru mrežnog sučelja, dakle fizička adresa uređaja (NIC, eng. Network Interface Controller), dok je IP adresa logička adresa.

                Sad bi netko postavio pitanje zašto nam treba IP adresa kad su MAC adrese unikatne i svaki uređaj ih ima. Razloga je nekoliko, jedan od najvažnijih je taj što IP adrese drže mrežu organiziranom, ako preseliš računalo u neku drugu državu, cijeli Internet bi trebao saznati da je to računalo sada tamo i kako doći do njega. Preko IP mreže, računalo će dobiti novu IP adresu za koju ostala računala znaju kako doći do nje. Dalje… mobiteli recimo ne koriste MAC adresu za komunikaciju u samoj mobilnoj mreži, ona se bazira IMEI standardu, naravno da će telefon sa WiFi-jem imati MAC adresu, ali za komunikaciju unutar mobilne mreže koristiti će IMEI. Zato IP mreža ne koristi MAC adresu, te IP protokolu nije bitno s koje MAC adrese je poslan paket.

Da ne kompliciramo previše, IP paketi koji putuju internetom imaju upisanu adresu odakle su poslani i adresu kamo trebaju stići, te poruku koju šalju. Same adrese se sastoje od četiri broja odvojenih točkom. Svaki broj može imati vrijednost od 0-255.

 

                IP adrese se dijele na dvije bitne kategorije. Javna i privatna. U samom protokolu je zamišljeno da će postojati privatni range IP adresa. U narodu bolje znane kao 192.168.x.x, postoje tri range-a privatnih IP adresa, a to su :

  • 192.168.0.0 - 192.168.255.255
  • 172.16.0.0 - 172.31.255.255
  • 10.0.0.0 - 10.255.255.255

 

               I napokon dolazimo do routera…. Danas za pristup internetu postoji pojam „router“, to je zapravo jedan uređaj koji radi više stvari odjednom. Za nabrojati sve stvari trebalo bi podosta, ali ajmo uzet najjednostavniji model.

Prvo što je bitno kod routera je to da on ima dvije IP adrese. Jedna je javna, dok je druga privatna. Uz to:

  • Router je (obično) i switch
  • Radi NAT (Network Address Translation)
  • Firewall
  • DHCP server
  • Obično radi i cache DNS-a

 

               Dovoljno za zapamtiti je da switch radi na način da povezuje dva mrežna uređaja spojena na njega. U detalje ću opisati u drugom postu.

               Dakle router kao što smo spomenuli ima dvije adrese, time možemo podijeliti strukturu na WAN i LAN.  WAN bi bilo mjesto preko kojeg je povezan na Internet i ima javnu IP adresu. LAN bi bio skup mrežnih sučelja di je dostupna privatna IP adresa.

 

               Funkcija routera koja omogućava tranziciju između javnih i privatnih adresa zove se NAT. Dakle imamo računalo na mreži, na njemu se napiše www.bug.hr u nekom od internet browser-a, to računalo šalje „poruku“ da treba informacije sa servera na kojem se nalaze bugove stranice. Pošto računalo ima privatnu adresu, bugov server ne bi znao di poslati odgovor. Stoga router zamjeni dio IP paketa u kojem piše odakle, s koje adrese je paket poslan i tamo upiše javnu IP adresu routera, bug server dobiva taj paket i vraća odgovor routeru, router sada mora zamijeniti dio IP paketa u kojem piše IP adresa di taj paket mora biti dostavljen, tamo upisuje privatnu adresu računala, te računalo dobiva odgovor od servera.

 

Ako je ovo teško za shvatiti, možda pomogne ova slikica:

 

 

 

                I sad bi netko postavio pitanje, zašto nam treba NAT, zar nije moguće kao kod MAC adresa, da svako računalo ima unikatnu IP adresu, odgovor je zato jer nema dovoljno IP adresa. IPv4 ima oko 3.7 milijardi javnih adresa. To nije niti približno dovoljno za sve uređaje. U svijetu trenutno ima oko 2.5 milijardi smartphone-a. Puno IP adresa otpada na samo infrastrukturu interneta. Razni serveri i slično. Uz to treba napomenuti da ljudi danas koriste barem četiri uređaja koji su spojeni na net. Računalo doma, računalo na poslu, vlastiti i službeni mobitel. U to sve treba ubrojiti SmartTV, konzole, razne druge pizdarije koje se povezuju na Internet. Trenutno imam rezervirano 14 privatnih IP adresa, u stanu di živi dvoje ljudi.

 

                Iako NAT sam po sebi štiti od upada u privatnu mrežu jer propušta samo konekcije iz privatne mreže van, te iz interneta u privatnu mrežu samo već uspostavljene konekcije. Potreban je i firewall.

Funkcija firewall-a je da štiti privatnu mrežu od pokušaja napada koji dolaze izvana.

                Sam firewall ću napisati u detalje u nekom od slijedećih postova.

 

                DHCP server dodjeljuje uređajima u privatnoj mreži IP adrese. Osnovne stvari koje je bitno znati je IP pool iz kojeg dodjeljuje adrese, odnosno na nekim routerima DHCP range.

                Ako imamo slobodne sve adrese od  192.168.0.2 do 192.168.0.254 (192.168.0.1 je adresa routera), najbolje je DHCP pool staviti da ima 100tinjak adresa na raspolaganju, recimo 192.168.0.100 – 192.168.0.200. Tako da adrese od 2 do 99 ostanu za neke druge potrebe. Tipa postavljanje fiksne IP adrese na računalu zbog port forwardinga.

                Osim dodjeljivanja same IP adrese DHCP server daje netmask podatke, poznatije u windowsima kao subnet maska. Daje podatke o DNS serverima i koji je Default Gateway.

                Opet… detaljnije objašnjenje o subnet maskama i DHCP serveru i DNS-u u jednom od slijedećih postova.

Moj PC  
1 0 hvala 3
10 godina
offline
Ruterz 'n shit

OSI model

 

                Za bolje shvaćanje komunikacije između uređaja i aplikacija, napravljena je „tablica“ koja je zapravo apstrakcija, koncepcijski model preko kojeg se može vidjeti koji protokoli su zaduženi za što točno. Bitna stvar kod kompleksnog sustava komunikacije je prije svega standardizacija i razumjeti za svaki mali zupčanik u stroju čemu točno služi, odnosno za što je zadužen.

                OSI model se može zamisliti kao obična tablica, ili možda kao krugovi… nešto kao luk sa više slojeva. Bitno za razumjeti je da viši sloj ne može obavljati svoju funkciju bez nižeg sloja. Obično se na slikama prikazuje najviši sloj prvi i najniži zadnji. Ima ukupno sedam slojeva, pa krenimo redom:

 

1. Sloj – Hardverski, Fizički

Tu je definirano da UTP kabel ima 4 para žica, kako izgledaju konektori, napon na kojem radi ethernet mreža, ….

 

Jedinica transmisije: bit

 

2. Sloj veze

Sloj veze se grana na dva podsloja, to su MAC i LLC, i zajedno tvore Sloj veze, odnosno layer 2.

Sloj veze zadužen je npr za uspostavljanje brzine prijenosa, da se ne bi dogodilo da imamo uređaj koji odašilje brzinom od 1000 Mbit, dok uređaj koji prima brzinom od 100 Mbita. Sloj veze je taj koji će ograničiti vezu između ta dva uređaja na 100 Mbita. To se zove flow control.

Sloj veze se brine za razmjenu podataka između umreženih uređaja.

 

Jedinica transmisije: frame

 

3. Mrežni sloj

Zadužen za prijenos paketa između mreža. Na ovom sloju zapravo „živi“ router, routanje paketa, fragmentacija, IP protokol, također routing protokoli, ARP, ICMP, ..

Mrežni sloj je taj koji je zadužen za routanje paketa na internetu.

Prije smo pričali zašto je potrebna IP adresa, te upravo je layer 3, odnosno mrežni sloj taj koji pretvara MAC adrese računala… koje su same po sebi u sloju veze (layer 2) u IP adrese (layer 3) i obrnuto.

 

Jedinica transmisije: paket

 

4. Transportni sloj

Dva najpopularnija protokola na internetu su TCP i UDP, oni se nalaze u transportnom sloju.

Transportni sloj brine o greškama u paketu, pratvaranju podataka u segmente/pakete, …

Recimo šaljemo pakete koji su TCP, te ono što se dogodi je da 2% TCP paketa ne stigne na odredište, transportni sloj je taj koji će tražiti ponovno slanje paketa koji nisu stigli ili poslati pošiljatelju poruku da su svi paketi stigli, te da može poslati nove pakete.

 

Jedinica transmisije: TCP segment, UDP datagram

 

5. Sloj sesije

6. Prezentacijski sloj

7. Aplikacijski sloj

 

Ova 3 ćemo zasad preskočiti, i ukratko reći da se oni brinu o samim podacima, komunikaciji između programa, kopiranju i uspostavljanju veze između računala.

 

Jedinica transmisije: podaci

 

Evo slika, besramno ukradena s neta:

 

 

 

Komunikacija ide otprilike ovako:

Aplikacijski sloj želi poslati nešto, prezentacijski sloj formatira podatke, sloj sesije konekciju prema drugom računalu, transportni sloj pretvara podatke u TCP segmente, mrežni sloj kreira IP pakete koje šalje preko podatkovnog i fizičkog sloja do routera, router šalje do drugog routera, trećeg routera, itd… sve dok ne dođe do odredišta, di se opet od IP paketi pretvaraju u podatke, te aplikacija/server prima te podatke.

 

Ovo sve nas dovodi do pojma enkapsulation, ili enkapsulacija

Isti pojam postoji i u programiranju, ali ovo o čemu pričam se odnosi na mreže.

 

Dakle imamo nekakve podatke. Recimo da je protokol HTTP. HTTP dodaje svoje zaglavlje na poruku koju treba poslati.

HTTP zaglavlje i ta poruka postaju podaci, na to TCP dodaje svoje zaglavlje i postaje TCP segment.

Cijeli TCP segment ide u IP paket, te IP dodaje svoje zaglavlje, dok su podaci u IP paketu TCP zaglavlje + podaci, onda dolazimo do layer 2 frame, on na cijeli TCP paket dodaje svoje zaglavlje + podnožje, te se kroz layer 1 u bitovima prenese preko mreže.

 

Opet besramno ukradena slika:

 

  

Dakle kada se priča o protokolima, oni postoje na raznim razinama. HTTP je protokol, TCP je protokol, IP je protokol (maker opet dolazimo do ATM mašine problema, jer ip doslovno znači Internet Protocol). I onda imamo još dodatne komplikacije koje ćemo proći u VPN topicu, zajedno sa raznim tunel protokolima.

 

 

IP paketi

                Komunikacija preko IP mreže odvija se preko nečega što se zove IP paket. Sastoji se od zaglavlja i podataka. Prije sam napisao da se u zaglavlju nalazi adresa pošiljatelja i adresa primatelja. Ali to nije sve, nalazi se još podosta podataka. Ako nekome nije jasno što je IP paket, mogli bi reći da je to jedinica podatkovnog prometa u IP mreži. Ako zamislimo IP mrežu kao autoput, jedan auto bio bi IP paket. Ono što možda neće biti jasno u ovom donjem primjeru je fragmentacija paketa. Recimo da nešto visine 20 metara mora proći ispod mosta visine 5 metara. Ono što možemo napraviti je izrezati 20 metara na 4 jednaka dijela, proći ispod mosta i onda sastaviti kako je i prije bilo

 

Verzija 4 bita

Trenutno pričamo o IPv4, ali po ova prava 4 bita možemo vidjeti radi li se o IPv4 ili IPv6 paketu.

Duljina zaglavlja (engl. IHL - Internet Header Length) 4 bita

Kao što ime kaže veličina zaglavlja u bitovima, ali kao umnožak broja 4, dakle ako je upisan broj 5 onda je zaglavlje 5 puta 4, odnosno 20

ToS (engl. Type of Service) 8 bitova

Još poznato pod imenom QoS (engl. Quality of Service), QoS ćemo proći u detalje, ali za sada je dovoljno znati da ovo pokazuje koliki prioritet ovaj paket ima naprema ostalim paketima.

Duljina IP paketa 16 bitova

Kao što samo ime kaže, duljina cijelog paketa (zaglavlje + podaci) u bajtovima.

Identifikacija 16 bitova

Ako je IP paket fragmentiran, svi paketi sadrže identifikacijski broj originalnog nefragmentiranog paketa.

0, DF, MF 3 bitova

Prvi bit je nula, drugi bit DF govori uređaju koji čita IP pakete da ga ne fragmentira (engl. Don't Fragment), i na kraju imamo MF koji je također boolian po kojem se vidi ima li fragmenata paketa nakon ovoga.

Fragmentacija 13 bitova

Daje točnu poziciju fragmenta. Recimo da je originalni IP paket fragmentiran na 5 dijelova. Ovo bi na primjer reklo da se radi o četvrtom dijelu.

TTL (engl. Time to live) 8 bitova

Svaki paket je poslan sa određenom TTL vrijednosti, svaki put kada paket napravi skok (prođe kroz router), vrijednost se smanjuje za jedan. Ako router primi paket sa TTL vrijednosti 1, odbacuje paket. Ovo je postavljeno zato da paket ne bi radio loop po mreži zauvijek. Odnosno vrtio se u krug između routera. Prije ili kasnije će biti odbačen.

Protokol 8 bitova

Vrijednost koja pokazuje o kojem protokolu se radi (npr. TCP je 6, ICMP je 1, GRE je 47)

Checksum zaglavlja 16 bitova

Checksum je zapravo broj generiran od svih brojeva IP zaglavlja, osim samog checksum polja. Primatelj može ponovno izračunati taj isti broj, te ako su brojevi jednaki znači da je paket primljen bez grešaka.

IP adresa pošiljatelja 32 bita

IP adresa primatelja 32 bita

 

IP+paket IP+paket
 

 Postoji još jedan opcionalni dio paketa koji se zove Options, ali za sada nećemo u to ulaziti.

 

Kao što vidite IP paket je sam po sebi poprilično jednostavan, te logičan. Polja koja se nalaze i samom paketu su potrebna, te služe da paket bude isporučen sigurno, na adresu kamo treba biti dostavljen i bez grešaka.

 

 

Subnet maska

 

                Zbog toga što su ljudi htjeli razdvojiti mreže implementiran je subnet. On zapravo govori koji je range mreže, a piše se na nekoliko različitih načina.

Ako recimo imamo napisano 192.168.0.11/24

192.168.0.11 je IP adresa dok je broj 24 CIDR notacija

Prije CIDR notacije imali smo klase IP adresa i to su bile A, B i C

 

Iz ovog vidimo da nam je mreža 192.168.0.0, također vidimo da nam je IP adresa 192.168.0.11, te subnet maska 255.255.255.0. U mreži imamo 254 moguće IP adrese i to su 192.168.0.1 do 192.168.0.254. Dakle jako puno informacija u malo bajtova.

Ta CIDR notacija je zapravo broj od početka prema kraju, koji imaju vrijednost 1 u 32 bitnoj adresi.

Ako to pogledamo u binarnom zapisu dobijemo:

11111111.11111111.11111111.00000000, odnosno ako to prebacimo u dekadski dobijemo subnet masku 255.255.255.0

 

Dobar link na subnet calculator.

 

 

IP routing table (osnove osnova)

 

                Zadatak svakog routera u mreži je napraviti tzv. routing table. On zapravo govori koje su mreže dostupne i kojom rutom ih provesti. Routing table se također nalazi na svim računalima koja su na mreži.

 Pogledajmo primjer jednostavnog routing table-a.

 

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.99.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0

127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo         

0.0.0.0         192.168.99.254  0.0.0.0         UG    0      0        0 eth0

 

                Prema ovome možemo zaključiti da nam je lokalno dostupna mreža 192.168.99.0, preko interface eth0, također dostupan nam je Internet 0.0.0.0/0, preko istog interface-a, ali uz to je upisan gateway od routera, u ovom slučaju 192.168.99.254. Što znači da bilo koju adresu koja je izvan 192.168.99.0/24 i 127.0.0.0/8 traži se preko routera koji je na adresi 192.168.99.254.

 

                Imamo i flagove,

U- Znači da je „Up“, odnosno dostupno

G- Gateway, znači da je definirana gateway adresa.

H- Host, znači da je definirana 32 bitna adresa sa subnet maskom 255.255.255.255, odnosno da se ta jedna IP adresa nalazi na toj ruti.

 

Za dobit routing table na vlastitiom računalu u cmd upisati 'netstat -rn'

 

Postoji još jedna kolona koja se zove metrics, što je taj broj niži to ruta ima veći prioritet nad drugima. Tako da je lako moguće da imamo rutu na eth0 prema 0.0.0.0/0 gateway 192.168.1.1/24 sa metrics 10 i također ruru prema 0.0.0.0/0 na eth2 gateway 192.168.88.250/24 i metrics 20.

Računalo će po defaultu koristiti rutu na eth0, sve dok je ona up, ako je routa više nije up, koristiti će drugu rutu sa većim „Metric“

Metric može biti postavljen manualno ili može biti izračunat, ovisno o raznim parametrima, kao što je broj skokova, propusnost, koliki je packet loss na toj ruti, itd…

 

next:

 

ICMP, ping, ICMP poruke…

Onda malo o routanju i routing protokolima koji se najviše koriste, ili možda o switchevima, jer mi je pun k… routera na poslu

ne znam, možda i layer 4, TCP/UDP,,, al najrađe bi napokon krenuo o samim routerima, makar prije bi trebalo proć još par stvari.

 

Poruka je uređivana zadnji put pet 18.5.2018 8:23 (filter160).
Moj PC  
1 0 hvala 1
10 godina
offline
Ruterz 'n shit

*rezervirano*

 

Switch

 

ARP

Link Aggregation

VLAN

VLAN - detaljno

...

Poruka je uređivana zadnji put ned 29.4.2018 16:02 (filter160).
Moj PC  
0 0 hvala 0
10 godina
offline
Ruterz 'n shit

*rezervirano*

 

Firewall

Poruka je uređivana zadnji put ned 29.4.2018 16:03 (filter160).
Moj PC  
0 0 hvala 0
10 godina
offline
Ruterz 'n shit

*rezervirano*

 

DNS

Poruka je uređivana zadnji put ned 29.4.2018 16:03 (filter160).
Moj PC  
0 0 hvala 0
10 godina
offline
Ruterz 'n shit

*rezervirano*

 

VPN

 

Site to site

Road Warrior

IPSEC

Poruka je uređivana zadnji put ned 29.4.2018 16:06 (filter160).
Moj PC  
0 0 hvala 0
10 godina
offline
Ruterz 'n shit

*rezervirano*

 

OSI model

IP paketi, osnovno

Routing

Poruka je uređivana zadnji put ned 29.4.2018 16:16 (filter160).
Moj PC  
0 0 hvala 0
10 godina
offline
Ruterz 'n shit

*rezervirano*

 

Par primjera konfiguracije

Poruka je uređivana zadnji put ned 29.4.2018 16:09 (filter160).
Moj PC  
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice