Počítačové sítě/Podsíťování

Z Wikiknih
Skočit na navigaci Skočit na vyhledávání

Podsíťování (anglicky Subnetting) se používá pro hierarchické rozdělení IP sítě na další sítě. V této kapitole je podsíťování vysvětleno na IPv4 kvůli menšímu rozsahu IP adres. V IPv6 funguje podsíťování podobně.

Základní pojmy[editovat]

  • IP adresa je 32bitové číslo, které jednoznačně identifikuje zařízení v síti[1]. Zapisuje se ve formátu 4 decimálních čísel (0-255) oddělených tečkami (např. 192.168.100.200)
  • Prefix je počet bitů (zleva), které identifikují síťovou část IP adresy. Prefix se zapisuje jako číslo za lomítkem po IP adrese (IP_ADRESA/PREFIX, např. 192.168.100.200/24)
  • Maska je 32bitové číslo, které identifikuje síťovou část IP adresy. Maska se zapisuje ve formátu 4 decimálních čísel (0-255) oddělených tečkami (např. maska pro 192.168.100.200/24 je 255.255.255.0).

Základem podsíťování je plné pochopení toho, že IP adresa je 32bitové číslo (32 jedniček nebo nul), které prefix rozděluje na síťovou a hostovou část. Vše ostatní je důsledkem.

V této kapitole je pod pojmem IP adresa myšlena nejen IP adresa, ale i související prefix. Zapisuje se IP adresa/prefix.

IP adresa sítě[editovat]

V hostové části IP adresy sítě jsou 0.

Zařízení s IP adresou 192.168.100.200/24 je v síti 192.168.100.0/24.

Proč? Prefix rozděluje IP adresu na síťovou a hostovou část. Počet bitů prefixu zleva je část síťová, identifikující síť. Zbylé bity jsou část hostová, identifikující zařízení v síti. Pro IP adresu 192.168.100.200 s prefixem 24 je tedy síťová část 192.168.100.. Definice IP adresy sítě říká, že v hostové částí jsou 0, takže IP adresa sítě zařízení je 192.168.100.0. IP adresa zapsaná bez prefixu je nejednoznačná, zatímco 192.168.100.0/24 je správná IP adresa sítě, 192.168.100.0/16 je IP adresa zařízení v síti 192.168.0.0/16.

IP adresa sítě slouží k identifikaci sítě a používá se ve směrovacích tabulkách.

Broadcast IP adresa[editovat]

V hostové části broadcast IP adresy jsou 1.

Broadcastová IP adresa pro zařízení s IP adresou 192.168.100.200/24 je 192.168.100.255.

Broadcastová adresa slouží k broadcast komunikaci na 3. vrstvě ISO/OSI modelu.

V IPv6 se broadcast komunikace nepoužívá a broadcast adresa tím pádem neexistuje.

Broadcast doména[editovat]

Zařízení ve stejné síti (tj. zařízení, která mají stejnou síťovou adresu) jsou v jedné broadcast doméně. Všechna zařízení v broadcast doméně přijímají zprávy poslané na broadcastovou adresu. Broadcastové domény jsou odděleny směrovačem.

Na 3. vrstvě ISO/OSI modelu je broadcastová doména synonymem k síti.

Neplést si s pojmem Kolizní doména.

Počty s prefixem[editovat]

IP adresy jsou ve stejné síti, pokud se shodují jejich síťové části, tedy že IP adresy mají stejnou IP adresu sítě. To je, že po délku prefixu mají zleva stejné bity.

IP adresa 192.168.160.160/16 a IP adresa 192.168.200.200/16 jsou ve stejné síti, protože:

  1. Obě IP adresy mají síťovou část 192.168..
  2. Pro obě je tedy IP adresa sítě 192.168.0.0/16.
  3. Obě IP adresy mají 16 bitů zleva stejných.

Nejlépe je řešení vidět na IP adresách rozepsaných binárně:

      síťová       |      hostová
                   /16
1100 0000.1010 1000.1010 0000.1010 0000 <- 1. IP adresa (192.168.160.160)
1100 0000.1010 1000.1100 1000.1100 1000 <- 2. IP adresa (192.168.200.200)
1100 0000.1010 1000.0000 0000.0000 0000 <- Souhrnná (summary) IP adresa (192.168.0.0)

IP adresa 192.168.160.160/24 a IP adresa 192.168.200.200/24 nejsou ve stejné síti, protože:

  1. První má síťovou část 192.168.160. a druhá 192.168.200..
  2. Pro první je IP adresa sítě 192.168.160.0/24, pro druhou 192.168.200.0/24.
  3. Obě IP adresy mají 24 bitů zleva různých.

IP adresy rozepsané binárně:

           síťová            |  hostová
                             /24
1100 0000.1010 1000.1010 0000.1010 0000 <- 1. IP adresa (192.168.160.160)
1100 0000.1010 1000.1100 1000.1100 1000 <- 2. IP adresa (192.168.200.200)
1100 0000.1010 1000.1xxx xxxx.0000 0000 <- Souhrnná IP adresa není, nesouhlasí 18. - 24. bit

Prefix může být libovolné číslo od 0 do 32.

IP adresa 192.168.160.160/11 a IP adresa 192.168.200.200/11 jsou ve stejné síti, protože:

  1. Pro obě IP adresy je IP adresa sítě 192.160.0.0/11.
  2. Obě IP adresy mají 11 bitů zleva stejných.

IP adresy rozepsané binárně:

    síťová   |          hostová
             /11
1100 0000.101|0 1000.1010 0000.1010 0000 <- 1. IP adresa (192.168.160.160)
1100 0000.101|0 1000.1100 1000.1100 1000 <- 2. IP adresa (192.168.200.200)
1100 0000.101|0 0000.0000 0000.0000 0000 <- Souhrnná IP adresa (192.160.0.0)

IP adresa 192.168.160.160/18 a IP adresa 192.168.200.200/18 nejsou ve stejné síti, protože:

  1. Pro první IP adresu je IP adresa sítě 192.168.128.0/18, pro druhou 192.168.192.0/18.
  2. Obě IP adresy mají 18 bitů zleva různých.

IP adresy rozepsané binárně:

       síťová         |      hostová
                      /18
1100 0000.1010 1000.10|10 0000.1010 0000 <- 1. IP adresa (192.168.160.160)
1100 0000.1010 1000.11|00 1000.1100 1000 <- 2. IP adresa (192.168.200.200)
1100 0000.1010 1000.1x|00 0000.0000 0000 <- Souhrnná IP adresa není, nesouhlasí 17. bit

Je intuitivní, že dvě zařízení jsou ve stejné síti, pokud se shodují jejich síťové části. Co je méně intuitivní, ale neméně důležité, že dvě sítě mohou být ve stejné síti.

IP adresa 192.168.160.0/24 a IP adresa 192.168.200.0/24 (obě IP adresy sítí) jsou v síti 192.168.0.0/16. Říká se, že 192.168.160.0/24 a 192.168.200.0/24 jsou podsítě 192.168.0.0/16.

IP adresy rozepsané binárně:

      síťová       |podsíťová| hostová
                   /16       /24
1100 0000.1010 1000.1010 0000.0000 0000 <- 1. IP adresa (192.168.160.0)
1100 0000.1010 1000.1100 1000.0000 0000 <- 2. IP adresa (192.168.200.0)
1100 0000.1010 1000.0000 0000.0000 0000 <- Souhrnná IP adresa (192.168.0.0)

Síťová část je stejná, takže obě IP adresy jsou ve stejné síti. Podsíťová část obsahuje identifikátor podsítě:

1010 0000 <- identifikátor 1. podsítě
1100 1000 <- identifikátor 2. podsítě

V hostové části jsou 0, takže jde o IP adresy sítí.

IP adresy sítí můžou mít také různě dlouhé prefixy.

IP adresa 192.168.160.160/28 a IP adresa 192.168.200.200/29 jsou podsítě 192.168.128.0/17.

IP adresy rozepsané binárně:

      síťová         |   podsíťová  | hostová <- pro první IP adresu má hostová část 4 bity, pro druhou 3 bity
                     /17            /28 /29
1100 0000.1010 1000.1|010 0000.1010 | 0   000 <- 1. IP adresa (192.168.160.160)
1100 0000.1010 1000.1|100 1000.1100   1 | 000 <- 2. IP adresa (192.168.200.200)
1100 0000.1010 1000.1|000 0000.0000   0   000 <- Souhrnná IP adresa (192.168.128.0)

Při různě dlouhých prefixech podsítí je třeba dát si pozor na identifikátor. Jednoduše se může stát, že jedna podsíť bude podsítí jiné podsítě.

Rozsah IPv4[editovat]

  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31  <- bity IP adresy
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|  |                     _______________________________________________________________________|
|  |                    |____________________Privátní_IP_adresy_(10.0.0.0/8)____________________|
|  |                                                                                            |
|  |                                                                                            |
|  |                                                                                            |
|  |                                                                                            |
|  |                                                                                            |
| 0|                        Adresy třídy A (0.0.0.0/1)                                          |
|  |                                                                                            |
|  |                                                                                            |
|  |                                                                                            |
|  |                                                                                            |
|  |                                                                                            |
|  |                                                                                            |
|  |                                                                                            |
|__|____________________________________________________________________________________________|
|  |  |                                                                                         |
|  |  |                                                                                         |
|  |  |                        Adresy třídy B (128.0.0.0/2)                                     |
|  | 0|                              ___________________________________________________________|
|  |  |                             |____________Privátní_IP_adresy_(172.16.0.0/12)_____________|
|  |  |                                                                                         |
|  |  |                                                                                         |
| 1|__|_________________________________________________________________________________________|
|  |  |  |                                      |______Privátní_IP_adresy_(192.168.0.0/16)______|
|  |  | 0|                                                                                      |
|  |  |  |                        Adresy třídy C (192.0.0.0/3)                                  |
|  | 1|__|______________________________________________________________________________________|
|  |  |  | 0|                        Adresy třídy D (Multicast, 224.0.0.0/4)                    |
|  |  | 1|__|___________________________________________________________________________________|
|  |  |  | 1|                        Adresy třídy E (Experimentální, 240.0.0.0/4)               |
|  |  |  |  |                                                                                   |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Rozměry ve svislém směru nejsou proporcionální. Například koncových IP adres (prefix /32) třídy A je celkem 231=2,147,483,648 a privátních IP adres 224=16,777,216, takže by správně měly být v poměru 128:1. Na obrázku jsou ale v poměru 16:1.

Jak podsíťovat[editovat]

Je vhodné připomenout tři základní principy:

  1. Podsíťování se používá pro hierarchické rozdělení sítě.
  2. IP adresa je 32bitové číslo.
  3. Maska rozděluje IP adresu na síťovou a hostovou část.

Hierarchické rozdělení sítě znamená, že administrátor sítě dostane přidělený rozsah IP adres (obyčejně ve formátu IP adresy sítě s prefixem). Tento rozsah pak použije, jak uzná za vhodné.

Administrátor může prefix zvyšovat, ale nemůže jej snižovat. V případě, že by prefix snížil, dostal by se do situace, kdy používá rozsah někoho jiného.

Administrátor dostane k dispozici část privátních adres 10.0.0.0/16. Protože má 3 sítě (zaměstnanci, návštěvy, administrace), které chce mít odděleně (kvůli tomu, aby zařízení neměla přístup ke stejným zdrojům - návštěvy se nemají dostat na stejné servery jako zaměstnanci, kteří se nemají míchat do administračních věcí), použije na přidělenou adresu podsíťování.

Rozdělení IP adresy na síťovou a hostovou část:

síťová | hostová
10.0.  |     0.0 <- prefix /16

Pro prefix /16 je třetí oktet problémový - podsíťování bude začínat tam. Je proto vhodné si problémový oktet rozepsat binárně:

síťová | hostová
       /16
10.0.  | 0000 0000.0 <- IP adresa v dekadicko-binárním zápisu

Administrátor má 3 sítě, pro jejich identifikaci bude potřebovat 2 bity; z prefixu /16 se tak stane prefix /18.

síťová | podsíťová | hostová
       /16         /18
10.0.  |     00    | 00 0000.0 <- podsíťová část (2 bity)

Dvě sítě by šly identifikovat jedním bitem: 0 pro první, 1 pro druhou. V případě více sítí je třeba více bitů. Počet bitů, které jsou potřeba, lze vypočítat z rovnice 2počet bitů=maximální počet sítí. Administrátor má 3 sítě, je tedy třeba najít 2počet bitů>=3. Protože počet sítí bude vždy mocnina dvou, je použito >=.

Jednotlivé sítě se identifikují, k dispozici jsou 2 bity:

00 <- zaměstnanci
01 <- návštěvy
10 <- administrace

Identifikátory se dosadí do rozepsané IP adresy:

síťová | podsíťová | hostová
       /16         /18
10.0.  |     00    | 00 0000.0 <- zaměstnanci
10.0.  |     01    | 00 0000.0 <- návštěvy
10.0.  |     10    | 00 0000.0 <- administrace

Tímto způsobem vznikly 3 podsítě, které se přepíší dekadicky.

10.0.0.0/18 <- zaměstnanci
10.0.64.0/18 <- návštěvy
10.0.128.0/18 <- administrace

Poznámky:

  • Při převodu z binárního zápisu se převádí všech osm binárních číslic mezi tečkami na jedno dekadické číslo.
  • Podsítě mají masku /18. Protože mají v hostové části 0, jedná se o IP adresy sítí.
  • Všechny podsítě jsou součástí sítě 10.0.0.0/16.

Na počet sítí[editovat]

Při podsíťování na počet podsítí je třeba zvolit správnou velikost (počet bitů) podsíťové části. To lze zjistit z rovnice 2počet bitů>=počet sítí, tj. zaokrouhlit nahoru log2(počet sítí).

Na počet zařízení[editovat]

Při podsíťování na počet zařízení je třeba zvolit správnou velikost (počet bitů) hostové části. To lze zjistit z rovnice 2počet bitů>=počet hostů + 2. Ze všech možností v hostové části se nesmí použít IP adresa sítě (samé 0) a broadcast adresa (samé 1), o které se počet "zařízení" (přesněji koncových IP adres) navýší; proto +2. Rovnice pro výpočet pak bude zaokrouhlit nahoru log2(počet zařízení + 2).

Reference[editovat]

  1. Přesněji řečeno, IP adresa je jednoznačně přiřazena k rozhraní zařízení (anglicky interface). Jedno zařízení může mít více rozhraní, jedno rozhraní může mít více IP adres. Nefunguje to ale obráceně (jedno rozhraní nemůže náležet více zařízením, jedna IP adresa nemůže být přidělena více rozhraním). IP adresa tedy jednoznačně identifikuje nejen rozhraní, ale i zařízení.