Коллектив авторов - Компьютерные сети стр 2.

Шрифт
Фон

Возникает вполне логичный вопрос: а как предоставить доступ в интернет компьютерам из локальной сети? У них ведь IP-адреса из приватного диапазона, которые в интернете не используются. Вот здесь на помощь приходят NAT-сервера. Задачей NAT-сервера является преобразование внутренних приватных адресов локальной сети в глобальные адреса интернета. То есть, на таком сервере есть таблица соответствия адресов в локальной сети и глобальных адресов интернета. Например, адресу 111.111.111.110 интернета будет соответствовать 192.168.10.10, адресу 111.111.111.111 будет соответствовать адрес 192.168.10.11 итд. Если компьютеру нужно передать информацию в интернет, то он отправляет пакеты на NAT-сервер, тот меняет IP-адрес отправителя c 192.168.10.10 на 111.111.111.110 и пакетик спокойно передается в пункт назначения. Когда приходит ответ на адрес 111.111.111.110, то NAT-сервер автоматически меняет 111.111.111.110 на 192.168.10.10 и передает его в локальную сеть. Если же нужно обеспечить доступ в интернет для целой локальной сети, имея всего один глобальный IP-адрес, то используется механизм PAT, что очень напоминает по принципу действия NAT. Дело в том, что кроме IP-адреса есть еще и адрес порта, который соответствует транспортному уровню модели OSI. Адрес порта указывает для какой программы на компьютере этот пакет предназначен и что это вообще за пакет. Более-подробно о номерах портов описано в Википедии. Например, у нас есть сеть из 2 компьютеров и оба они подключены к интернету через один NAT/PAT сервер (им может быть как роутер, так и один из компьютеров). Пускай IP-адреса у компьютеров будут 192.168.0.1 и 192.168.0.2. Первый из них подключен к интернету через IP-адрес 111.111.111.111 и на нем запущен NAT/PAT-сервер. Возьмем типичную ситуацию. Оба эти компьютера одновременно занимаются серфингом в интернете. Вводит один и второй пользователь в браузере адрес www.acerfans.ru и оба компьютера отправляют HTTP-запрос на сервер www.acerfans.ru. В запросе обязательно указывается адрес отправителя и адрес получателя. С адресом получателя все ясно: это IP-адрес, который соответствует доменному имени www.acerfans.ru и порт 80, который соответствует протоколу HTTP. Адрес отправителя - 192.168.0.1, порт 1050 для одного компьютера и 192.168.0.2, порт 1050 для второго. Эти два запроса получает NAT/PAT-сервер, подставляет в поле адреса отправителя свой IP-адрес (111.111.111.111), а в поле номера порта для одного компьютера ставит 1050, для второго - 1051. У себя в таблице он отмечает, что порту 1050 компьютера с IP-адресом 192.168.0.1 будет соответствовать порт 1050 с IP-адресом 111.111.111.111, а второму компьютеру - порт 1051. В результате два запроса от двух компьютеров со стороны выглядят как два запроса с компьютера с IP-адресом 111.111.111.111 и номерами портов отправителя 1050 и 1051. Когда с сервера придет ответ с помощью той же таблички соответствия NAT/PAT-сервер какой пакет какому компьютеру в сети предназначался.

Другой способ предоставления пользователям локальной сети доступа в интернет заключается в использовании прокси-сервера.

Более-подробно о том как настраивать общий доступ для локальной сети будет детально расписано в следующих материалах цикла

Маски подсети и шлюзы

Прежде чем перейти непосредственно к маскам и шлюзам, стоит дать определения основным устройствам, которые используются в сети.

Сервер - это служба (программа, если хотите), которая запущена на компьютере.

Репитер (повторитель) - это устройство, которое предназначено для усиления сигнала. Используется для увеличения дальности соединения.

Хаб (концентратор) - это устройство, которое содержит несколько портов. При подаче сигнала на один порт - он усиливается и передается на остальные порты. Хаб - это по сути многопортовый репитер. И хаб, и репитер работают на первом (физическом) уровне модели OSI.

Бридж (мост) - это устройство, которое служит для фильтрации трафика по MAC-адресам. Он разделяет домены коллизий.

Свич (коммутатор) - это по сути многопортовый мост. Основной задачей коммутатора служит создание "виртуальных" каналов между устройствами на основе MAC-адресов.

Примечание: Дело в том, что технология Ethernet изначально рассчитывалась на сети с общей средой передачи данных - коаксиальным кабелем. В такой среде часто возникают ситуации, когда два устройства одновременно передают данные. Такая ситуация называется коллизией, а компьютеры в сети, которые подвержены колизии - называются доменом коллизии. Мост и коммутатор разбивают домен коллизии на меньшие части, а вот концентратор коллизии пропускает и в результате домен коллизии увеличивается. Кроме доменов коллизий есть еще и широковещательные домены. Широковещательные рассылки и мост и коммутатор пропускают. И мост, и коммутатор работают исключительно с MAC-адресами. В каждом мосте и коммутаторе существует таблица коммутации. Она представляет по сути таблицу, где каждому порту соответствует определенный набор MAC-адресов. В каждом пакете (точней, фрейме), который пересылается по сети, указан MAC-адрес назначения и MAC-адрес отправителя. Когда такой пакет попадает на порт коммутатора, последний считывает MAC-адрес получателя. Если такого в таблице коммутации нету, то пакет рассылается на все порты, кроме того, откуда он пришел. Адрес отправителя записывается в таблицу коммутации и ему ставится в соответствие порт, на который пакет поступил. Таким образом через некоторое время в таблице коммутации моста или коммутатора будут все MAC-адреса компьютеров в сети, а также порта, к которым последние подключены. Чтобы избавится от "петель" коммутаторы используют протокол STP

Роутер (маршрутизатор) - это устройство, которое предназначено для соединения сетей, фильтрации по IP-адресам, обеспечения политик безопасности, а также многих других функций (DHCP, NAT/PAT…). Роутер работает с IP-адресами пакетов. Каждый роутер должен иметь таблице маршрутизации, где указано какой пакет куда отправлять (или не отправлять ) Таблица маршрутизации может заполнятся как вручную, так и с помощью протоколов маршрутизации (RIP, OSPF, IGRP, EIGRP…). В таблице маршрутизации указывается на какой интерфейс отправлять пакет, который адресован на тот или иной адрес. Именно для роутера огромное значение имеют маски подсети. К каждому интерфейсу роутера должны подключатся разные сети, иначе он может некорректно работать. Коммутатор и мост ни с IP-адресами, ни с масками подсети не работают. Для них это всего лишь данные, которые нужно передать. В этом и состоит основное отличие между маршрутизатором и коммутатором

Вот мы и подошли к такому понятию как маска подсети. Маска подсети - это 32-битное число, которое указывает где в IP-адресе адрес сети, а где адрес компьютера в сети. Выглядит маска сети примерно так: 255.255.255.0 или так 255.255.192.0, или даже так: 255.240.0.0

Особенностью маски подсети является то, что если записать ее в двоичной форме, то слева будут только единички, а справа - нули. Это обязательное условие!

Вот запишем в двоичной форме приведенные выше маски:

255.255.255.0 - 11111111.11111111.11111111.00000000

255.255.192.0 - 11111111.11111111.11000000.00000000

255.240.0.0 - 11111111.11110000.00000000.00000000

Как видим, есть четкая граница между нулями и единицами. Иногда маску 255.255.255.0 обозначают просто как /24 - 24 единицы, вторая маска будет обозначатся как /18, третья в моем примере - /12. В итоге адрес записывают так 192.168.0.1 /24

Все IP-адреса делятся на 5 классов: A, B, C, D и E

A - 0.0.0.0 - 127.255.255.255

B - 128.0.0.0 - 191.255.255.255

C - 192.0.0.0 - 223.255.255.255

D - 224.0.0.0 - 239.255.255.255

E - 240.0.0.0 - 255.255.255.255

Для первых трех классов установлены маски по-умолчанию. Для А - 255.0.0.0 или /8, для В - 255.255.0.0 или /16, для С - 255.255.255.0

Использование других масок тоже разрешено

Примечание: иногда бывают случаи, когда использование масок по-умолчанию нерационально. Яркий пример: соединение двух роутеров. Для соединения нужно всего два IP-адреса. Чтобы избежать нерационального использования IP-адресов и были придуманы сетевые маски переменной длинны - VLSM.

Как я уже отметил, сетевая маска нужна для выделения из IP-адреса компьютера IP-адреса сети или подсети. Делается это побитовой операцией логического И между IP-адресом и маской подсети. Стоит отметить, что IP-адреса, в хостовой части которых все нули являются адресами подсетей и использовать их в качестве IP-адресов компьютеров НЕЛЬЗЯ. Например: IP-адрес 192.168.0.16 с маской 255.255.255.240

будет адресом подсети. Чтобы в этом убедится запишем в двоичной форме сам адрес, а внизу маску подсети:

11000000.10101000.00000000.00010000 - адрес (синим указана хостовая часть адреса, красным - сетевая согласно маске подсети)

11111111.11111111.11111111.11110000 - маска

Как видим, в хостовой части (последние 4 бита) у нашего адреса все нули, следовательно, он является адресом подсети и назначить его назначить его на компьютер не получится. Именно поэтому невозможно назначить компьютеру адрес 192.168.0.0.

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке