Все мы не раз слышали слова “роутер”, “маршрутизатор”, “межсетевой экран”, “коммутатор”, “свич”, “точка доступа”. Однако мало кто знает что-же это за такие устройства, что они делают и зачем они нужны. Итак, начнем пожалуй с самого распространенного.

Роутер, он же – маршрутизатор. Устройство, главная цель которого – маршрутизация трафика из локальной сети в интернет и обратно.

Но почему же у него сразу два названия, вероятно спросит кто-то из вас? – а все очень просто. Привычное всем нам слово “роутер” – это английское слово Router, происходит от rout – маршрут. Поэтому на русском языке это устройство именуется маршрутизатором.

Но ведь наши бытовые маршрутизаторы обеспечивают не только маршрутизацию трафик, вполне верно заметит кто-то из вас… Все верно, простая маршрутизация, заложенная во все бытовые маршрутизаторы, в современных сетях работать не может. Поэтому ее сопровождают трансляцией сетевых адресов (NAT – Network address translation), а также некоторыми другими сервисами, о которых мы поговорим позже.

NAT. Трансляция сетевых адресов

NAT (аббр. Network Address Translation) - это устройство либо функция трансляции сетевых адресов, предназначенная для трансляции приватных (внутренних) IP адресов в публичные (внешние) и обратно. Выход в интернет устройств с приватными адресами в интернет без NAT невозможен, так как приватные адреса в интернете не маршрутизируются.

В большинстве случаев NAT представляет собой функцию, имеющуюся во всех маршрутизаторах. На заре развития интернета использовался практически вместо межсетевого экрана, так как для доступа из публичной сети к хосту, расположенному за NAT требуется отдельное правило трансляции.

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

Есть маршрутизатор нашего интернет провайдера, у него есть несколько сетевых интерфейсов и каждый из них имеет свой адрес. Допустим, интерфейс к которому подключаются клиенты имеет адрес 10.10.10.1 с маской 255.255.255.0 (это значит, что всего клиентов может быть 253 (один из адресов забрал себе маршрутизатор)). И тут на этот интерфейс прилетает пакет от компьютера Васи Пупкина, с адресом 192.168.1.50. Этот адрес явно не принадлежит к сети нашего маршрутизатора, поэтому данный пакет будет отброшен, и Вася останется без интернета и будет покрывать провайдера всеми херами (пока его не привлекут по 20.1 КоАП РФ за мелкое хулиганство). Такое произойдет, если у Васи на его маршрутизаторе не будет работать NAT. Итак, задача NAT – это заменить истинный адрес отправителя на адрес самого NAT (это тот адрес, что провайдер дает своим клиентам).

Итак, с NAT вроде разобрались, поехали дальше.

Межсетевой экран

Межсетевой экран – это такое устройство, которое пропускает в нашу сеть только тот трафик, который нам нужен и ничего более.

В бытовых маршрутизаторах он как бы есть, по заявлениям производителя, но по факту его функцию выполняет NAT. Дело все в том, что NAT по умолчанию не производит трансляцию, для трафика инициированного извне, только для трафика, инициированного из нашей локальной сети. Поэтому любой трафик, который нам не нужен дальше NAT пройти не сможет (если мы сами не создадим исключения, или как это еще модно говорить, не пробросим порты). Да-да, “проброс” портов – это и есть исключение из общего правила NAT. В оборудовании фирмы Cisco общее правило для NAT выглядит примерно так:

object network LOCAL
subnet 192.168.1.0 255.255.255.0

nat (inside,outside) dynamic interface

Это означает, что в любом пакете, пришедшем на интерфейс inside адрес отправителя заменяется адресом интерфейса outside, после чего уже пропускается на выход интерфейса outside. Таким образом в описании правила первым всегда стоит тот интерфейс, на который трафик приходит, с которого инициируется соединение с каким либо узлом интернета.
Когда нам надо обеспечить доступ к нашему домашнему компьютеру с адресом 192.168.1.50 по протоколу RDP (удаленный рабочий стол) мы записываем следующее правило трансляции:

object network RDP
host 192.168.1.50
nat (outside,inside) static interface service tcp 3389 3389

Обращаю внимание, что примеры я привожу для Cisco ASA, а здесь каждое правило NAT прикрепляется к соответствующему object network.

В последнем примере видно, что я создал объект “RDP” с адресом компа, к которому нам нужно предоставить доступ извне. Затем я создал правило статической трансляции для порта ТСР:3389, которым разрешил извне инициировать трафик для нашего компьютера.

Вот теперь самое время подойти к тому, что нам может дать межсетевой экран. Межсетевой экран всегда располагается до NAT, поэтому им мы можем, например ограничить адреса интернета, с которых можно подключаться к нашему компьютеру. В Cisco ASA делается это так

access-list OUTSIDE extended permit tcp host 8.8.8.8 host 192.168.1.50 eq 3389

Данное правило однозначно говорит нам: разрешить трафик с адреса 8.8.8.8 к адресу 192.168.1.50 по протоколу ТСР для порта 3389. Каждое правило межсетевого экрана прикрепляется к тому или иному сетевому интерфейсу.

Итак, с межсетевым экраном, думаю, разобрались. Идем дальше.

Коммутатор

Коммутатор, он же в простонародье “свич”, он же Switch (англ.) – это сетевое устройство, основная задача которого переключать физические интерфейсы (если очень грубо) на основе таблицы МАС-адресов.

Коммутатор знать “ничего не знает” об IP адресах, его интересуют МАС-адреса (о них тоже думаю многие слышали, но я напомню, что это ФИЗИЧЕСКИЕ адреса, назначаемые каждому сетевому интерфейсу ПРОИЗВОДИТЕЛЕМ).

Таким образом коммутатор нужен нам для того, чтобы обеспечить прохождение трафика между узлами нашей локальной сети. И делает он это на основе таблицы МАС-адресов. Это такая таблица, которая обновляется каждый раз при активации любого интерфейса коммутатора, устанавливающая соответствие между МАС-адресом и конкретным интерфейсом коммутатора (для домохозяек – гнездом, дуплом, называйте это как угодно, сути не изменит).

Дело в том, что на самом деле все общение компьютеров и других железяк между собой осуществляется по МАС-адресу, а IP-адрес нам помогает достучаться до железяки из чужой сети.

Но как так? Откуда железяки знают МАС-адреса друг-друга? – а элементарно, каждая железяка ведет ARP-таблицу, которая и устанавливает соответствие между МАС и IP. Но как она это делает? – отвечаю, очень просто: она посылает широковещательный запрос: “але, гараж, мне нужна железяка с IP 192.168.1.50”. Коммутатор получает этот широковещательный запрос, и видя, что он широковещательный, рассылает его на все свои интерфейсы, кроме того интерфейса, на который он пришел. Суть такова, что на этот запрос откликнется только искомая железка, и тем самым спалит свой МАС-адрес. Все, теперь таблица ARP-таблица пополнилась… В случае, если искомая железка находится за пределами нашей сети, запрос направляется маршрутизатору, который знает о других сетях “все”. Таким образом вся эта херь и работает (или не работает, в зависимости от того из какого места руки растут).

Дополнительно замечу, что коммутаторы бывают разные – управляемые и неуправляемые. Управляемые бывают уровней L2 и L3, последние, кстати, могут играть роль маршрутизаторов, однако NAT на них нету.

С коммутаторами вроде разобрались, идем дальше.

Точка доступа

Точка доступа (англ. Access Point) – это устройство, содержащее в себе приемник и передатчик Wi-Fi сигнала и некоторую управляющую логику.

Думаю всем уже понятно, что точка доступа “делает Wi-Fi” (без которого школота ведет себя как наркоманы без “дури”)….

Заключение

В заключении отмечу, что сейчас под названием “Маршрутизатор” чаще всего скрывается устройство, содержащее в себе непосредственно коммутатор (чаще всего неуправляемый), маршрутизатор, NAT, межсетевой экран (самый простой и отчасти бесполезный), DHCP-сервер (автоматически дает сетевые настройки – IP, маска, шлюз, DNS), DNS-сервер и точку доступа (опционально). Так-же в маршрутизатор может быть включена функция IP АТС, например (но это в профессиональном оборудовании).

С таким же успехом под названием “Межсетевой экран” скрывается устройство, содержащее в себе сам межсетевой экран (довольно таки развитый и очень даже эффективный), маршрутизатор (которые часто поддерживает не только статическую маршрутизацию, но и динамическую), NAT (тоже довольно развитый), те же DHCP, DNS, коммутатор. Помимо всего прочего в межсетевом экране может быть функция обнаружения DoS/DDoS-атак и сканирования портов (примером такого оборудования может служить Cisco ASA).