Бесплатный софт, вэб-сервисы, ресурсы по раскрутке и заработку, свежие номера журнала "Internet Zone". Посетите нас: http://www.izcity.com/ 

Всем сетям по проксям-2

 

Транспортный протокол IP

Теперь давайте посмотрим, как работает локальная сеть с протоколом TCP/IP. В LAN (Local Area Network) TCP/IP на базе протокола Ethernet компьютеры обмениваются информацией о своих IP- и MAC-адресах с помощью обычного запроса на уровне данного протокола. Таким образом каждый ПК содержит таблицу с IP-адресами других машин. Приблизительно то же самое происходит в локальной замкнутой сети на базе протокола IP: получая задание доставить пакет по определенному адресу, он сначала находит его в таблице адресов, из которой одновременно узнает о MAC-адресе машины получателя. Далее сообщение отправляется "путешествовать" по LAN. На ПК получателя, в свою очередь, IP-протокол проверяет совпадение IP-адресов пакета и компьютера.
Разумеется, пользователю для отправки данных по TCP/IP вовсе не обязательно знать IP-адреса всех машин, ведь в Интернете существует БД (база данных) DNS, содержащая имена узлов и соответствующие им IP-адреса. Данный запрос выполняется с помощью протокола UDP. Впрочем, в LAN представлены и другие способы сопоставления имен с IP-адресами, рассчитанные на мелкомасштабные сети - но эта тема уже другой статьи.
Возможно, кому-то после всего вышесказанного покажется, что протокол IP и не нужен?! Но повремените делать категоричные выводы, все его преимущества вы прочувствуете при работе в нескольких, связанных между собою сетях (помните, в прошлом номере мы говорили о сложностях обмена информацией в связанных сетях).
Все адресное пространство TCP/IP разделено на специальные subLAN, каждая из них получает собственный промежуток адресов, внутри которого данные доставляются в основном с помощью аппаратных протоколов (Ethernet и других). Всего существует три основных класса подсетей, различающихся первыми тремя цифрами адреса (табл. 1).

Класс подсети Первые цифры IP-адреса Кол-во подсетей Кол-во узлов
A 1-126 126 16777214
B 128-191 16382 65534
C 192-223 2097150 254
 

Есть и маски подсети, например, 255.255.255.0. Если наложить такую маску на адрес, цифры 255 укажут, что перед нами номер сети, а 0 обозначит номер узла. Например, адрес 190.40.41.25 с маской 255.255.0.0 можно трактовать так - это сеть с номером 190.40 и узлом 41.25. IP-адрес любого компьютера в данной LAN будет начинаться только со 190.40.
Итак, мы видим, что структурирование пространства IP-адресов дает возможность создавать как маленькие (254 узла), так и огромные (16777214 узлов) сети. Существует совсем маленькие LAN, но сейчас не об этом.

Маршрутизация в сетях IP
Итак, чтобы связать несколько LAN TCP/IP (не зря же Интернет иногда называют сетью сетей :-)), понадобится каким-то образом организовать передачу данных из одной подсети в другую. В таком деле вам и помогут специальные устройства - маршрутизаторы. В самом простом случае это - обычный компьютер под управлениям ОС (операционной системы) Windows NT Server, Windows 2000 или Unix с двумя и более сетевыми адаптерами. Разберемся, как же он работает?
Когда один из компьютеров "видит", что получатель пакета данных находится в другой сети, он по умолчанию пытается отправить информацию прописанному в настройках TCP/IP шлюзу. Если в настройках протокола шлюзов несколько, то в случае неудачи, машина пытается связаться со следующим. Собственно, шлюз, о котором здесь идет речь, и есть маршрутизатор; он получает все адресованные другим сетям сообщения и переправляет их. Как вам известно уже из прошлой статьи (МК, №34, 2000), маршрутизатор передаст в другую сеть только адресованные ей сообщения и не позволит трафику одной LAN перегружать остальные.
Также при получении сообщения такой компьютер заменяет MAC-адрес отправителя на собственный, так как в другую сеть сообщение попадает из его сетевого интерфейса, а значит, должно иметь соответствующий адрес. Кроме того, маршрутизатору "под силу" соединить совершенно разные сети, например Ethernet с ATM, или даже с… модемом! И доложу я вам, ничего удивительного в этом нет, ведь из LAN в LAN передают только пакеты IP, вся специфическая для конкретной аппаратной реализации информация отбрасывается.
Иногда, чтобы определенное сообщение попало в отдаленную сеть, пакет должен пройти через целую цепь маршрутизаторов, для чего на каждом из них прописывают пути доставки. Разумеется, в сложнейшей, непрерывно изменяющейся структуре Интернета, такие компьютеры постоянно обмениваются между собой информацией о текущей карте сети и вычисляют оптимальные маршруты для доставки информации. Если же какой-то участок пути будет поврежден, маршрутизаторы, заметив это, изменят свои схемы доставки данных, конечно, если это возможно :-).
По-видимому, пора заканчивать изучение основ работы протокола TCP/IP и вплотную перейти к вопросу, как же лучше организовать доступ из LAN в Интернет.

Способ 1: маршрутизация
Итак, проще всего установить маршрутизатор между одной из подсетей Интернета (подсетью провайдера) и Вашей LAN, чаще всего достаточно самой примитивной модели. Далее необходимо получить право на использование IP-адресов - его обычно покупают у провайдера.
Возможно, Вы захотите использовать специальное программное или аппаратное обеспечение для анализа и фильтрации пакетов сети, чтобы предотвратить хакерские атаки, или же просто закроете используемые RealAudio порты, чтобы Ваши сотрудники занимались делом, а не слушали музыку. Так же можно закрыть целые подсети, которым Вы не доверяете, например, в школе наверняка запретят доступ к адресам типа http://www.playboy.com/.

Проблема IP-адресов

 

Пожалуй, изложенный способ раздачи Интернета в LAN - действительно, самый простой и предоставляет максимальные удобства. Но и в нем найдутся недостатки, и вот какие:
- Не всегда удается купить у провайдера необходимое количество адресов для своей сети. Если же Вы являетесь dial-up клиентом, наверняка, подобная услуга вообще не предоставляется ISP, тем более в случае prepaid (карточного) Интернета.
- Всегда существует серьезная угроза, что в Вашу LAN проникнут всяческие взломщики и хакеры.
- Если у Вас LAN, например, на базе Windows 9x без сервера, т. е. не содержит программного роутера, понадобится аппаратный (а он стоит заоблачных денег).
Естественно, у каждой машины в мире должен быть собственный уникальный IP-адрес. Разумеется, пока Ваша LAN не подключена к Интернету, можно использовать любые адреса - вам удастся избежать конфликта с другими пользователями. Существует определенная группа подсетей -приватные - на их базе можно создавать неограниченное количество LAN: подсеть 10 класса A, 172.16 класса B и 192.168.0 класса C. Фокус состоит в том, что данные из них не могут быть переданы в Интернет ни одним маршрутизатором, он просто откажется это делать.


Реальна и такая ситуация, когда в каждом из 10-ти рядом стоящих зданий будет подсеть класса C, содержащая компьютер с адресом 192.168.0.2. Такая схема прекрасно работает до тех пор, пока подсети не связаны между собой, иначе каждому зданию необходимо дать сегмент подсети B, например, 172.16.1, 172.16.2, 172.16.3 и т. д.
Несмотря на наши заверения о том, что из приватных LAN выход в Интернет невозможен, не исключено, что некоторые читатели будут в легком недоумении: и Сеть работает, и в настройках TCP/IP прописан адрес 192.168.0.1?! В чем же дело?

Способ 2: NAT (Network Address Translation)
Как решить эту проблему, ясно уже из заголовка. Давайте рассмотрим эту интересную технологию на примере работы с Web. Обычно трансляция адресов осуществляется специальным аппаратным или программным маршрутизатором.
Итак, вам надо загрузить страницу http://www.alexanderbutenko.com/, но ваш компьютер имеет приватный адрес 10.0.0.1, но в сети находится маршрутизатор NAT, соединенный с LAN сетевым адаптером 10.0.0.3 и Интернетом посредством модема 212.40.41.60. Это типичный пример соединения двух сетей маршрутизатором, который теперь имеет встроенную фунцкию NAT. Посмотрим, как в этом случае решается проблема доступа в Глобальную Сеть:
- пользователь Вася Пупкин открывает свой браузер Internet Explorer на машине с адресом 10.0.0.1 и вводит http://www.alexanderbutenko.com/.
- имя домена передается DNS-серверу - он должен быть подключен как к LAN, так и к Интернету (многие, особенно программные, маршрутизаторы NAT имеют встроенный DNS-сервер). Сервер возвращает клиенту IP-адрес этого узла 216.34.13.245.
- клиент передает свой запрос по умолчанию шлюзу(по его адресу в локальной сети 10.0.0.3), в нашем случае последний и есть NAT-маршрутизатор.
- маршрутизатор меняет адрес отправителя с 10.0.0.1 на свой в сети Интернет 212.40.41.60, после чего отправляет этот запрос в Сеть.
- все строго по правилам: запрос ушел в Интернет от имени машины с корректным адресом, и ответ придет только на нее!
- сервер http://www.alexanderbutenko.com/, получив запрос, в ответ вышлет стартовую страницу index.html по адресу отправителя, а так как адрес был заменен маршрутизатором на собственный, реально он и получит ответ.
- наконец, получив ответ, маршрутизатор отследит в своих журналах, какая именно машина в локальной сети была автором запроса, и перешлет ответ в LAN по адресу 10.0.0.1 (в нашем случае).
- машина Васи Пупкина получит ответ и Internet Explorer отобразит на экране домашнюю страничку автора этой статьи - теперь Вася может продолжать работу в Интернете, хоть раньше ему это казалось невозможным :-).
Как видите, механизм NAT довольно прост, нужен только специальный маршрутизатор и DNS-сервер, у которых есть адреса как в Интернете, так и в локальной сети (реально оба этих сервера могут быть совмещены в одном устройстве). Описанный способ идеально подходит, чтобы подключить к Интернету небольшой LAN через dial-up - провайдер даже не узнает, что у него на другом конце линии не один клиент, а несколько! Особенно оценят этот метод домашние пользователи.
Итак, как мы выяснили, даже с машины, имеющей приватный адрес, можно отсылать запросы в Инет, а как быть в том случае, если Вы хотите, чтобы, наоборот, из Глобальной Сети был доступ к Вашему компьютеру? В определенной степени разрешима и эта проблема. Например, если в LAN есть web-сервер с приватным адресом, достаточно установить NAT-маршрутизатор, который будет переправлять все запросы, приходящие на 80-ый порт, на какую-то машину в локальной сети. Таким образом если кто-то из Интернета попробует вызвать Ваш маршрутизатор из web-браузера, данный компьютер передаст запрос серверу внутри сети, а после, еще раз выполнив трансляцию адресов, отправит ответ в Интернет.
Безопасность - серьезное преимущество такого метода. Часто хакеры атакуют жертву-компьютер через какой-то из его портов. Но такое невозможно проделать с машиной с публичным адресом в локальной сети - только с маршрутизатором. То есть находящийся за таким компьютером ваш web-сервер будет доступен исключительно по 80-ому порту (через маршрутизатор).
Именно поэтому часто компании, даже которые могут себе позволить купить обычные адреса Интернета, в целях безопасности пользуются приватными.
Многие известные производители, такие как Intel (http://www.intel.ru/), 3COM (http://www.3com.ru/), Zyxel (http://www.zyxel.ru/) и прочие выпускают продукты, которые можно использовать в качестве аппаратных маршрутизаторов NAT. В основном они рассчитаны на рынок SOHO и подключаются к Интернету посредством модема (обычно его нужно покупать отдельно).
Также доступно и множество программных маршрутизаторов. Во-первых, ОС Windows 98 Second Edition и Windows 2000 Professional содержат компонент ICS - простой маршрутизатор NAT. Более мощное решение входит в поставку Windows 2000 Server. Представлены и продукты сторонних производителей, например, WinRoute (http://www.winroute.com/).

<< Предыдущая часть

 

Источник: http://www.mycomp.com.ua/

 


Copyright © 2000г. "Internet Zone" & Nik Romanov, info@izcity.com
Копирование и использование данных материалов разрешается только в случае указания на журнал "Internet Zone", как на источник получения информации. При этом во всех ссылках обязательно явное указание адреса вэб-сайта http://www.izcity.com/. При наличии у копируемого материала авторов и источника информации - их также нужно указывать, наряду со ссылкой на нас.