How can I identify the actual network prefix? I mean, for a subnet mask of 255.255.255.0, it's obvious that the network ranges from x.y.z.1 to x.y.z.254 where I am completly free in choosing x, y and z.
Da mesma forma que com máscaras 'regulares' - usando operações bit a bit ( &
é AND, |
é OR, ~
NÃO é):
-
network = endereço & mask (todos os 0 bits na máscara devem ser 0 no endereço de rede )
-
transmissão de sub-rede = endereço | ~ mask (todos os 0 bits na máscara devem ser 1 no endereço de broadcast )
-
endereços de host = [rede + 1 .. broadcast-1]
From the binary represenation of the subnet mask 11111111.1111111.11111100.00000000 I would derive, that the valid adresses ranges from x.y.252.1 to x.y.255.254 - is that correct?
Do I have - with this subnetmask - any kind of influence on the second last number of the adress? I mean, could I setup the range from x.y.1.1 to x.y.4.254 as well?
Basicamente, você pode escolher todos os bits que correspondem a 1
na máscara. Então, no seu exemplo, você pode escolher qualquer z contanto que os dois últimos bits (e todos os bits t ) sejam zero, e este será o início endereço. Isso fornece 64 sub-redes diferentes com os mesmos x.y
: 192.168.0.0/22, 192.168.4.0/22, 192.168.8.0/22 e assim por diante (terminando em .3.255, .7.255, .15.255 e assim por diante) .
Você está certo de que x.y.2.1 e x.y.5.254 pertencerão a sub-redes separadas; x.y.0.0 / 22 e x.y.4.0 / 22, respectivamente. (Mas ambos pertenceriam ao mesmo x.y.0.0 / 21.)
So, where is the actual difference between extending the subnetmask and connecting multiple networks using routers? (Except for the physical layout ofc.) Are there differences in terms of performance, or any other limitations?
Vou deixar isso para outra pessoa responder.
If I would use 4 routers to connect four /24 networks, they still need to have different Network-Prefixes, right?
Sim. Você não pode rotear entre duas redes com o mesmo prefixo.
Could a single DHCP (Windows Server) provide Adresses for a /22 Network as well?
Sim. Todos os servidores DHCP modernos devem permitir que você configure qualquer tamanho de prefixo.
Ferramentas como ipcalc
ou Python podem ser úteis para gerar uma lista de sub-redes:
>>> import ipaddress
>>> sub = ipaddress.IPv4Network("192.168.0.0/22")
>>> sub.network_address
IPv4Address('192.168.0.0')
>>> sub.broadcast_address
IPv4Address('192.168.3.255')
>>> sup = ipaddress.IPv4Network("192.168.0.0/16")
>>> list(sup.subnets(22-16))
[IPv4Network('192.168.0.0/22'), IPv4Network('192.168.4.0/22'),
IPv4Network('192.168.8.0/22'), IPv4Network('192.168.16.0/22'),
...]
>>> for x in sup.subnets(22-16):
>>> print(x)
192.168.0.0/22
192.168.4.0/22
192.168.8.0/22
...