Så står det i teorien som vi ska använda till uppgiften.
datat. Om det är rätt, så kommer datat att sändas till ett program som får ta hand om det.
Men vad händer om datat skall skickas till en dator som sitter på ett annat nätverk? Då ser datorn
som sänder att mottagarens nätadress och sin egna nätadress skiljer sig åt. Då skickas paketet till en
router, vidarebefordrare, på det lokala nätet. Den ser till att datat inte är ämnat för den egna datorn,
utan en annan, och skickar det vidare i rätt riktning för att det skall nå den andra datorn.
För att man skall kunna skicka data mellan olika datorer i olika nät, så har alla datorer i samma nät
samma nätadress. Så skall en dator skicka något till en annan dator som sitter på samma nätverk, så
kan datorn skicka datat direkt till den andra datorn.
IPv4-adresser
Hur ser då en dator om datat skall skickas till en dator i samma nätverk eller i ett annat? Och hur
vet den vilken maskin på det egna nätet som är en router?
En IPv4-adress består av 32 bitar, och de skrivs normalt med fyra decimaltal åtskilda med en punkt.
Exempelvis så kan en IPv4-adress se ut så här: 130.243.0.29. Så den adressen består egentligen
av 32 st 1:or och 0:or. Så med hjälp av programmet ipcalc så kan vi se hur det ser ut.
$ ipcalc -c 130.243.0.9
Address: 130.245.8.12 10000010.11110101.00001000.00001100
...
Hosts/Net: 65534 Class B
$
Av detta kan vi se att adressen inleds med 10, vilket säger att det är en B-klass. B-klass delar
adressen i 16-bitar nät och 16-bitar maskin. I det här fallet är alltså nätet 130.243.0.0 och
nodens adress 0.9.
Det finns ett antal klasser, beroende på hur de första bitarna i IP-adressen ser ut.
0 A-klass (8/24) 8 bitar nät (256 st)
10 B-klass (16/16) 16 bitar nät (65 534 st)
110 C-klass (24/8) 24 bitar nät (16 777 216 st)
1110 D-klass (32/0) Experimentell
Normalt använder man dock inte så stora nät, eftersom det rymmer 65534 noder. Så därför brukar
man dela upp näten i delnät, med hjälp av en subnätsmask. Av historiska skäl så använder delar
man dock alltid mindre delar av klassnäten, även om man inte använder klasserna längre.
Nätmasken är lika lång som IPv4-adressen, dvs 32-bitar lång, och varje bit från vänster till höger i
nätmasken som är en etta talar om att det är del av nät-adressen. För att skriva det så kan man
antingen skriva det som en nätmask, exempelvis 255.255.255.0, eller hur många bitar som är
nätdelen med /24 efter IP-adressen, eftersom nätmasken har 24 ettor till vänster (255 är 8 ettor).
Så då kan vi se vad vi får av ipcalc nu då:
$ ipcalc -c 130.245.8.12/24
Address: 130.245.8.12 10000010.11110101.00001000. 00001100
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111
Network: 130.245.8.0/24 10000010.11110101.00001000. 00000000
HostMin: 130.245.8.1 10000010.11110101.00001000. 00000001
HostMax: 130.245.8.254 10000010.11110101.00001000. 11111110
Broadcast: 130.245.8.255 10000010.11110101.00001000. 11111111
Hosts/Net: 254 Class B
Som man kan utläsa så går två stycken noder bort, nämligen nodadressen med nollor och med ettor,
dvs högsta och lägsta. Nodadressen med bara nollor är nätets adress, som 130.243.8.0 i exemplet
ovan. Nodadressen med bara ettor kallas broadcast, och skickas till alla datorer i samma nätverk.
Så 130.243.8.255 är broadcast-adressen för alla datorer i nätet 130.234.8.0/24.
Hur vet datorn vilken adress routern har? Det vet den inte automatiskt, utan det måste datorn få
veta av nätverksadministratören. För att se vilka inställningar som datorn har, så kan man använda
kommandot ip, följt av olika argument. För IP-adresser, använd ip add list (eller förkortat
ip add). För varje nätverksenhet dess inställningar. Exempelvis så kan man så något som liknad
detta: IPv4-adress: inet 192.168.122.10/24, MAC-adress: link/ether
0a:59:77:93:29:88 samt IPv6-adress: inet6 fe80::226:b9ff:fe7b:68e3/64.
Kommandot ip route list ger lista av vilka maskiner som är routrar: Så ip route list ger
information om standardrouter: default via 192.168.222.1 dev eth0, dvs den har
IPv4-adress 192.168.122.1 och sitter på enhet eth0.
För att se vilka maskiner som finns i samma nät, så kan man använda ip neigh.
I Debian så ställer man in nätverksinställningarna i filen /etc/network/interfaces1. Där
skriver man olika ”stanza” för hur nätverket skall ställas in. Exempelvis så kan man tala om för
Debian att nätverksinställningar skall komma från nätet via DHCP-protokollet.
auto eth0
iface eth0 inet dhcp
Vill man ställa in manuellt, så kallat statiskt, så gör man så här:
auto eth0
iface eth0 inet static
address 192.168.222.10
netmask 255.255.255.0
gateway 192.168.222.1
dns-servers 8.8.8.8 8.8.4.4
Här sätter vi IPv4-adressen till 192.168.222.10 och nätmasken till /24. Routern finns på
192.168.222.1 och för att hantera DNS-uppslag så använder vi Google publika DSN-servrar.
Har kollat i linux och gett filrättigheter och ändrat ägare och grupp att det blir (rwxwxwx-me-me)
men stod ändå inga siffror eller ip nummer i /etc/network/interfaces, NetoworkManager, /etc/log/syslog(har googlat och såg att detta skulle vara nya lagringsstället) och har kollat alla filer och kataloger i /etc/network, /etc/network/interfaces, NetworkManager, /etc/log/syslog, /var/log/messages, /var/log/syslog och i alla de här katalogernas filer och mappar, men hittar ingen info om ip address och nätverk. Så hjälp mig gärna med det för det närmsta jag har kommit är att läsa på ubuntus hemsida eller nåt annat ställe att ubuntu hade ändrat ställe till /syslog eller liknande(läs uppgift längst ner efter stycket ip-nummer)
IP-nummer
För att veta vilket IP-nummer som en maskin har, så kan man titta på två ställen i en Debian Linux-
dator. Om maskinen har fast adress, så tittar man enklast i /etc/network/interfaces. Då
kommer adressen att stå inskrivet för det nätverksgränssnitt som datorn är ansluten till det lokala
nätverket med. Det syns med det sk stanza med värdet static och adressen hittas efter nyckeln
address. Notera att om ni har Rasbian på Rasberry Pi, så används inte /e/n/interfaces.
Men om stanzat har värdet dhcp, så innebär det att det finns en maskin med ett DHCP-program på
nätverket som håller reda på använda adresser och delar ut lediga till maskiner som vill ha nya
adresser. Detta server-program brukar köras i den router som finns på det lokala nätverket.
Men om er nätverksenhet inte nämns alls i /e/n/interfaces då? Jo, då hanteras den troligen
av ett program som heter NetworkManager (förkortas normalt NM). Det installeras vanligtvis
bara i grafiska miljöer och används sällan/aldrig när man har en server med fast ip-adress.
För att se vilka adresser som är aktuella, så används vanligen en av två kommandon. Dels det nya
ip(8), och dels det gamla ifconfig(8). Vi skall använda ip address show, men ni får
gärna jämföra med ifconfig-kommandot, men skall använda ip.
Uppgift: Ni skall ta reda på vilken IP-adress som maskinen har samt hur den får sin adressen
utifrån att använda kommandot ip och titta i loggar, exempelvis /var/log/messages. Ange
hur ni får tag på det, vi skall kunna se vad ni hämtat datat ifrån.
Nät- och Nodnummer
IP-adressen delas upp i två delar, nätadressen och nodadressen. För att veta var gränsen går mellan
nätadressen, som är lika hos alla maskiner i samma nätverk, och nodadressen som är unikt för varje
maskin i det lokala nätverket, så kan man ange hur många bitar som nätadressen består av.
Det finns två sätt att ange detta på. Dels med något som kallas CIDR vilket anges efter nätverkets
IP-nummer, dels med något som kallas nätmask vilket varje bit i adressen som motsvarar nätverkets
adress sätts till ett. De är helt likvärdiga, men man brukar föredra att använda CIDR, eftersom den
är kortare samt lite enklare att förstå.
För att se vilket nät man är ansluten till kan man dels se det med kommandot ip route list
(eller det äldre kommandot route(8)) men även med ip address show.
Uppgift: Ange vilken nätadress som ni har. Ni skall använda CIDR och även ange nätmasken
separat. Ni skall visa var ni fått informationen ifrån.