Чем отличается модем от маршрутизатора?

Это первый вопрос, который приходится объяснять 90% клиентов техподдержки. Зачем объяснять? Затем, что это функционально разные устройства, и поэтому настраивать их нужно по-разному. Это только в сказках можно включить то-не-знаю-что, произнести над ним какие-то магические заклинания - и оно само заработает как надо. Жизнь устроена, увы, иначе. Поэтому придётся танцевать от печки: что такое сеть, IP, протокольный стек и так далее. Как в известном анекдоте про буйных школьников и мудрого старого учителя: "... а что такое глобус - кто знает? Никто? Ну вот с этого и начнём."

Для начала, что такое "сеть"? В узком смысле этого термина, сеть — это некоторая совокупность компьютеров, подключённых к одной физической среде для передачи данных: проводу, оптоволоконному кабелю, радиоэфиру и т.д. Сетевые адаптеры компьютеров создают в этой среде некоторые физические сигналы и воспринимают из неё сигналы других компьютеров. Это называется взаимодействием на физическом (или первом) уровне.

Достаточно ли этого для обмена данными? Нет, кроме единственного вырожденнного случая. Чтобы принимающая сторона правильно понимала то, что ей хочет сказать передающая, они должны заранее договориться о том, в каком порядке будут посылатся байты. Например, первой идёт метка начала посылки, потом определённая служебная информация (например, число байт полезной нагрузки), потом сами полезные данные, потом метка конца посылки. Данные, обрамлённые таким служебным заголовком (и хвостовиком, если надо), называются пакетом. Более того, две стороны должны заранее знать правила, определяющие, что и как каждая из сторон может сказать, что она обязана сказать и что она не имеет права сказать на каждом из возможных этапов взаимодействия. Набор этих правил называется протоколом. (И правила составления пакета тоже являются частью протокола.) Нет, это не тот протокол, который на вас составит инспектор ГИБДД за разворот через две сплошные. Это слово надо понимать в таком же смысле, как протокол дипломатический или придворный. Например: "Дипломат обязан вручать документы главе государства правой рукой. Если у дипломата нет правой руки, то он может подавать документы любой другой рукой."

Набор правил, определяющий взаимодействие непосредственно по физической среде, называется протоколом канального, или второго, уровня. Преобладающие протоколы этого типа на сегодня - это Ethernet для широковещательных сетей (которые могут содержать более 2 хостов) и PPP для асинхронных соединений "точка-точка" (в частности, между сотовым абонентом и оператором), либо их эмуляция поверх чего-то ещё (например, поверх промежуточных протоколов беспроводной сети или xDSL).

Достаточно ли этого, наконец? Да, по минимуму. Этого достаточно, чтобы построить сеть (network) в узком смысле слова: каждый хост в ней непосредственно доступен физически для любого другого. Обмен данными между хостами в пределах одной физической среды - это, соответственно, networking.

Беда в том, что по очевидным причинам такая сеть не может быть бесконечно большой и содержать в себе все компьютеры в мире. А что делать, если хосту, подключённому к одной сети, требуется обмен данными с хостами, которые находятся в других сетях, тоже ограниченного размера? Для передачи пакетов между сетями предназначены специально обученные люди специальные компьютеры с несколькими сетевыми интерфейсами, которые подключены к нескольким сетям одновременно. Они принимают пакет из одной сети, разбирают его до 2 уровня включительно, по заголовку 3 уровня определяют его дальнейший путь, заново упаковывают его в оболочку 2 уровня, соответствующую новой сети, и отправляют дальше. Именно эта процедура называется межсетевым взаимодействием, или inter-networking. Протокол, её регламентирующий — это и есть Internetworking Protocol, IP. Компьютеры, передающие пакеты из одной сети в другую, называются межсетевыми шлюзами или маршрутизаторами. Ну а по жизни вся эта бодяга так и называется — Интернетом.


IP - это протокол сетевого, или третьего уровня. Он определяет правила взаимодействия между двумя хостами, которые находятся, в общем случае, в разных физических сетях. При этом пакет IP передаётся целиком от одного хоста до другого. По дороге он упаковывается в пакеты второго уровня, которые передаются на каждом отрезке пути по протоколу, специфическому для этого этапа. Главная функция маршрутизатора - это определить следующий пункт пересылки пакета и переупаковывать пакет IP в новый пакет второго уровня.

Помимо этого, современные маршрутизаторы решают ещё целый ряд других задач, как относящихся к процессу обработки передаваемых пакетов, так и прикладных, т.е. относящихся к работе некоторых приложений между самим маршрутизатором и хостами в его сети. Например, он может зачеркнуть указанный на конверте адрес отправителя и сказать: "Отвечайте мне, а дальше я уж сам разберусь, всё равно вы напрямую до отправителя не доберётесь" - это функция преобразования сетевых адресов, или, более точно, Source NAT, аналог почтового адреса типа c/o (care of). Или он может зашифровать исходный пакет, упаковать его в новый пакет и отправить дальше уже от своего имени (чтобы сохранить инкогнито отправителя) другому узлу, который сможет его расшифровать и доставить конечному адресату - это функция шлюза VPN.

Ну, а где же здесь место для модема?

Модем делает лишь малую часть этих операций: преобразует сигналы физического уровня, чтобы соединить две различные физические среды. При этом пакет второго уровня остаётся неизменным. (Как минимум, это означает, что физическая среда с одной и с другой стороны должна иметь ту же самую топологию - либо "точка-точка", либо широковещательная сеть - чтобы один и тот же протокол второго уровня можно было использовать с обеих сторон.) Говоря более конкретно, у асинхронного модема с одной стороны физическая среда - это кабель RS-232 (или его эмуляция поверх USB), а с другой - либо физическая медная пара, либо коммутируемая телефонная линия, либо её эмуляция поверх сотовой сети. И через всю эту связку насквозь, от одного хоста до другого, передаётся один и тот же пакет PPP (Point-to-Point Protocol).


Аналогичную функцию выполняют повторители сигналов для физической линии - с той лишь разницей, что у них среда передачи с обеих сторон одинакова. В сетях Ethernet эту роль играют медиа-конвертеры и концентраторы (hub). Коммутаторы (switch) также делают то же самое, с единственной разницей: они, по возможности, передают пакет не во все свои порты, а в тот, за которым был ранее замечен указанный МАС-адрес назначения.

Для сотрудников офисного труда, вероятно, будет понятнее следующая аналогия. Модем - это курьер. Малоответственный мальчик, которому дали пакет и адрес: метро Кукуевская, выход из среднего вагона, 3 раза повернуть налево, чёрная железная дверь. Отдать пакет и вернуться. Что в пакете, кто отправитель, кто получатель - не его дело. А маршрутизатор - это экспедиторский отдел вашего учреждения в целом. Он отвечает за то, чтобы правильно написать на конверте адрес и выбрать подходящую курьерскую службу. За то, чтобы передать полученное письмо в руки нужному сотруднику вашего учреждения. За то, чтобы в конверте кто-нибудь случайно не отправил во внешний мир то, что туда отправлять не следует, и за то, чтобы в полученном пакете не оказалось подозрительного белого порошка для вашего сотрудника. Проверяет, что отправленные пакеты дошли до адресатов (точнее, до их экспедиций), и сам отсылает подтверждения на входящую почту. Если это конфиденциальный документ для удалённого филиала вашего учреждения - пакует его в непрозрачный пакет и пузырчатую плёнку, опечатывает сургучными печатями, проверяет целость печатей на таких же входящих пакетах. Отправляет в помойку весь поток входящего спама, избавляя сотрудников от этого бремени. В общем, решает для ваших сотрудников все задачи, связанные с отправкой и приёмом корреспонденции. А курьер - лишь низовой сотрудник этого отдела, выполняющий самую низовую и самую простую функцию по физической доставке пакетов из точки А в точку Б.

Точно так же, как в штат экспедиторского отдела обычно входят курьеры, так и в состав маршрутизатора могут входить встроенные модемы для тех или иных каналов связи - например, беспроводных. Это особенно характерно для маршрутизаторов доступа, с коими, в первую очередь, и приходится иметь дело банкоматчикам. В этом случае на маршрутизатор возлагается дополнительная задача - следить за работоспособностью модемного соединения и при необходимости приводить его в чувство животворящими пинками по линии питания (зарплаты) или как-то иначе. Если этого не делать, то безответственный курьер, посланный всего-то на соседнюю улицу и обратно, охотно может зависнуть в каком-то кабаке по дороге аж до окончания рабочего дня, верно? Особенно часто это бывает при связи "по воздуху" - мало ли чего он может вкурить по дороге и куда улететь по укурке. Так что за курьером нужен глаз да глаз со стороны начальника экспедиции.

Кстати, даже если курьер опять не в норме и подлежит перезагрузке, то на работе всего отдела это не должно сказывается почти никак. Кроме отправки писем конкретно этим курьером, все остальные сотрудники работают как обычно. Сами понимаете, закрывать отдел целиком и нарушать работу уже всего учреждения каждый раз, когда надо всего лишь дать очередной втык раздолбаю-курьеру - это не лучшая практика. Именно по этой причине в маршрутизаторах профессионального класса каждый модем, а также каждая программная служба, может быть рестартован в отдельности, без рестарта всего устройства. Рестартовать маршрутизатор целиком по каждому чиху - порочная практика; это надо делать только тогда, когда не просто "отвалился GPRS", а действительно что-то пошло радикально наперекосяк во всей системе - т.е. вся экспедиция дружно ушла в загул и запой.

Итого, в сухом осадке: модем не определяет, как упаковать пакет и куда его передать, этим занимается операционная система хоста. Настройка модема состоит лишь в том, чтобы указать параметры физического уровня с одной и с другой стороны. В современной практике они уже либо давно зафиксированы на устоявшихся значениях, либо согласовываются автоматически. Кроме того, для модема, работающего по телефонной сети, нужны параметры вызова со существу: номер модема на другой стороне (в проводной сети) или APN (в сотовой). Имя и пароль - это уже настройки не модема, а агента PPP, работающего на хосте.

Для маршрутизатора нужно настроить:

  1. Физические параметры на каждом порту. Для сотового порта это APN, для остальных актуальных типов портов настройки, как правило, не нужны.
  2. Параметры канального уровня на каждом порту. Для сотового порта это имя/пароль, для остальных актуальных типов портов настройки, как правило, не нужны.
  3. Параметры IP на каждом порту - его IP-адрес, маска, адрес удалённой стороны (в зависимости от типа порта). Для сотового порта назначаются автоматически в процессе установления сессии.
  4. Правила обработки пакетов и передачи их между портами: маршрутизация, NAT. При подключении через единственного сотового или телефонного оператора это, как минимум, галочки "использовать сотовый порт как маршрут по умолчанию" и "выполнять Source NAT на этом порту". Вот если у маршрутизатора более 2 портов, например, несколько разных каналов связи с внешним миром - тогда это уже интереснее...
  5. Средства мониторинга каналов связи и восстановления их работоспособности. Это может быть LCP Echo на 2 уровне, или ping на 3 уровне + процедура рестарта портов и/или изменения маршрутов, или работа с какими-т контрольными пакетами более высоких уровней.
  6. Если маршрутизатор работает в качестве шлюза VPN - то туннели нужного типа.
  7. Приложения, работающие на самом маршрутизаторе, и средства управления им. Это могут быть, в частности: DNS-клиент, DNS-прокси, DHCP-сервер, сервер HTTP для Web-управления, сервер SSH, клиент DNS... Обязательно - содержательный пароль для входа на устройство!
  8. В самую последнюю очередь настраиваются фильтры. Вообще-то это составная часть п.4, но настраивать их надо после того, как всё остальное настроено и работает. Иначе вы будете долго искать ошибки в настройке той или иной функции, а окажется, что там всё верно, но работать ей не дают запрещающие фильтры.


Обратите внимание: я ещё ни разу не сказал, какой именно маршрутизатор мы собираемся настраивать и какими именно командами это делать. Описанное выше - это сущность процедуры, относящаяся к любому маршрутизатору любого производителя. А как она выражается на конкретном командном языке для конкретной модели - это уже форма, и по отношению к сущности она вторична. Поэтому о форме пока не будем говорить вообще. Точно так же, как в языке любого народа мира есть сущность "хлеб", сущность "мать", сущность "трахаться" - и хлеб останется хлебом, какими бы словами ни выражать эту сущность: bread, Brot, pain, ψωμί, პური или нон.

Для начала этого хватит, наверное... Об остальном поговорим в следующий раз, если надо будет.

Написал : Оборудование

  • Никаких комментариев пока не было создано. Будьте первым комментатором.

Оставить комментарий

Гость Пятница, 28 Июль 2017