Представьте ситуацию: некая компания только начинает свою деятельность, для успешного ведения которой закуплена сотня, к примеру, компьютеров.
Планируется, что 10 из них будут работать в бухгалтерии, 5 — в отделе аналитики, 25 — находиться дома у удаленных сотрудников, остальные 60... Впрочем, не так уж важно, где именно они будут стоять, и кто на них будет работать. Главное в том, что сеть получается далеко не однородной, разные группы пользователей будут исполнять на ней весьма различные задачи. Из соображений элементарной безопасности* необходимо сделать так, чтобы удаленные сотрудники не совали свой нос, к примеру, в дела бухгалтерские, зато могли свободно «сливать» добытую информацию в отдел аналитики.
Положение усугубляется тем, что в бухгалтерии компьютеры физически связаны обычным Ethernet*, а в остальных отделах компании используются более сложные технологии: ATM*, FDDI и так далее. В этом случае физической связи между разными фрагментами сети не получится, придется организовывать связь логическую.
Еще один немаловажный момент: внутрисетевой трафик. Пакеты данных, отправленные от одной бухгалтерской машины к другой, не должны бродить по всей сети — необходимо сделать так, чтобы они не выходили за пределы своего сетевого фрагмента. Иначе нагрузка на сеть неоправданно увеличится, и хорошему сисадмину обязательно станет стыдно.
Как одним махом решить все эти проблемы? Необходимо разбить всю корпоративную сеть на некие логические подразделения, подсети. Давайте приступим к этому увлекательному занятию. Сначала внимательно ознакомимся с общими принципами IP-адресации. Из них мы узнаем, что нам необходимо построить сеть класса C, к которой можно «привязать» не менее 256 IP-адресов. Зачем так много, ведь у нас всего сто компьютеров?! Не торопитесь. Во-первых, сетей класса D и ниже просто не предусмотрено. Во-вторых, с вашей помощью компания начнет быстро развиваться, и очень скоро потребуются дополнительные IP-адреса для вновь приобретенных компьютеров. Кроме того, дополнительные адреса придется выделить для других устройств типа маршрутизаторов или 3G-мобильника шефа. И это еще не все. Однако давайте по порядку.
Мы строим корпоративную сеть*, свободный доступ в которую из Интернета для нас нежелателен. Поэтому необходимо выбрать такой IP-адрес для сети, который исключен из таблиц глобальной маршрутизации. Например, 192.168.1.0.
Приступаем к конструированию наших подсетей. Операция эта — сугубо логическая, заключается она в некотором преобразовании имеющихся в нашем распоряжении IP-адресов. Как мы помним, IP-адрес состоит из двух частей: номер (префикс) сети и номер подключенного к ней устройства (узла, хоста). Для сети класса C номер хоста обозначается последним октетом IP-адреса, префикс сети — тремя первыми октетами. В нашем случае это будет выглядеть так: 192.168.1.x, или (в двоичном представлении) так: 11000000. 10101000.00000001.xххххххх
А что, если биты последнего октета (представленные выше как x) будут обозначать не только номер устройства, подключенного к сети, но и еще и номер подсети? Чем больше битов отведем под номер подсети, тем больше подсетей можно будет построить. Отведем один бит — сможем построить две подсети (одна с номером 0, вторая — с номером 1). Отведем два бита — сможем построить четыре подсети (с номерами 00, 01, 10 и 11). Одним словом, возможное количество подсетей будет выражаться как 2n, где n — количество битов, отведенных под номер подсети. Но сразу нужно оговориться: чем больше подсетей будет построено, тем меньше устройств можно будет подключить к каждой из них, ведь тем меньше битов IP-адреса будет отведено под номер хоста. Нетрудно догадаться, что общее число хостов для подключения к подсети (в сети класса C) не будет превышать 28-n. Но хватит голых цифр, вернемся к нашей новорожденной компании и ее сети.
Итак, сколько всего компьютеров нам нужно подключить? Сто. Другими словами, нам необходимо выделить не менее ста IP-адресов для всех хостов. Сколько битов достаточно, чтобы составить не менее ста различных комбинаций нулей и единичек? Семь, поскольку 26 = 64, а 27 = 128. Значит, в 32-битном IP-адресе первые 24 бита (3 октета) оставляем под префикс сети, а последние 7 битов — под номера хостов. Для номера подсети остается 1 бит. Таким образом, мы сможем построить две подсети с номерами 0 и 1 соответственно:
11000000. 10101000.00000001.0ххххххх
11000000. 10101000.00000001.1ххххххх
В каждой из этих подсетей мы сможем выделить по 128 IP-адресов — более чем достаточно. Но нам ведь необходимо построить не менее трех подсетей: одна — для бухгалтерии, вторая — для отдела аналитики и удаленных сотрудников, третья — для остальных 60 машин. Как поступим? Очень просто: 60 машин подключим к подсети с номером 0, а подсеть номер 1 разобьем еще на две под-подсети. Как будут выглядеть IP-адреса устройств, подключенных к этим под-подсетям? Вот так:
11000000. 10101000.00000001.10хххххх
11000000. 10101000.00000001.11хххххх
В этом случае в каждой из под-подсетей мы сможем выделить по 26 = 64 IP-адреса. Вполне достаточно и для аналитиков, и для бухгалтеров.
Заметьте — в любой сети (подсети) два IP-адреса всегда заняты. Один является адресом самой сети (подсети). Второй всегда обозначает широковещательный адрес данной сети (подсети)Теперь давайте зададимся следующим вопросом: как мы будем поступать, если понадобится разослать информацию всем устройствам, подключенным к одной из наших подсетей? Собственно, тут нам придумывать нечего, все давно придумано за нас. Для этого придется воспользоваться так называемым широковещательным адресом, который всегда содержит единицы в битах IP-адреса, следующих за префиксом сети и номером подсети. В сети нашей компании широковещательные адреса будут выглядеть так (в двоичном и десятичном представлении соответственно):
- Для всей сети в целом:
- 11000000.10101000.00000001.11111111;
- 192.168.1.255.
- Для подсети 0:
- 11000000.10101000.00000001.01111111;
- 192.168.1.127.
- Для подсети 1, объединяющей подсети 10 и 11:
- 11000000.10101000.00000001.11111111;
- 192.168.1.255.
- Для под-подсети 10:
- 11000000.10101000.00000001.10111111;
- 192.168.1.191.
- Для под-подсети 11:
- 11000000.10101000.00000001.11111111;
- 192.168.1.255
Обратите внимание: широковещательный адрес для сети в целом, а также для подсетей 1 и 11, совпадают. Как же быть, если мы захотим отправить информацию только в подсеть 11? Об этом сказано чуть нижеЧто ж, в основном деление на подсети завершено. Но ведь оно пока что существует лишь в нашем воображении. Ведь маршрутизаторы* в нашей фирме ничего не знают о том, сколько битов мы отвели под префикс сети и номер подсети. Нужно им подсказать. Для этого рассчитывается так называемая сетевая маска. Маска очень похожа на обычный IP-адрес, и в двоичном представлении записывается следующим образом: все биты хостовой части устанавливаются в ноль, а биты сетевого префикса и номера подсети — в единицу. Точно так же, как и обычный IP-адрес, сетевую маску можно представить в десятичном представлении, для удобства:
- Маска для любой сети класса C:
- 11111111.11111111.11111111.00000000;
- 255.255.255.0.
- Маска для подсетей с однобитным номером (0 или 1):
- 11111111.11111111.11111111.10000000;
- 255.255.255.128.
- Маска для подсетей с двухбитным номером (00, 01, 10 или 11):
- 11111111. 11111111.11111111.11000000;
- 255.255.255.192.
Для каждого устройства в сети можно указать IP-адрес и сетевую маску |
Чтобы понять, какой гибкости мы добились, используя сетевую маску и разбиение на подсети, давайте попробуем разослать сообщения всем устройствам, подключенным к нашей сети. Для этого придется отправить пакеты информации по широковещательному адресу 192.168.1.255, при этом указав сетевую маску 255.255.255.0. Если же необходимо ограничить круг получателей информации только устройствами подсети 11 (аналитический отдел, как мы помним) отправим ее по тому же широковещательному адресу, но сопроводим другой маской: 255.255.255.192. Более того, мы можем отправить информацию сразу на подсети 10 и 11 (бухгалтерия и аналитика), оставив ее недоступной для остальных устройств сети. В этом случае широковещательным адресом будет все тот же 192.168.1.255, а маской — 255.255.255.128.
А еще гибче наша сеть станет, если какой-либо компьютер снабжен сразу тремя сетевыми адаптерами. Тогда каждый из них может быть настроен под отдельный IP-адрес, принадлежащий какой-либо из трех подсетей. Такая станция будет одновременно принадлежать всем трем подсетям. Это происходит потому, что IP-адрес, вообще говоря, присваивается не компьютеру, а его сетевым интерфейсам, которых, кстати, может быть несколько.
На данной иллюстрации показаны подсети сети класса B |
Вот так все просто и сложно одновременно. Понимание этих и других подобных принципов позволяет сисадмину напускать на себя важный вид, пить чай и часами болтать с секретаршей. Что ж, теперь он вас не обманет. Как только начнет задаваться, подойдите и громогласно спросите: "А у тебя все маски правильно рассчитаны? Что-то трафик в последнее время не слишком эффективно маршрутизируется, по моим наблюдениям..."
Ссылки по теме
Статья получена: hostinfo.ru