VLSM: serve the largest requirement first, each from the smallest block that fits (block size = 2^host bits, usable = block − 2).
A — 25 hosts → needs 32 addresses (30 usable): /27
- Network 192.168.10.0/27, mask 255.255.255.224
- Usable 192.168.10.1 – .30, broadcast .31
B — 22 hosts → /27 (30 usable)
- Network 192.168.10.32/27, mask 255.255.255.224
- Usable 192.168.10.33 – .62, broadcast .63
C — 8 hosts → a /29 gives only 6 usable, so /28 (14 usable)
- Network 192.168.10.64/28, mask 255.255.255.240
- Usable 192.168.10.65 – .78, broadcast .79
D — 2 hosts → /30 (2 usable)
- Network 192.168.10.80/30, mask 255.255.255.252
- Usable 192.168.10.81 – .82, broadcast .83
E — 2 hosts → /30
- Network 192.168.10.84/30, mask 255.255.255.252
- Usable 192.168.10.85 – .86, broadcast .87
192.168.10.88 – 192.168.10.255 is left free for future subnets.
— rhs