Vikont Home page
НОВОСТИ

20.01.05
Открылся сайт.


17.01.05
Ура! Сессия сдана досрочно и вполне успешно: матан 4, линейка 5, инфа 4; автоматы: история 5, ПАСИ 4.




СТАТЬИ

Подсистема управления процессами в различных реализациях ОС UNIX.

Сети. Характеристика ЛВС города Химки.

Сопоставление языков C и Pascal

...другие
HOME > MY WORK >

Сети. Характеристика ЛВС города Химки.

Трудно переоценить важность сетей в современном компьютерном мире. На сегодняшний день уже трудно найти машину без возможности выхода в Internet или не подключенную к какой-либо локальной сети. Важно отметить, что для всех крупных организаций работа с Internet и электронной почтой, является неотъемлемой частью ведения бизнеса и занимает свое важное место в системе оперативного обмена информацией. Повседневной задачей большинства системных администраторов является обслуживание локальных сетей, Internet-подключений, Web-узлов, сетевого оборудования и сетевого программного обеспечения.

В современном мире преобладают компьютерные сети построенные на базе протоколов семейства TCP/IP. Это семейство протоколов широко используется в системах Linux/UNIX, MacOs, Windows и большинстве других современных операционных систем. Благодаря TCP/IP формируется единый программный интерфейс доступа к разнообразному сетевому оборудованию, что позволяет обмениваться данными, несмотря на различия в аппаратном и программном обеспечении – в этом и заключается основная идея протоколов семейства TCP/IP.

В основе сети Internet лежит протокол IP, используемый для доставки неструктурированных пакетов. Поверх протокола IP реализованы протоколы TCP (Transmission Control Protocol) и UDP (User Datagram Protocol), которые являются “транспортными” протоколами. Протокол TCP ориентирован на установление соединений. Протокол TCP обеспечивает гарантированную доставку пакетов, а также обладает средством контроля трафика и управления перегрузкой. Протокол UDP ориентирован на доставку одиночных пакетов без установления соединения. Средства управления перегрузкой отсутствуют.

Семейство TCP/IP базируется на многоуровневой схеме взаимодействия протоколов, которая является основой сетевой модели TCP/IP:

Уровень
Назначение

Прикладной

Пользовательские приложения

Транспортный

Доставка данных приложениям

Сетевой

Базовые функции коммуникации, адресации и маршрутизации

Канальный

Сетевые аппаратные средства и драйверы устройств

Физический

Кабели и другие физические носители

Данные передаются по сети в виде пакетов, который имеют максимальный размер, определяемый ограничениями канального уровня. Каждый пакет состоит из заголовка и полезного содержимого. Сетевые пакеты могут достич пункта назначения только при наличии правильного адреса. В TCP/IP используется сочетание нескольких схем адресации: MAC-адресов сетевого оборудования, IP-адресов программного обеспечения и текстовых имен компьютеров. Особое внимание в этом списке следует уделить IP-адресам. Основа IP-адресации заключается в том , что каждому сетевому интерфейсу в общем случае присваивается несколько четырехбайтовых IP-адресов, а в более распространенном случае всего один. Эти адреса уникальны и аппаратно независимы.

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

IP-адреса разделяются на классы, которые представлены и описаны в таблице:

Класс
Первый байт
Формат
Комментарии

A

1-126

C.M.M.M

Самые первые сети или адреса, зарезервированные для Министерства обороны США

B

128-191

C.C.M.M

Крупные организации с подсетями; адреса почти полностью заняты

C

192-223

C.C.C.M

Небольшие организации

D

224-239

-

Групповые адреса, не назначаются на постоянной основе

E

240-255

-

Экспериментальные адреса

Однако, только в редких случаях в состав локальной сети входит более ста машин. По этой причине полезность адресов класса А и В весьма сомнительна. Более удобная и логичная схема адресации применяет подсети. Идея состоит в том, что доля машинной части адреса “заимствуется” для расширения сетевой части. Переназначение адресов осуществляется программно (ifconfig) присваиванием сетевому интерфейсу маски подсети. Каждый бит маски, соответствующий сетевой части IP-адреса, равен 1, а биты машинной части равны 0.

В окончании моего краткого пояснения основ IP-адресации, я остановлю свое внимание на проблемах IP-адресации. Основные черты кризиса стали заметны уже в 1992 году:

  • При существовавших темпах развития глобальной сети адресное пространство класса B должно было исчерпаться еще в 1995 г.
  • Таблицы маршрутизации серверов, управляющих Internet-магистралями, стали настолько большими, что возникли опасения нехватки памяти на маршрутизаторах.
  • IP-адреса выделялись без учета информации о местоположении адресата. В итоге “соседние” адресаты могли находиться на разных континентах, что, несомненно, вело к путанице в адресации.

Для решения проблемы были предложены краткосрочный и долгосрочный подходы. Первый из них состоял во внедрении протокола CIDR – при этом предусматривалось изменение принципов управления существующими адресами и упрощение таблиц маршрутизации за счет введения понятия смежности.

Долгосрочный подход заключается во внедрении протокола IPv6, представляющий собой следующие поколение протоколов IP, в котором длина адреса увеличена до 16 байт и учтен ряд ошибок, проявившихся за 25 лет использования протокола IP. При этом, благодаря усовершенствованному проектированию на основе опыта протокола IP, IPv6 стал потенциально быстрее и проще в реализации. В нем интегрированы средства аутентификации и обеспечения безопасности, устранена процедура фрагментации пакетов на промежуточных маршрутизаторах. Но его внедрение, из-за протокола CIDR, системы NAT1 и инертности сети Internet в ближайшем будущем, похоже, не предвидется.

А теперь рассмотрим физическую организацию локальной сети. Вот несколько основных определений, применяемых при описании структуры компьютерных сетей: организация внутренних коммуникаций ЛВС называется ее топологией, коммуникационным диаметром сети именуется максимальный путь между любыми двумя узлами сети, масштабируемость сети характеризует возрастание сложности соединений при добавлении в конфигурацию новых устройств. На сегодняшний день более 80% мирового рынка ЛВС применяют для передачи данных технологию Ethernet. Эта технология имеет давнюю историю и характеризуется несколькими основными параметрами: скоростью передачи данных, расстоянием передачи и средой передачи. Работа Ethernet организована по схеме CSMA/CD (Carrier Sense Multiple Access with Collision Detection – множественный доступ с контролем несущей и обнаружением ошибок), т.е.- определяется занят ли канал передачи данных; кто угодно может передавать сообщения; передающая система знает, когда она перебивает кого-нибудь. С точки зрения топологии сеть Ethernet представляет собой шину с ответвлениями, но без контуров. В Ethernet могут передаваться пакеты трех типов: однонаправленные, групповые и широковещательные. Пакеты первого типа адресованы одному узлу, второго – группе узлов, третьего – всем узлам сети. Сети Ethernet могут разделяться на логические сегменты, которые с помощью коммутаторов могут включать в себя множество физических сегментов, имеющих разную скорость передачи данных. Для передачи в Ethernet чаще всего применяется неэкранированная витая пара (НВП), что позволяет создавать сетевую среду звезднообраздной топологии с рядом важных свойств:

  1. Недорогой кабель
  2. Простота монтирования
  3. Разъемы RJ-45, которые удобны и надежны в эксплуатации
  4. Все соединения функционируют независимо друг от друга, что повышает надежность сети.

Сети Ethernet также удобны для расширения и соединения. Существует три уровня логического соединения сетей. На первом уровне, физическом, используются разъемные соединения или концентраторы. Они передают непосредственно электрические сигналы. На втором уровне, канальном, используются коммутаторы. Они передают сетевые фреймы2, проверяя аппаратные адреса3 отправителя и получателя. На третьем уровне, сетевом, используются маршрутизаторы. Они доставляют сообщение следующему узлу в соответствии с адресом получателя. Таким образом мы плавно подошли к понятию маршрутизации в сетях.

Маршрутизация – это процесс направления пакета по лабиринту сетей, находящихся между отправителем и получателем. Маршрутная информация в TCP/IP имеет форму правил (маршрутов). Для примера, в GNU/Linux данные маршрутизации находятся в одной из таблиц ядра. Каждый элемент таблицы содержит несколько параметров, включая сетевую маску. Для направления пакета по заданному адресу ядро подбирает наиболее конкретный маршрут (т.е. тот, где самая длинная маска). Если не один из маршрутов не подходит, то отправителю возвращается сообщение вида “network unreachable”.

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

Домашний компьютер автора данного миниреферта подключен к локальной сети города Химки. Дальнейшее продолжение реферата я построю по следующей схеме:

  • для начала мы сконфигурируем сетевые интерфейсы моего компьютера посредством команды ifconfig
  • затем займемся маршрутизацией и установим стандартный маршрут для всех пакетов посредством команды route
  • за основную цель моих действий принимается изучение топологии ЛВС, выявление основных сетевых аппаратных средств, применяемых для построения сети, а также возможность взаимодействия с другими узлами сети посредством программ telnet, ftp, ssh или просто опрос веб-сервера удаленной машины; основная роль этого этапа пренадлижит программе nmap – одному из лучших сканеру портов на сегодняшний день (применяется версия 3.50)
  • в конце реферата, будет приведен пример работы анализатора пакетов Ethernal с соответствующими выводами и замечаниями.

Обычно конфигурация сетевых интерфейсов в моей системе проходит при начальной загрузке, но для наглядности пройдем весь процесс от начала и до конца:

[root@localhost vikont]# ifconfig eth0 10.10.154.99 netmask 255.255.255.0

этой командой я поднимаю аппаратный интерфейс своей сетевой платы VIA Technologies VT6105 [Rhine III 10/100], задаю его IP-адрес в локальной сети, а также указываю маску подсети. Таким образом на машинную часть отводиться только один байт. Уже сейчас можно утверждать, что всего в сети доступно (X.X.139-155.X) около 4000 адресов, часть из которых отводиться под адреса сетевого оборудования (как будет видно дальше), а часть просто не доступна. Это примерно совпадает с моими знаниями о том, что к сети подключено около 2500 тысяч машин.

[root@localhost vikont]# ifconfig

eth0 Link encap:Ethernet HWaddr 00:30:4F:2D:71:89

inet addr:10.10.154.99 Bcast:10.255.255.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:3531 errors:0 dropped:0 overruns:0 frame:0

TX packets:15468 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:100

RX bytes:219751 (214.6 Kb) TX bytes:1039178 (1014.8 Kb)

Interrupt:11 Base address:0xc000

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:53 errors:0 dropped:0 overruns:0 frame:0

TX packets:53 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:3890 (3.7 Kb) TX bytes:3890 (3.7 Kb)

Команда route определяет статические маршруты – явно заданные элементы таблицы маршрутизации, которые не меняются даже при запущенных демонах маршрутизации.

[root@localhost vikont]# route add default gw 10.10.154.1

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

[root@localhost vikont]# route

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

10.10.154.0 * 255.255.255.0 U 0 0 0 eth0

127.0.0.0 * 255.0.0.0 U 0 0 0 lo

default 10.10.154.1 0.0.0.0 UG 0 0 0 eth0

На этом этапе настройки системы моя машина уже доступна всем узлам сети и наоборот, следовательно начнем сканирование :)

[root@localhost nmap-3.50]# ./nmap -sT -O 10.10.139-155.*

этой командой я организую глобальное сканирование локальной сети с помощью TCP-сканирования на предмет проверки запущенных сетевых служб и определения удаленной операционной системы. Результат был предсказуем, большинство машин сети имеет стандартный набор открытых портов (21, 22, иногда попадается даже SMTP, 80) и ОС Windows 2000/XP. Хотя попадаются и Linux/Unix системы c SMP ядрами, работающие как файл-серверы и доступные по протоколу ftp:

[root@localhost nmap-3.50]# ftp 10.10.154.244

Connected to 10.10.154.244.

220 ProFTPD 1.2.9 Server (ProFTPD Server) [M-Server]

500 AUTH not understood

500 AUTH not understood

KERBEROS_V4 rejected as an authentication type

Name (10.10.154.244:vikont): anonymous

331 Anonymous login ok, send your complete email address as your password.

Password:

230 Anonymous access granted, restrictions apply.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> ls

200 PORT command successful

150 Opening ASCII mode data connection for file list

drwxr-xr-x 2 ftp operator 944 Dec 11 17:58 BLOODHOUNDGANG

drwxr-xr-x 11 0 root 920 Nov 3 19:43 Blink 182

drwxr-xr-x 30 ftp operator 720 Nov 27 17:42 Guitar Pro 2

-rw-r--r-- 1 ftp operator 9994240 Nov 30 10:42 MSO.DLL

drwxr-xr-x 2 ftp operator 80 Dec 6 18:24 MathCad

drwxr-xr-x 2 ftp operator 96 Oct 27 18:30 Script

drwxr-xr-x 2 ftp operator 144 Nov 3 10:19 Sound Forge 7.0 Rus

----r--r-- 1 ftp operator 878030 Nov 3 10:40 Sound_track-GreenGreen(the_end).mp3

drwxr-xr-x 3 ftp operator 72 Nov 10 12:43 Users

drwxr-xr-x 2 ftp operator 144 Nov 28 13:38 la2

drwxr-xr-x 4 ftp operator 632 Dec 6 15:07 line age 2

drwxr-xr-x 3 0 root 120 Nov 27 18:17 utils

226 Transfer complete.

ftp>

Тот же прием сканирования, примененный на адресах 10.10.138-160.1
дает четкое представление о маршрутизаторах моей локальной сети:

Interesting ports on 10.10.147.1:

(The 1650 ports scanned but not shown below are in state: closed)

PORT STATE SERVICE

21/tcp open ftp

22/tcp open ssh

135/tcp filtered msrpc

136/tcp filtered profile

137/tcp filtered netbios-ns

138/tcp filtered netbios-dgm

139/tcp filtered netbios-ssn

445/tcp filtered microsoft-ds

2048/tcp filtered dls-monitor

Device type: general purpose

Running: FreeBSD 4.X

OS details: FreeBSD 4.3 – 4.4PRERELEASE

...

Interesting ports on 10.10.155.1:

(The 1650 ports scanned but not shown below are in state: closed)

PORT STATE SERVICE

23/tcp open telnet

80/tcp open http

135/tcp filtered msrpc

136/tcp filtered profile

137/tcp filtered netbios-ns

138/tcp filtered netbios-dgm

139/tcp filtered netbios-ssn

445/tcp filtered microsoft-ds

2048/tcp filtered dls-monitor

Device type: general purpose|broadband router|WAP|firewall

Running: Linux 1.X, Netopia embedded, Zcomax embedded, Zyxel ZyNOS

OS details: Linux 1.3.20 (X86), Netopia DSL Router, Zcomax Wireless Access Point XI-1500, Zyxel XyWALL 50 (ZyNOS 3.52), Zyxel 944S Prestige router

...

на ряду с сетевым оборудование компаний 3Com и Zyxel в качестве маршрутизаторов применяются и обычные компьютеры со специально настроенной операционной системой (Linux, FreeBSD). Следовательно логично предположить, что моя локальная сеть имеет звездообразную топологию, как самую расширяемую и экономичную. Правда для меня пока еще остается загадкой, как маршрутизаторы располагаются относительно друг друга, т.е. существует ли центральный сегмент со своим маршрутизатором или нет?



(рис. 1) С помощью telnet можно подключиться почти к любой машине сети

Эх, жалко мне не доступен компьютер с адресом 10.10.147.1, ведь именно через него и другие маршрутизаторы проходит огромная часть сетевого трафика. Логины, пароли и другая информация как на ладони – бери не хочу. Ну а пока, приходиться довольствоваться анализом собственного трафика. Следующий пример – это результат анализа сетевых пакетов, посланных моей системой при установлении telnet-соединения с машиной 10.10.154.1, при этом на вводимый логин: qwerty, и пароль: qwerty система отвечает планированным отказом (рисунок сверху).



(рис. 2) Ethereal - отличный снифер

Символы, посланные посредством протокола в соответствующих строчках, складываются в слово qwerty и еще одно слово qwerty. Слава Америке! Чудес на свете не бывает и хакерами не рождаются, а становятся.

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