Модель
OSI.
Сетевые средства ОС UNIX
Введение.
Исторически платформа ОС Unix
является для разработчиков программных
продуктов той средой, в которой
разрабатывались и разрабатываются все
новинки в области операционных систем.
Не удивительно, что первая связь в
Internet
, была осуществлена университетом в
Беркли в 1983 году на платформе UNIX
BSD
по протоколу TCP/IP.
С тех пор любая реализация ОС UNIX
неразрывно связана с этим протоколом.
Даже если Ваш ПК с установленной ОС
UNIX
не связан с какой-либо сетью, протокол
TCP/IP
обязательно присутствует в системе,
имеет собственный локальный IP-адрес
127.0.0.1, который ОС использует для
внутренних нужд системы, в частности,
для вывода информации на печать.
Структурная
схема стека протоколов TCP/IP
представлена ниже
ftp
ssh
smtp
imaps
smb
nfs
Прикладной уровень
21
22 25 993 139
2049 Порт
TCP
UDP
Транспортный уровень
IP
Сетевой уровень
ARP
Eth
Физический
уровень
|
_________|________________
Среда передачи данных Из
схемы легко можно представить, как
взаимодействуют уровни протокола.
Данные
поступают из кабеля в сетевую плату.
Сетевая плата управляется драйвером
Eth.
Обычно в конфигурационных файлах
этот интерфейс обозначается как Eth0.
Если компьютер не подключен к сети и
работает автономно, то используется
внутренний интерфейс. На схемах и
утилитах он обозначается как lo
(loop).
Из сетевой платы данные направляются
в модули IP
и ARP.
В модуле IP
определяется соответствие IP-адреса
данных IP-адресу
компьютера. Если IP-адреса
совпадают, то данные отправляются на
транспортный уровень. Кроме этого на
сетевом уровне определяется, находятся
ли взаимодействующие компьютеры в
одной сети или в разных сетях. Если сеть
для компьютеров общая, то они могут
взаимодействовать напрямую без
посредников. Если ПК находятся в
разных сетях, то им приходится
взаимодействовать через посредника
(маршрутизатор, шлюз). Для определения
номера сети используется маска сети.
Отметим, что в настоящее время IP-сети
разделяются на три класса.
Класс
сети определяется по значению первого
байта IP-адреса.
Значение выражается в десятичном виде
в диапазоне от 0 до 255.
Классу
А соответствуют
значения 1 – 126. Например, IP
адрес ПК сети этого класса может
быть 124.226.240.35. По умолчанию маска сети
класса A
равна 255.0.0.0
Значение
127 отдано для локального IP-адреса
компьютера (localhost).
IP-адрес
127.0.0.1 имеет любой компьютер. Он
используется для тестирования протокола
TCP/IP.
Маска сети этого адреса также равна
255.0.0.0
Классу
B
соответствуют значения первого байта
адреса в пределах 128 –191. Маска сети
255.255.0.0
Классу
С соответствуют
значения первого байта адреса в пределах
192 –223. Маска сети 255.255.255.0
Маска
сети используется для выделения номера
сети из IP-адреса
ПК. Для этого IP
адрес логически перемножается на маску
сети. Результат и есть номер IP-сети,
а остаток – номер ПК в сети. Например,
IP-адресу
ПК 194.226.240.37 соответствует сеть
194.226.240.0, в которой он находится под
номером 37. Такой ПК может непосредственно
взаимодействовать, например, с ПК, IP-
адрес которого 194.226.240.190, так как они
находятся в одной сети, а с ПК, IP-адрес
которого 194.226.241.36, он может взаимодействовать
только через шлюз, так как эти ПК
находятся в разных IP-сетях.
Обычно шлюз, через который может
взаимодействовать ПК, задается в
конфигурации как шлюз по умолчанию.
Отметим,
что при такой классификации в сети
класса С может находиться до 254 ПК,
что может сильно замедлить работу
сети. Поэтому можно разбить такую сеть
на подсети, используя последний байт
маски. Например, маска 255.255.255.128 позволяет
разбить сеть класса С на две подсети,
в каждой из которых может находиться
не более 126 ПК, а маска 255.255.255.192 – на
четыре подсети по 62 ПК в каждой.
Модуль
ARP
устанавливает соответствие между
адресом сетевой платы и IP-адресом.
Модули
транспортного уровня отвечают за
безошибочную транспортировку данных
и посылают подтверждение о получении
данных. Данные из транспортного уровня
отправляются на прикладной уровень.
Соответствие данных прикладной
программе определяется номером порта.
Так приложению ftp
соответствует 21 порт. Соответствие
порта транспортному протоколу с
одной стороны и приложению с другой
стороны, отражены в в файле /etc/services.
Цель
работы:
Рассмотреть сетевые возможности ОС
UNIX
с помощью утилит командной строки.
Сопоставить модель OSI
со стеком протоколов TCP/IP. Отметим,
что настройка сетевого протокола TCP/IP
в ОС UNIX
проводится во время загрузки системы
с помощью специального командного
файла network,
расположенного в каталоге /etc/init.d/
.
Команда
/sbin/ifconfig
Команда
/sbin/ifconfig
выводит на экран информацию о настройках
физического, канального и сетевого
уровней модели OSI
в Вашем ПК:
интерфейсы
ПК (сетевые платы и модемы);
MAC-адреса
сетевых плат и связанных сними IP-адреса;
протоколы,
используемые системой (TCP/IP
и IPX/SPX);
указание
максимального размера передаваемого
по каждой определяемой сети блока
данных (MTU);
метрику
сети;
количество
переданных и принятых пакетов, число
столкновений (коллизий).
Команда
/sbin/route
Команда
/sbin/route
предназначена для составления таблицы
маршрутов сетевого уровня модели OSI.
Будучи введенной с командной строки
без параметров, выдает информацию о
маршрутах для всех связанных с сетевыми
интерфейсами сетей и определяет
настройки модуля IP.
Информация, выдаваемая этой командой,
состоит из строк для каждого сетевого
интерфейса и маршрута по умолчанию
(default).
Эта информация разбита на поля:
Destination
- IP-сеть;
Gateway
- шлюз,
который обязан использовать сетевой
интерфейс для связи с другой сетью.
Значение * говорит об использовании
шлюза по умолчанию, указанного в маршруте
по умолчанию.
Flag
- тип маршрута
U
- рабочий маршрут
G
- узел, указанный в маршруте, используется
как шлюз для соединения с другой сетью.
Metric
Значение 1 указывает, что данный шлюз
является первым на пути к другой сети.
Ref
- отмечает время, прошедшее с момента
установки связи текущего узла со шлюзом.
Use
- число пакетов, переданных через шлюз.
Iface
- имена сетевых интерфейсов, используемых
в маршрутах.
PS:
К сожалению, команда route
текущей версии в целях защиты сети не
выдает описанную выше информацию.
В общем случае,
маршрут следования пакета информации
до целевого узла можно определить
командой
traceroute
"имя узла" Например,
/usr/sbin/traceroute
microsoft.ru
Кроме
указанных команд проверки конфигурации
протокола TCP/IP,
можно указать и команду
/sbin/arp
-a
Эта
команда выводит содержимое таблицы
arp,
с помощь которой устанавливается
соответствие между IP
и MAC-адресами
для каждого локального узла, с которым
ранее была установлена связь.
Отметим,
что система связывает протоколы
транспортного уровня с прикладными
протоколами с помощью портов. Информация
о том, какие протоколы может использовать
система в стеке протоколов TCP/IP
располагается специальном файле
/etc/protocols,
а информация о портах прикладных
протоколов - в /etc/services.
Просмотреть содержимое этого файла
можно, например, с помощью редактора
mc
(клавиша F4),
или в редакторе vi
(vi
/etc/services).
Этот файл содержит информацию в текстовом
виде, в строках которой указаны прикладные
протоколы (столбец service-name),
а в столбце port/protocol
– номер порта и протокол транспортного
уровня, которые использует данный
прикладной протокол для получения
информации из сети. Для нахождения
нужной строки в тексте с помощью
редактора mc
воспользуйтесь контекстным поиском
(клавиша F7).
В редакторе vi
поиск осуществляется в командном режиме
(при отсутствии подсказки в низу окна
ВСТАВКА)
набором символа / с указанием нужного
шаблона поиска, например /imaps.
Покинуть
редактор vi
следует по клавишной комбинации
<Shift>+<Z>+<Z>
Информацию
о сетевых приложениях, активных в данный
момент времени, и о транспортных
протоколах, обслуживающих данное
приложение, можно получить по командам
nmap
или netstat.
Например,
nmap
localhost
получим:
Starting
nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2007-03-30 16:07
YEKST Interesting
ports on localhost.localdomain (127.0.0.1): (The
1645 ports scanned but not shown below are in state: closed)
Port
State Service 21/tcp
open ftp 22/tcp
open ssh 25/tcp
open smtp 80/tcp
open http 110/tcp
open pop3 111/tcp
open rpcbind 139/tcp
open netbios-ssn
143/tcp open imap
443/tcp
open https
В случае выполнения
команды
netstat
–a
| less
В
результате будет выведена информация
следующего содержания: Active
Internet connections (servers and established)
Proto
Recv-Q Send-Q Local Address Foreign Address
State
tcp
0 0 *:32768 *:*
LISTEN
tcp
0 0 *:32769 *:*
LISTEN
tcp
0 0 *:nfs
*:* LISTEN
tcp
0 0 *:swat
*:* LISTEN
tcp
0 0 *:netbios-ssn *:*
LISTEN
tcp
0 0 aprold-new.cc.usue.ru:ftp
650-24.cc.usue.ru:1052 FIN_WAIT2
tcp
0 0 aprold-new.usue.ru:ssh
bolivar.usue.ru:1280 ESTABLISHED
Отсюда
видно какое приложение (название или
порт) локального компьютера (Local
Address)
«прослушивает» сеть (LISTEN),
установило соединение (ESTABLISHED)
с удаленным компьютером или ожидает
его, и, а также используемый для соединения
протокол транспортного уровня. В
частности, строка
tcp
0 0 aprold-new.usue.ru:ssh
bolivar.usue.ru:1280 ESTABLISHED
говорит
о том, что ПК bolivar.usue.ru
с помощью динамического порта 1280
обменивается информацией с ПК
aprold-new.usue.ru
по протоколу ssh.
Работоспособность
протокола прикладного уровня можно
проверить с помощью команды telnet,
например, порта 21, с которым работает
протокол FTP.
bash-2.05a$
telnet aprold-new.cc.usue.ru 21
Trying
10.6.5.243...
Negotiating
binary mode on output.
Connected
to aprold-new.cc.usue.ru (10.6.5.243). Escape
character is '^]'.
220
(vsFTPd
2.0.3).
Нажмите
клавишную комбинацию <Ctrl>+
<]>, а затем
с подсказки
telnet
наберите quit.
Фраза
«Connected
to
aprold-new.cc.usue.ru»
говорит о работоспособности 21 порта.
Если
программное обеспечение протокола
прикладного уровня, соответствующего
указанному порту, окажется неработоспособным,
система выведет сообщение:
«Connection
refused».
Для
удобства распознавания узлы в Интернете
принято именовать в совокупности с
именем домена, который, в свою очередь,
может быть разбит на поддомены, называемые
иногда зонами.
С
именами работают пользователи Интернет.
Однако сетевое программное обеспечение
при адресации данных использует
IP-адреса,
представленные в числовом виде. Поэтому,
после передачи информации в сеть
Интернет, происходит преобразование
имен узлов в IP
- адреса. Эти преобразования могут быть
проведены как на локальном уровне, так
и на сетевом. Локальное преобразование
осуществляется с помощью файла
/etc/hosts,
в котором пользователь может прописать
наиболее часто используемые узлы и
соответствующие им IP
- адреса.
На
сетевом уровне преобразование
осуществляется специальными
серверами, называемыми серверами DNS
(Domain
Name
Server).
Преобразование происходит в следующей
последовательности: сначала
просматривается файл /etc/hosts
и, если в нем содержится информация о
целевом узле, то именно она используется
для преобразования. Если информация
отсутствует, то происходит обращение
к серверу DNS.
Обычно сервер DNS
домена конфигурируется администратором
сети, который прописывает все узлы
домена и присваивает им IP-
адреса. Информация сервера DNS
используется также и для идентификации
узла в локальной сети. Для обозначения
отдельных узлов в файлах конфигурации
DNS
используются следующие сокращения: NameServer
NS
Address A указывает
на преобразование имени узла в IP-адрес
Pointer PTR
преобразование имени в IP-адрес MailExchange
MX
почтовый сервер
CanonicalName
CNAME
псевдоним или дополнительное
имя узла Для
просмотра имен узлов домена и
соответствующих им IP-адресов
в UNIX
предусмотрена утилита nslookup.
В своем изначальном состоянии утилита
nslookup
позволяла просмотреть всю информацию
об узлах любого домена. Это оказалось
слабым местом DNS-сервера,
и в большинстве команд этой утилиты
сейчас выдается минимум информации
или команда отключена совсем, например
ls.
Утилиту можно запустить с командной
строки, указав в качестве параметра
имя узла или IP-
адрес узла, например
nslookup
relay.usue.ru В
этом случае система выдаст IP
адрес узла relay.usue.ru Если
команда запускается без параметров,
то программа переходит в режим
ожидания ввода информации, в качестве
которой можно указать имя узла или
установить опцию, позволяющую
выделить интересующий класс узлов.
После просмотра информации, следует
выйти из программы по команде exit.
Рассмотрим
основные опции программы nslookup. а)
просмотр информации о почтовых серверах
домена. nslookup set
type=MX usue.ru Программа
покажет информацию о всех почтовых
серверах домена. exit б)
просмотр информации о серверах имен. nslookup
set
type=NS usue.ru . exit в)
просмотр информации поддоменов nslookup
set
domain=usue.ru set
type=any usue.ru Система
покажет информацию о серверах УрГЭУ. exit г)
просмотр информации о всех узлах домена
( на сегодняшний день команда
отключена) nslookup ls
usue.ru exit
Узлы
текущего домена можно просмотреть с
помощью утилиты host.
Например, информацию о именах всех
узлов домена usue.ru
и их IP
адресах можно просмотреть по команде host
-l
usue.ru
| less
Среди
программ, используемых ОС UNIX
в Интернет, следует отметить, в первую
очередь, программы mail
(изучена нами ранее) и ftp.
Программа ftp
присутствует виртуально во всех
системах. Запуск ftp
под Windows
9x
можно выполнить набором команды ftp
"имя узла" или
просто ftp > Вход
по ftp
на удаленный узел, например
aprold-new.cc.usue.ru,
с вводом имени и пароля пользователя
выполняется в следующей
последовательности: ftp open узел
> aprold-new.cc.usue.ru пользователь
<aprold-new.cc.usue.ru> "logname" Пароль:
"password"
Если
имя и пароль введены верно, то демон
процесс ftpd
удаленного сервера устанавливает связь
с локальной программой ftp
и показывает готовность ввода информации
подсказкой
ftp>
Теперь
можно вводить команды или получить
список допустимых команд, введя с
подсказки ftp
команду
ftp>
?
Информацию
о действии любой внутренней команды
интерпретатора ftp
можно получить по команде ftp>
help
"имя команды"
Команду
ftp
можно, например, выполнить с командной
строки FAR
по команде cd
ftp://[logname]:[password]@host/dir или
на любом Web-броузере,
введя в строку URL ftp://[logname]:[password]@host/dir
Если
имя не вводится, то система выполняет
доступ с ограниченными правами
пользователя anonymous
в общедоступные каталоги системы.
Однако наибольший интерес представляют
команды, использующие сервис ftp
в отложенное время, например:
wget
- доставка файлов и каталогов удаленного
узла, указанного в качестве параметра
команды, которые могут быть запущены
в любое астрономическое время по команде
at.
Подробно об at
в руководстве (man
at).
Описание команды at
русифицировано. Например: b)
wget -r ftp://[logname]:[password]@aprold-new.cc.usue.ru//dir Информация
доставляется в текущий каталог. PS:
утилита mirrror
в настоящее время не работает! Для
запуска в отложенное время любой команды
из списка допустимых команд, например,
определяемых командой help,
необходимо выполнить: at
чч:mm
<Enter> (где
чч:мм - время запуска задания в часах и
минутах), после
чего команда at
переходит в режим ожидания ввода
команды. Можно ввести, например,
wget
-r ftp://aprold-new.cc.usue.ru/pub//index.html и
далее <ctrl>+<d> после
чего введенная команда ставится в
очередь на выполнение по указанному
времени. Просмотреть очередь можно по
команде at
-l
или atq Пользователь
может выключить рабочую станцию, однако
команда выполнится в указанное время,
о чем получит уведомление по E-mail.
Создание
личного web-сайта Любой
пользователь OC
UNIX
может создать собственную web
страницу и сделать ее доступной для
просмотра из Internet
по адресу: http://host/~logname например http://aprold-new.cc.usue.ru/~fedorov
При
обращении к такому адресу система
попытается найти и прочитать файл
index.html,
который должен находится в подкаталоге
public_html
домашнего каталога пользователя. В
данном случае, /home/fedorov/public_html/index.html.
В файлах настройки http-сервера
каталог /home/"logname"/public_html
указан как личный каталог ~logname
пользователя, из которого можно прочитать
любую Web
страницу, указав ее полное имя, например: http://aprold-new.cc.usue.ru/~fedorov/review.html
Достижения
UNIX
в средствах электронной связи позволяют
эффективно использовать эту ОС в
локальных сетях, представив ее в качестве
Novell
NetWare
Server
3.12 и Windows
NT
Server.
Для представления OC
UNIX
в качестве сервера Netware
Server
3.12 используется пакет программ mars_nwe,
который позволяет рабочим станциям
обмениваться информацией с OC
UNIX
посредством протокола ipx/spx.
На рабочих станциях UNIX
сервер виден как NetWare
сервер. Для администрирования сервера
используются стандартные утилиты
NetWare
такие, как syscon.exe,
filer.exe
и т.д. Эти утилиты с некоторыми
ограничениями доступны обычному
пользователю. В частности, любой
пользователь OC
UNIX
автоматически становится пользователем
сервера NetWare
с логическим именем пользователя
UNIX
и паролем по умолчанию top-secret.
Это означает, что Вы можете
зарегистрироваться на сервере NcpServer
(псевдоним aprold),
перейти в каталог /sys,
затем подключить каталог /sys/public
в качестве сетевого драйва, запустить
программу syscon
и с ее помощью изменить пароль.
Система предоставит Вам полные права
на каталог home,
который фактически является вашим
домашним каталогом. NcpServer
поддерживает длинные имена в стиле
OS/2
(только латинские символы). Кроме
указанного, данный пакет позволяет
подключиться к любому серверу NetWare
по команде: ncpmount
-S Server -U User dir
Например,
ncpmount
-S master -U guest dirmaster
Где
dirmaster
- подкаталог текущего каталога и данной
команде указан как точка монтирования
файловой системы сервера master.
Для
представления OC
UNIX
в качестве сервера Windows
NT
используется пакет программ Samba.
Этот пакет позволяет рабочим станциям
связываться с UNIX
сервером посредством протокола NetBios
(транспортный протокол фирмы IBM).
В ЛВС УрГэу сервер aprold-new
виден как NT
сервер Aprold-new,
который является первичным контроллером
домена (Primary
Domain
Controller
– PDC)
домена SAMBA-NEW.
Для регистрации на сервере Aprold-new
необходимо зарегистрироваться на
рабочей станции Windows
XX
под логическим именем UNIX
клиента. Далее с помощью команды "поиск"
найти в сети сервер Aprold-new,
на котором том "logname"
является Вашим личным каталогом с
полными правами доступа. В этом каталоге
Вы можете создавать подкаталоги в стиле
Windows
XX.
Кроме
указанного сервиса, пакет SAMBA
позволяет просмотреть: общедоступные
ресурсы рабочей станции по команде:
smbclient
-L «WorkStation»,
например,
smbclient -L aprold-new | less
б)
получить доступ к любому общедоступному
ресурсу рабочей станции по команде: smbclient
//host/dir -U User%passwd
например,
smbclient //aprold-new.cc.ususe.ru/Soft_Linux -U guest%
Получение доступа
отмечается подсказкой:
Smb:\>
Для
просмотра содержимого каталога выполните
команду ls.
Определить название каталога можно
командой pwd.
Если
с подсказки ввести знак ?, система выдаст
список допустимых команд. По команде
help
"имя команды", Вы получите
описание команды.
Основной
задачей любой сетевой ОС является
хранение протоколов работы с системой.
ОС linux не является исключением, и вся
служебная информация сохраняется в
так называемых log-файлах, расположенных
в каталоге /var/log. Большинство из файлов
доступны для просмотра только
администратору системы. Однако файл
регистраций пользователей может
просмотреть любой заинтересованный
пользователь по команде:
last
логическое имя пользователя | less
например:
last
fedorov | less
Выводит: fedorov
pts/24 bolivar.usue.ru Tue Feb 25 11:21 - 11:25 (00:03) fedorov
pts/23 650-13.cc.usue.r Tue Feb 25 10:37 - 10:40 (00:02) fedorov
pts/22 650-11.cc.usue.r Tue Feb 25 10:18 - 10:21 (00:02) fedorov
pts/20 bolivar.usue.ru Tue Feb 25 10:10 - 13:36 (03:25)
по
которой можно определить различные
параметры пребывания пользователя в
на сервере.
8Лабораторная работа № 2
Физический уровень модели osi.
Сетевой уровень модели osi.
Транспортный и прикладной уровни модели osi
II. Интернет. Имена узлов и структура доменов
Unix и Интернет
Unix в локальной сети
2
7
3
6
4
5