IP-alapok

A Unix/Linux szerverek üzemeltetése wikiből
(Változatok közti eltérés)
(A protokollcsaládról)
(ARP javítva; minimális stiláris javítás az elején)
4. sor: 4. sor:
   
 
* Az IP egy protokollcsalád
 
* Az IP egy protokollcsalád
: Az Internet Protocol az OSI modell hálózati rétegében helyezkedik el. Csomagkapcsolt hálózatot valósít meg, ami annyit jelent, hogy nem épít fel semmilyen kapcsolatot a forrás és a cél között hanem minden egyes csomagot külön juttat célba (routol).
+
: Az Internet Protocol az OSI modell hálózati rétegében helyezkedik el. Csomagkapcsolt hálózatot valósít meg, ami annyit jelent, hogy nem épít fel semmilyen kapcsolatot a forrás és a cél között, hanem minden egyes csomagot külön juttat célba (route-ol).
 
** ARP (később)
 
** ARP (később)
 
** IP (Internet Protocol)
 
** IP (Internet Protocol)
52. sor: 52. sor:
 
* Az IP alatt gyakran van Ethernet, vagy ahhoz hasonló broadcast médium
 
* Az IP alatt gyakran van Ethernet, vagy ahhoz hasonló broadcast médium
 
* Ötlet: ha nem tudjuk a címet, kérdezzük meg!
 
* Ötlet: ha nem tudjuk a címet, kérdezzük meg!
** 1. üzenet (adatkapcsolati broadcast): who-has 1.2.3.4 tell 00:de:ad:be:ef:00
+
<pre>
** 2. üzenet (unicast): 1.2.3.4 is-at 00:f0:0d:d0:0d:00
+
00:de:ad:be:ef:00 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: arp who-has 1.2.3.4 tell 1.2.3.1
  +
00:f0:0d:d0:0d:00 > 00:de:ad:be:ef:00, ethertype ARP (0x0806), length 60: arp reply 1.2.3.4 is-at 00:f0:0d:d0:0d:00
  +
</pre>
 
* Egy darabig megjegyezzük az ARP-táblánkban
 
* Egy darabig megjegyezzük az ARP-táblánkban
 
* Igen ám, de nem vagyunk mindenkivel egy fizikai hálózaton - a többiek MAC-címét honnan fogjuk megtudni?
 
* Igen ám, de nem vagyunk mindenkivel egy fizikai hálózaton - a többiek MAC-címét honnan fogjuk megtudni?

A lap 2006. szeptember 14., 00:47-kori változata

Itt most az IPv4-ről lesz szó. Az IPv6-tal nem foglalkozunk.

Tartalomjegyzék

1 A protokollcsaládról

  • Az IP egy protokollcsalád
Az Internet Protocol az OSI modell hálózati rétegében helyezkedik el. Csomagkapcsolt hálózatot valósít meg, ami annyit jelent, hogy nem épít fel semmilyen kapcsolatot a forrás és a cél között, hanem minden egyes csomagot külön juttat célba (route-ol).
    • ARP (később)
    • IP (Internet Protocol)
      • hálózati rétegbeli
      • datagramm-alapú
      • fejléc:
        • forráscím
        • célcím
        • TTL (Time To Live)
        • magasabb szintű protokoll azonosítója
        • egyéb (pl: DF, Don't Fragment, PMTU discoveryhez)
    • ICMP (Internet Control Message Protocol)
      • hiba- és státuszüzenetek, pl:
        • Echo Request
        • Echo Reply
        • Destination Unreachable
          • Network Unreachable
          • Host Unreachable
          • Protocol Unreachable
          • Port Unreachable
          • Fragmentation Needed
          • Communication Administratively Prohibited
        • Time To Live Exceeded
        • és még jó pár, ritkábban látott másik
    • TCP (Transmission Control Protocol)
      • összeköttetés-alapú
      • garantálja a csomagok helyes sorrendjét
      • újraküldi a csomagokat, ha kell
      • torlódásvezérelt
      • kapcsolatfelépítés:
        • SYN
        • SYN+ACK
        • ACK
      • port fogalma ("lokális multiplexelés")
    • UDP (User/Unreliable Datagram Protocol)
      • itt is van port
      • nincs nyugta
      • nincs torlódásvezérlés
      • a folyam csomagjai elveszhetnek, ill. megjöhetnek rossz sorrendben
    • stb.

1.1 ARP

  • Az IP hálózati rétegbeli protokoll
  • A hálózati szint alatt még van egy adatkapcsolati és egy fizikai réteg
  • Az adatkapcsolatiban is kellhet címzés
  • Honnan tudjuk a másik fél adatkapcsolati címét?
  • Az IP alatt gyakran van Ethernet, vagy ahhoz hasonló broadcast médium
  • Ötlet: ha nem tudjuk a címet, kérdezzük meg!
00:de:ad:be:ef:00 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: arp who-has 1.2.3.4 tell 1.2.3.1
00:f0:0d:d0:0d:00 > 00:de:ad:be:ef:00, ethertype ARP (0x0806), length 60: arp reply 1.2.3.4 is-at 00:f0:0d:d0:0d:00
  • Egy darabig megjegyezzük az ARP-táblánkban
  • Igen ám, de nem vagyunk mindenkivel egy fizikai hálózaton - a többiek MAC-címét honnan fogjuk megtudni?
  • Sehonnan, mert nem is kell.
  • => routing

2 Statikus routing

  • Minden gépnek van egy routing-táblája, ilyesmi bejegyzésekkel:
IP netmask gateway interface megjegyzés
1.2.3.0 255.255.255.0 * eth0 ez egy fizikai helyi hálózat, az eth0-án lóg
2.3.4.5 255.255.255.255 1.2.3.2 eth0 a 2.3.4.5-ös gépet az 1.2.3.2 című routeren át érjük el, "amögött" van
3.4.5.128 255.255.255.128 1.2.3.42 eth0 a 3.4.5.128/25-ös hálózat a 3.4.5.128 című routeren át érhető el, "amögött" van
0.0.0.0 0.0.0.0 1.2.3.254 eth0 Minden más ("az egész Internet") az 1.2.3.254 című routeren át érhető el


Ha egy adott konkrét A.B.C.D IP-címmel akarunk kommunikálni, a következők szerint járunk el:

  • Megnézzük, az IP-cím része-e valamelyik helyi hálózatnak a cím/maszk párok alapján
    • Ha igen, ARP queryt küldünk
      • A válaszban benne lesz a MAC-cím
      • MAC-szinten oda, IP-szinten A.B.C.D-nek címezzük a csomagot
      • Ha nincs ARP-válasz, "host unreachable"
    • Ha nem:
      • Megnézzük, az IP-cím illeszkedik-e valamelyik más routing-bejegyzésünk cím/maszk párosára
        • Ha igen, a csomagot MAC-szinten az adott gatewaynek, IP-szinten A.B.C.D-nek kell címeznünk
          • Vagyis: ARP who-has IP-of-gateway
        • Ha nem, akkor nem tudjuk, merre kell küldeni a csomagot, "network unreachable" ("no route to host")

2.1 A routing-tábla karbantartása

  • route parancs:
    • route add -net 1.2.3.0/24 dev eth0
    • route add -host 2.3.4.5 gw 1.2.3.2
      • Az eth0 következik a gw címéből
    • route add -net 3.4.5.128/25 gw 1.2.3.42
    • route add default gw 1.2.3.254
    • route -n
  • ip parancs:
    • ip ro add 1.2.3.0/24 dev eth0
    • ip ro add 2.3.4.5/32 via 1.2.3.2
    • ip ro add 3.4.5.128/25 via 1.2.3.42
    • ip ro add default via 1.2.3.254
    • ip ro sh

2.2 Statikus route-ok automatikus felvétele

  • Debianon és Ubuntun:
/etc/network/interfaces-be:
iface eth0 inet static
address 1.2.3.1
netmask 255.255.255.0
broadcast 1.2.3.255
network 1.2.3.0
gateway 1.2.3.254
up ip ro add 2.3.4.5/32 via 1.2.3.2
up ip ro add 3.4.5.128/25 via 1.2.3.42
  • Red Hat Linuxon:

?

  • SuSE Linuxon:

?

  • FreeBSD-n:

?

  • Solarison:

?

  • OpenBSD-n:

?

  • Gentoo Linuxon:
A Gentoo a az /etc/init.d/net.lo-ra mutató symlinkekkel operál az ethn interfész felhúzásakor; így ha pl. eth0 és eth1 interfészeket akarunk használni, akkor ln -s net.lo net.eth0 illetve ln -s net.lo net.eth1 a használandó parancsok. Ezek automatikus felhúzása boot után az rc-update add net.eth0 default ill. rc-update add net.eth1 default parancsokkal lehetséges.
Azt, hogy az egyes interfészeket hogyan szeretnénk alapesetben indítani, az /etc/conf.d/net fileban adhatjuk meg. A példa elég értelemszerű:
config_eth0=("192.168.2.210 netmask 255.255.255.0")
routes_eth0=("default gw 192.168.1.254")
itt soroljuk fel a többit is
Jó tudni, hogy az alapértelmezés DHCP. Azaz ha nem adunk meg semmit, de DHCP klienst futtatunk, akkor azzal próbálkozik a rendszer.

--TechyZoltan 2006. szeptember 12., 20:55 (CEST)

Személyes eszközök