Каждое сетевое устройство имеет свой уникальный физический (аппаратный) адрес, называемый MAC-адресом
(Media Access Control, управление доступом к среде). Таким образом, у
всех сетевых карт МАС-адреса разные – в мире нет сетевых устройств с
двумя одинаковыми MAC-адресами. MAC-адрес присваивается устройству
изготовителем оборудования, хотя он может быть временно и изменен, если
это зачем-то нужно. Для адресации в локальной сети (например, для работы
коммутатора) по большому счету требуется лишь MAC-адрес сетевой карты
или другого сетевого оборудования. Вообще говоря, систем MAC-адресов
существует несколько, но в рассматриваемых Ethernet-устройствах
применяется только одна из них. Адрес в ней состоит из шести байтов,
т. е. всего может быть 2 48, или почти 3x10 14
(триста триллионов или, иначе, миллионов миллионов) уникальных адресов.
Согласно подсчетам IEEE, этого запаса адресов хватит по меньшей мере до
2100 года.
Но для функционирования локальной сети,
особенно с выходом в Интернет, одного MAC-адреса недостаточно.
Коммутаторы по-прежнему будут идентифицировать оборудование по
MAC-адресу, но друг к другу компьютеры будут обращаться по протоколу IP,
ведающему доставкой пакетов, и общему для всех таких сетей, независимо
от их физической сущности. Адреса, которые использует такой протокол,
так и называются IP-адресами, а уровень, на котором они действуют, называется сетевым уровнем.
Для безошибочной идентификации уникальный MAC-адрес должен быть
преобразован в IP-адрес (который может быть вовсе и не уникальным), и
этим занимаются специальные протоколы.
Заметьте, что IP расшифровывается, как
internet protocol. Из этого названия отчетливо видна разница между
Интернетом с прописной буквы и Интернетом со строчной, о которой мы
говорили во введении. В данном контексте internet не имеет ни
малейшего отношения ко Всемирной Сети – просто в ее основе лежат те же
технические принципы, что и в небольших локальных сетях, отсюда широкая
известность термина «IP-адрес».
Очень важно также иметь понятие о символьных именах узлов, иначе называемых символьными адресами.
Дополнительную путаницу в мозги пользователей вносит существование двух
разновидностей таких имен: чаще всего это обычные имена, размером до 16
символов. Их также называют NetBIOS-именами, по названию самого
древнего из сетевых протоколов Windows. Вторая разновидность –
специальные DNS-имена (от Domain Name System, система доменных имен),
хорошо всем знакомые по интернет-адресам. Они образуют иерархию,
подробности которой мы рассмотрим в главе 13 «Основы Интернета для пользователя».
DNS-имя самого нижнего уровня (непосредственно имя узла) обычно
совпадает с NetBIOS-именем, хотя это и необязательно. Очень важно
понимать, что DNS-имена (а также таблицы DNS, серверы DNS и прочее) в
большинстве случаев нас, как пользователей локальной сети, совершенно не
касаются и начинают действовать, лишь когда мы выходим в Интернет. DNS –
это альтернативный механизм присвоения удобных символьных имен. Он, как
правило, задействуется в случае организации локальной сети по доменному
принципу (с выделенным сервером), но даже в этом случае не является
обязательным. Зато он очень удобен при необходимости как-то засветить
локальную сеть во внешнем мире.
По сути любые имена компьютера – то же
самое, что IP-адреса, и для нас возникает задача установить
соответствие, ибо здесь не существует такого удобного механизма, как с
MAC-адресами сетевых карт, которые просто присваиваются на заводе раз и
навсегда. Чтобы перейти к вопросам адресации сетевых ресурсов,
представляющим самую большую сложность для понимания из-за разнообразия
способов (по сути установление определенной конфигурации сети и есть
выбор одного из способов адресации), нужно сначала усвоить основные
принципы присвоения IP-адресов.
Как следует из изложенного, IP-адреса не
присваиваются раз и навсегда, и должны каким-то образом устанавливаться
при конфигурации сети. Существует два основных способа их присвоения:
статический и динамический. Статический способ предполагает
постоянное присвоение адреса – таким образом в Интернете, например,
устанавливаются адреса постоянных ресурсов (серверов). Адреса тех, кто
появляется в сети время от времени, подобно простым пользователям,
назначаются динамически – они могут меняться от раза к разу и
даже просто по истечении определенного времени. Так, с одной стороны,
экономится пространство адресов, с другой – упрощается процедура доступа
к сети, пользователям которой не приходится вникать во все эти
тонкости.
Программа для автоматического динамического назначения IP-адресов, называемая DHCP-сервером
(Dynamic Host Configuration Protocol), ныне входит практически во все
аппаратные и программные маршрутизаторы. Поэтому, когда речь заходит о
конфигурации адресного пространства локальной сети, нет никакой
необходимости использовать статические адреса, которые приходится
вручную назначать каждому узлу данной сети. Достаточно убедиться, что
DHCP-сервер на маршрутизаторе включен (Enabled), и на всех остальных устройствах установить опцию Получать IP-адрес автоматически.
Отметим, что многие советы, которые вы
найдете в Сети или в инструкциях производителей, расходятся с этой
рекомендацией, но критично это лишь тогда, когда DHCP-сервера на вашем
маршрутизаторе вовсе не существует. Если у вас в сети оказалось два
устройства, имеющих DHCP-сервер, то на одном из них его следует
отключить (Disabled) или убедиться, что он отключен по умолчанию. Обычно
так бывает, если в сети оказываются, например, две и более беспроводных
точки доступа или точка доступа и отдельно маршрутизатор стандарта
ADSL. Мы в дальнейшем постараемся избегать таких излишеств, чтобы не
множить сущности. Но иногда «лишний» DHCP-сервер обнаруживается в
довольно неожиданных местах. На рис. 5.1 приведен пример размещения
пунктов управления DHCP-сервером в меню сетевого файлового хранилища
I-Stor 607. Рис. 5.1. Пример отключенного DHCP-сервера (файловое хранилище I-Stor 607)
Крупнейший
недостаток автоматического присвоения адреса через DHCP – то, что
сетевые устройства при этом определяются значительно медленнее, и после
включения всех устройств могут пройти минуты, пока они будут видны в
«сетевом окружении» или хотя бы просто доступны. Чтобы ускорить этот
процесс, можно пойти на компромисс – для тех ресурсов, которые
используются часто, установить соответствие IP-адреса и имени компьютера
принудительно. К этому вопросу мы еще вернемся, а сейчас обратимся к
основным принципам образования IP-адреса и его структурой.
Для интернет-ресурсов IP-адреса выделяются
специальными уполномоченными региональными центрами. Мировым адресным
пространством Интернета ведают организации IANA и ICANN: очередные
резервы выделяются согласно базе IANA, а координация всей деятельности
по распределению IP-адресов и, соответственно, доменных имен
осуществляется ICANN. Пять существующих региональных регистратур
(Regional Internet Registry, RIR) получают от IANA блоки адресов,
которые затем распределяются частями по локальным регистраторам (LIRs).
Только в России таких локальных регистраторов несколько сотен (в отличие
от регистраторов доменных имен, которых всего около двух десятков), но
деятельность их прозрачна, диапазоны выделенных им адресов известны, и
потому по IP-адресу сравнительно просто узнать географическое
расположение или национальную принадлежность данного адреса (как
IP-адреса, так и доменного имени) – см., например, сервис 2ip.ru.
Но на каждый домашний маршрутизатор
уполномоченных регистраторов не напасешься. Способ принудительного
присвоения IP-адреса еще на производстве, как это делается для
MAC-адресов, для оборудования локальных сетей не подходит. В действующей
версии протокола IPv4, где адресов всего 4 294 967 296 (2 32),
уже не хватает статических адресов даже для интернет-узлов в глобальной
сети – 3 февраля 2011 агентство IANA распределило последние 5 блоков
адресов региональным интернет-регистратурам. Всеобщий переход в
Интернете на новую версию IPv6 (где адресов гораздо больше – 2 128,
примерно по 300 миллиардов на каждого жителя Земли) был опробован 8
июня 2011 года, объявленное «Всемирным днем IPv6». Проблемы возникли не
более чем у одного пользователя из двух тысяч, – программа перехода
предусматривает постепенное замещение одного протокола другим. А для
локальных сетей, тем более домашнего масштаба, вообще ничего не
изменится – там принципы присвоения адресов совсем другие, и поменять их
так же трудно, как, например, единовременно сменить систему телефонной
нумерации во всем мире.
По этим причинам приходится идти на всякие
сложности. Для локальных сетей, подсоединенных к глобальной сети,
действует специальный механизм NAT (Network Address Translation,
преобразование сетевых адресов), когда маршрутизирующее устройство извне
адресуется присвоенным ей адресом из сети провайдера. Имеется в виду,
что этот адрес назначает провайдер, причем обычно точно так же
динамически (автоматически), и пользователю об этом задумываться не
приходится. Внутри же локальной сети IP-адреса (в том числе и самого
маршрутизатора) присваиваются из предопределенных диапазонов адресов,
которые в глобальной сети не встречаются. Механизм NAT, встроенный в
маршрутизатор, и преобразует локальный адрес в адрес внешней сети.
Особенностью этого механизма является то, что все компьютеры такой
локальной сети извне выглядят как один-единственный IP-адрес. Для того
чтобы их можно было различать, придется присоединить вашу сеть напрямую к
провайдерской сети без всяких NAT, и тогда распределением адресов вы
уже заниматься не сможете – эта обязанность будет возложена на
маршрутизатор провайдера. Естественно, на практике так почти никто не
поступает, потому что это неудобно и хлопотно всем сторонам (исключение –
если у вас дома размещен собственный стационарный веб-сервер и,
соответственно, заключен отдельный договор с провайдером).
Для присвоения IP-адресов в локальной сети
стандартами RFC 1918 и RFC 1597 отведено три их диапазона, каждый из
которых подразумевает сеть определенного масштаба:
♦ 10.0.0.0 – 10.255.255.255 (сети класса A);
♦ 172.16.0.0 – 172.31.255.255 (сети класса B);
♦ 192.168.0.0 – 192.168.255.255 (сети класса C).
Такие адреса называют частными,
внутренними, локальными или «серыми» (напомним, что эти адреса не
употребляются в сети Интернет). Класс A – огромные сети, которые могут
содержать до 2 24 (16777216) адресов, класс B – до 2 16
(65536) адресов, класс С – маленькие сети, содержащие 256 адресов.
Различных частных сетей класса С может быть 255 (в соответствии со
вторым справа элементом адреса), сетей класса B – всего 16 (второй слева
элемент, который может изменяться от 16 до 31) и сетей класса А – всего
одна. Разумеется, сетей с одинаковыми диапазонами адресов, скрытых от
внешнего мира за NAT, в разных местах может быть сколько угодно много.
Самый первый в локальной сети номер с
нулевым адресом (например, для сети класса С – 192.168.1.0) будет
номером самой сети, следующий (192.168.1.1) – обычно представляет
маршрутизатор, если он имеется. Последний адрес (192.168.1.255)
называется широковещательным – отправленный на него пакет будет
доставлен всем узлам в сети (см. далее подробности функционирования
протокола UDP). Потому максимальное число устройств в подсети может быть
меньше, чем теоретически возможное число адресов.
Не следует считать, что количество адресов
и, соответственно, масштаб сети может устанавливаться произвольно.
Например, в адресе 192.168.1.1 оборудование само определит первые три
элемента, как адрес сети, а лишь последний – как адрес устройства. Для
особо любознательных скажем, что это делается по самым первым битам
адреса (для класса A адрес в двоичной форме начинается с 0, для класса B
– с 10, для класса С – со 110).
Но масштаб сети устанавливать все-таки
приходится – вдруг вы хотите зачем-то использовать разрешенный диапазон
лишь частично (и правда – кому может понадобиться единая локальная сеть,
содержащая 16777216 узлов?). Какая часть IP-адреса узла сети относится к
адресу сети, а какая – к адресу самого узла в этой сети, задается с
помощью специальной битовой маски (маски подсети, или просто
маски сети). Для представления маски используется та же форма, что и для
самого IP-адреса, причем в позициях номера сети в двоичном
представлении этой формы должны стоять логические единицы, а в позициях,
представляющих возможные номера устройств, – нули. Все логические
единицы во всех двоичных разрядах содержат число 255, все логические
нули – число 0. Потому маска для сети класса С обычно выглядит, как,
например, 255.255.255.0. Применение к полученному откуда-то адресу и
маске операции «логического И» даст нам адрес сети, из которой поступил
сигнал:
IP-адрес: 11000000 10101000 00000001 00000010 (192.168.1.2)
Маска подсети: 11111111 11111111 11111111 00000000 (255.255.255.0)
Адрес сети: 11000000 10101000 00000001 00000000 (192.168.1.0)
Теперь, если мы захотим
просканировать локальную сеть (подобно тому, как это делает описываемая
далее программа MyLanViewer), нам достаточно узнать адрес того
устройства, на котором мы находимся, а дальше просто перебрать все
адреса в соответствии с заданной маской. Например, для случая,
показанного ранее, это будут адреса 192.168.1.1 – 192.168.255.254.
Наивысшее возможное значение маски для всех
классов сетей равно 255.255.225.255 – естественно, все единицы во всех
разрядах есть случай вырожденный, но теоретически возможный. Нижние
границы диапазонов возможных масок для сетей различных классов таковы:
♦ для класса А – от 255.0.0.0;
♦ для класса B – от 255.255.0.0;
♦ для класса С – от 255.255.255.0.
Конечно, на практике нет никаких
рациональных соображений для того, чтобы в домашних условиях
пользоваться сетями класса А или В – практически все сети даже в
довольно больших офисах имеют адреса типа 192.168.Х.0 (а если
компьютеров и больше 255, то их удобнее разбить на несколько подсетей с
адресами из того же диапазона). Но иногда адреса из диапазонов А или В
все же встречаются в рекомендациях, и тут важно понимать, что никаких
теоретических препятствий для их применения нет.
Что такое порт и зачем он нужен?Чтобы
жизнь пользователям не казалась слишком простой, в протоколе TCP,
который занимается сборкой поступивших по сети пакетов, предусмотрено
понятие порта. К сожалению, нигде это понятие толком не
разъясняется, а имеющиеся разъяснения только затемняют смысл. Порт – это
просто число, дополнение к сетевому адресу, с целью образования
виртуального канала передачи данных для конкретного приложения или типа
приложений. Если бы портов не было, при передаче вперемешку различных
пакетов одновременно по одной линии было бы гораздо сложнее разделить,
что относится к загружаемому в данный момент в браузере сайту, что – к
получаемому тут же электронному письму, а что – к ведущейся одновременно
со всем этим вебтрансляции видео. Всем приложениям пришлось бы самим
просматривать все поступающие пакеты, а так сразу отфильтровываются
только нужные.
Порт идентифицируется номером, который
может быть в диапазоне от 0 до 65535. При передаче по сети номер порта в
заголовке пакета служит для адресации конкретного приложения и
конкретного, принадлежащего только ему, сетевого соединения. Номера
портов, используемых многими службами, стандартизированы и зафиксированы
в списке, ведущемся организацией IANA. Например, за протоколом HTTP
закреплен 80-й порт, поэтому все веб-серверы принимают запросы именно
через этот порт. Почтовые серверы, работающие по протоколу POP3,
используют 110-й порт и т. д. Кроме того, есть номера портов не
стандартизированные, но используемые широко распространенными
программами и потому хорошо известные – например BitTorrent tracker
работает по умолчанию через порт 6969.
Как правило, самому пользователю
манипулировать с номерами портов не приходится. Но заблокировав через
сетевой экран тот или иной порт, можно отрубить данному приложению выход
в сеть. Это можно сделать не только на вашем компьютере, но и где-то на
внешнем сервере или маршрутизаторе. Поэтому некоторые приложения умеют
маскироваться – например, Skype-клиент открывает порты, номера которых
случайным образом задаются при инсталляции программы. Из-за этого трафик
Skype очень сложно отрубить, учитывая еще, что он зашифрован, и
уверенно определить, что это пакеты именно Skype, почти невозможно.
И напоследок – о сетевых
(рабочих) группах, в которые рекомендуется объединять компьютеры в
локальной сети. Группу, в которой состоит данный компьютер, можно
определить (и изменить при надобности), если щелкнуть по значку Мой компьютер в Windows XP правой кнопкой и выбрать пункт Свойства, а в нем вкладку Имя компьютера. В Windows Vista и 7 имя группы можно узнать (и изменить) через пункт Панель управления | Система (этот пункт доступен напрямую, если выбрать Свойства не значка Компьютер на рабочем столе, а пункта Компьютер в меню кнопки Пуск).
При чтении интернет-рекомендаций по
построению локальной сети иногда может создаться впечатление, что все
узлы в одной локальной сети обязательно должны быть объединены в одну
группу (под одним тем же именем), иначе вы просто не получите к ним
доступ, а иногда приходится недоумевать, – почему это про группы ничего
не упоминается? Если бы одно и то же имя группы действительно было
обязательно, то гость, пришедший со своим ноутбуком, просто не получил
бы доступа к вашей локальной сети, пока он не поменяет у себя имя
рабочей группы. Естественно, каждый раз менять это имя несподручно. Но
на самом деле это и не требуется – принадлежность к определенной рабочей
группе является необязательной и критична только в особых случаях, о
которых далее (недаром в новых версиях Windows имя группы убрали
подальше, в пункт Система, в то время как имя компьютера по прежнему доступно из контекстного меню значка Компьютер на рабочем столе).
Если для разных узлов на них самих заданы разные рабочие группы, то в Windows XP по адресу Сетевое окружение | Вся сеть | Microsoft Windows Network просто появятся две или более рабочих групп (рис. 5.2). В Windows Vista и 7 все еще проще – щелкнув в окне Компьютер по папке Сеть,
вы вообще не увидите распределения по рабочим группам, – компьютеры и
другие узлы будут показываться в едином списке. Для описанных в этой
книге случаев совершенно неважно, какая именно рабочая группа задана для
данного компьютера, через сеть он все равно будет доступен на равных
основаниях с другими. Точнее будет сказать, что в природе, несомненно,
встречаются случаи, когда рабочая группа критична, но я просто с ними не
сталкивался – специальные попытки найти разницу при работе с разными
названиями групп для всех вариантов сетей, описанных в этой книге, у
меня не увенчались успехом. Рис. 5.2. Разные рабочие группы в одной локальной сети (Windows XP)
А для
чего тогда это придумано – только для того, чтобы еще больше запутать
бедного пользователя? Наоборот, создатели Windows искренне хотели
облегчить ему жизнь – если у вас десяток компьютеров в одной сети, то
объединение их в группу позволяет единым махом для членов этой группы
задать всякие настройки (прежде всего настройки общего доступа). Если вы
администратор офисной сети, то это действительно проще, чем бегать и
настраивать каждый компьютер по отдельности. В небольшой же домашней
сети все это можно просто игнорировать.
И чтобы еще больше усложнить жизнь
пользователю (но упростить ее администратору), в Windows 7 придумали
новую концепцию «домашней группы», которую можно использовать
параллельно обычной рабочей. Поскольку домашние группы в сети могут быть
созданы лишь для компьютеров, работающих под управлением Windows 7 (а
это пока еще довольно редкий случай – обычно различные версии
встречаются вперемешку), то мы постараемся к этому вопросу в дальнейшем
не возвращаться, чтобы не усложнять себе и без того непростую сетевую
жизнь. |