Уважаемые коллеги, сегодня мы с Вами продолжаем настраивать Ubuntu Server. В сегодняшней статье Вадим рассмотрит такие понятия как маршрутизация и маска сети.
Примечание: вместо слова маршрутизация часто упротребляют термин роутинг (от англ. route - маршрут).
В терминологии сетей TCP/IP маской подсети или просто "маской" называется битовая последовательность, определяющая, какая часть IP-адреса компьютера относится к адресу сети, а какая - к адресу самого узла в ней. Например, узел (компьютер) с IP-адресом 192.168.0.1 и маской подсети 255.255.255.0 находится в сети 192.168.0.0/24 с длиной префикса в 24 бита.
Примечание: сетевой префикс - это сокращенное обозначение маски.
Другой вариант определения - это определение подсети IP-адресов. Например, с помощью маски подсети можно указать, что один диапазон адресов будет в одной подсети, а другой, соответственно, - в другой.
Чтобы получить адрес сети, зная IP-адрес и маску, необходимо применить к ним операцию поразрядной конъюнкции (логическое И). Например, в случае более сложной маски:
IP-адрес: 11000000 10101000 00000001 00000010 (192.168.1.2) |
Маска подсети: 11111111 11111111 11111110 00000000 (255.255.254.0) |
Адрес сети: 11000000 10101000 00000000 00000000 (192.168.0.0) |
Разбиение одной большой сети на несколько маленьких подсетей позволяет упростить маршрутизацию и уменьшить широковещательный трафик, который, со временем, может вылиться в широковещательный шторм.
Как рассчитать маску? Например, нам нужна подсеть для 28 компьютеров + 2 спец адреса (номер сети и широковещательный адрес, они всегда должны учитываться), т.е. нам нужно 30 IP адресов. Ищем ближайшую большую степень двойки, 2^5 = 32.
Хотя это не широко используемый способ (насколько я знаю), я считаю маски так: от 256 отнимем 32 т.е. 256-32 = 224, получим маску 255.255.255.224. Наложив маску на IP получим диапазон доступных адресов. Для сети 192.168.0.0 и маски 255.255.255.224 получается диапазон от 192.168.0.0-31, следующая подсеть будет 192.168.0.32-63, и т.д. с шагом в 32.
Маршрутизация между сетями и маски подсетей
Бесклассовая адресация (Classless Inter-Domain Routing - CIDR) это метод IP-адресации, позволяющий гибко управлять пространством IP-адресов, не используя жёсткие рамки классовой адресации. Использование этого метода позволяет экономно использовать ограниченный ресурс сетевых адресов, поскольку здесь можно применять различные маски к различным подсетям.
Для удобства можно воспользоваться вот этой таблицей масок CIDR
IP/маска | Всего IP в подсети | Маска | Всего адресов | Класс сети |
a.b.c.d/32 | +0.0.0.0 | 255.255.255.255 | 1 | 1/256 C |
a.b.c.d/31 | +0.0.0.1 | 255.255.255.254 | 2 | 1/128 C |
a.b.c.d/30 | +0.0.0.3 | 255.255.255.252 | 4 | 1/64 C |
a.b.c.d/29 | +0.0.0.7 | 255.255.255.248 | 8 | 1/32 C |
a.b.c.d/28 | +0.0.0.15 | 255.255.255.240 | 16 | 1/16 C |
a.b.c.d/27 | +0.0.0.31 | 255.255.255.224 | 32 | 1/8 C |
a.b.c.d/26 | +0.0.0.63 | 255.255.255.192 | 64 | 1/4 C |
a.b.c.d/25 | +0.0.0.127 | 255.255.255.128 | 128 | 1/2 C |
a.b.c.0/24 | +0.0.0.255 | 255.255.255.000 | 256 | 1 C |
a.b.c.0/23 | +0.0.1.255 | 255.255.254.000 | 512 | 2 C |
a.b.c.0/22 | +0.0.3.255 | 255.255.252.000 | 1024 | 4 C |
a.b.c.0/21 | +0.0.7.255 | 255.255.248.000 | 2048 | 8 C |
a.b.c.0/20 | +0.0.15.255 | 255.255.240.000 | 4096 | 16 C |
a.b.c.0/19 | +0.0.31.255 | 255.255.224.000 | 8192 | 32 C |
a.b.c.0/18 | +0.0.63.255 | 255.255.192.000 | 16 384 | 64 C |
a.b.c.0/17 | +0.0.127.255 | 255.255.128.000 | 32 768 | 128 C |
a.b.0.0/16 | +0.0.255.255 | 255.255.000.000 | 65 536 | 256 C = 1 B |
a.b.0.0/15 | +0.1.255.255 | 255.254.000.000 | 131 072 | 2 B |
a.b.0.0/14 | +0.3.255.255 | 255.252.000.000 | 262 144 | 4 B |
a.b.0.0/13 | +0.7.255.255 | 255.248.000.000 | 524 288 | 8 B |
a.b.0.0/12 | +0.15.255.255 | 255.240.000.000 | 1 048 576 | 16 B |
a.b.0.0/11 | +0.31.255.255 | 255.224.000.000 | 2 097 152 | 32 B |
a.b.0.0/10 | +0.63.255.255 | 255.192.000.000 | 4 194 304 | 64 B |
a.b.0.0/9 | +0.127.255.255 | 255.128.000.000 | 8 388 608 | 128 B |
a.0.0.0/8 | +0.255.255.255 | 255.000.000.000 | 16 777 216 | 256 B = 1 A |
a.0.0.0/7 | +1.255.255.255 | 254.000.000.000 | 33 554 432 | 2 A |
a.0.0.0/6 | +3.255.255.255 | 252.000.000.000 | 67 108 864 | 4 A |
a.0.0.0/5 | +7.255.255.255 | 248.000.000.000 | 134 217 728 | 8 A |
a.0.0.0/4 | +15.255.255.255 | 240.000.000.000 | 268 435 456 | 16 A |
a.0.0.0/3 | +31.255.255.255 | 224.000.000.000 | 536 870 912 | 32 A |
a.0.0.0/2 | +63.255.255.255 | 192.000.000.000 | 1 073 741 824 | 64 A |
a.0.0.0/1 | +127.255.255.255 | 128.000.000.000 | 2 147 483 648 | 128 A |
0.0.0.0/0 | + 255.255.255.255 | 0000.0000.0000.0000 | 4 294 967 296 | 256 A |
Как же рассчитать вручную статическую маршрутизацию и объединение маршрутов?
Предположим, за роутером у нас есть сети 192.168.0.0/24 и 192.168.1.0/24, до роутера сеть 10.0.0.0/24, IP роутера -10.0.0.254. Для того чтобы не прописывать 2 маршрута, можно использовать объединение сетей маской, т.е. мы получим сеть 192.168.0.0/23 (255.255.254.0), теперь достаточно указать всего один маршрут.
Так можно сделать один маршрут во множество сетей, доступных через один роутер, не прописывая их по одной.
Пример построения сети используя CIDR
Предположим, у нас есть организация: «Рога и Копыта» и 2 дочерних - «Головы и Хвосты» и «Кожа и кости». Все компании подключены к Интернету через ADSL. Также у нас есть удаленный клиент. Дочерние компания и клиент подключаются к главной через VPN тоннели.
Цель: создать наиболее оптимальные статические маршруты используя CIDR
Вот так будет выглядеть наша сеть на карте (фото ниже кликабельно):
Примечание: В таблицах ниже показаны только маршруты которые относятся к этим организациям. ADSL модемы, в принципе, не важны и показаны только для завершенности схемы и мы не будем выделять для них отдельные сети.
Ниже показано, как будут выглядеть таблицы маршрутизации на роутерах компаний.
RiK R1 – главный роутер, на нем поднят VPN (PPTP) сервер защищенного соединения и он отвечает за всю маршрутизацию между компаниями.
Вот такая у него будет таблица маршрутизации:
Destination | Netmask | Gateway |
192.168.254.0 | 255.255.255.0 | Непосредственно |
192.168.0.0 | 255.255.255.0 | Непосредственно |
192.168.1.0 | 255.255.255.0 | Непосредственно |
192.168.4.0 | 255.255.252.0 | 192.168.0.253 |
172.30.0.0 | 255.255.255.0 | 192.168.254.1 |
172.30.4.0 | 255.255.254.0 | 192.168.254.2 |
Для роутера RiK R2 - своя
Destination | Netmask | Gateway |
192.168.4.0 | 255.255.255.0 | Непосредственно |
192.168.5.0 | 255.255.255.0 | Непосредственно |
192.168.6.0 | 255.255.255.0 | Непосредственно |
0.0.0.0 | 0.0.0.0 | 192.168.0.254 |
Для роутера GiH R1
Destination | Netmask | Gateway |
192.168.254.0 | 255.255.255.0 | Непосредственно |
192.168.0.0 | 255.255.0.0 | 192.168.254.254 |
172.30.0.0 | 255.255.255.0 | Непосредственно |
172.30.4.0 | 255.255.254.0 | 192.168.254.254 |
Для маршрутизатора KiK R1
Destination | Netmask | Gateway |
192.168.254.0 | 255.255.255.0 | Непосредственно |
192.168.0.0 | 255.255.0.0 | 192.168.254.254 |
172.30.0.0 | 255.255.255.0 | 192.168.254.1 |
172.30.4.0 | 255.255.254.0 | Непосредственно |
172.30.5.0 | 255.255.254.0 | Непосредственно |
И - для удаленного клиента
Destination | Netmask | Gateway |
192.168.254.0 | 255.255.255.0 | Непосредственно |
192.168.0.0 | 255.255.0.0 | 192.168.254.254 |
172.30.0.0 | 255.255.248.0 | 192.168.254.254 |
Как это все работает? Предположим, клиент с адресом 172.30.5.31 из ООО «Кожа и кости» обращается к серверу RiK Server Serv1 S1 на IP 192.168.0.1
Трасса (tracert) прохождения пакетов (данных) для него будет выглядеть так:
KiK R1 → RiK R1 → RiK Server Serv1 S1
172.30.5.254 → 192.168.254.254 → 192.168.0.1
Запустим команду «ping» с этого же клиента на компьютер с IP 192.168.4.12
KiK R1 → RiK R1 → RiK R2 → Comp 192.168.4.12
172.30.5.254 → 192.168.254.254 → 192.168.0.253 → 192.168.4.12
Клиент с IP 192.168.5.54 обращается к серверу GiH Server Serv1 с IP 172.30.0.1
RiK R2 → RiK R1 → GiH R1 → GiH Server Serv1
192.168.5.254 → 192.168.0.254 → 192.168.254.1 → 172.30.0.1
В следующей статье мы с Вами рассмотрим настройку сети на нашем сервере из консоли терминала.