Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Технологии сетевых коммуникаций. Учебно-методическое пособие

.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
1 Мб
Скачать

3.10.Изучить команду трассировки traceroute. Сохранить путь пакета до адреса хоста, указанного в варианте заданий в файле trace.dmp.

3.11.Изучить команду ifup и ifdown.

3.12.Изучить команду dhclient (активизация интерфейса в режиме dhcp). В процессе активации сетевого интерфейса в режиме DHCP перехватить сетевой обмен командой tcpdump.

3.13.Изучить команды.

3.14.Изучить опции команды scp. Принять и получить данные с ssh сервера, указанного преподавателем, при помощи команды csp.

3.15.Исследуйте, включена ли в вашей системе поддержка IPV6.

3.16.Изучите команду ping6.

3.17.Исследуйте, использует ли кто-либо в вашей сети IPV6 (ping6 –c4 –I eth0 ff02::1. Расшифруйте типы адресов, установите соответствие в пространство IPV4, если это возможно.

3.18.Попробуйте обратиться к веб-серверу компьютера преподавателя по адресу IPV6, предполагая, что адрес MAC сетевой карты компьютера преподавателя известен и был автоматически отражен на адресное пространство IPv6 как link-local.

3.19.Назначьте для своего компьютера адрес ipV6 локального немаршрутизируемого диапазона link local (fc00::) . Выполните Ping6 компьютера преподавателя. Обратитесь к компьютеру преподавателя, по http, используя адресацию IPv6.

3.20.Разработайте простейший сервер при помощи команды netcat, который будет автоматически сообщать клиенту веб-браузеру на порт 8080 информацию согласно варианту ( пример «hello world» см. в приложении). Попробуйте различные варианты подключения (через ин- тернет-браузер или через программу telnet).

4. Варианты заданий

Вариант 1

-eth0: автоматически

-eth0:1 192.168.1.71 выделен в подсети на 128 адресов.

-Маршрутизатор по умолчанию: 192.168.1.1.

Подпункт 3.20. Отразить текущее время в формате UNIX.

11

Вариант 2

eth0: автоматически

eth0:1 192.168.1.72 выделен в подсети на 32 адреса. Маршрутизатор по умолчанию: 192.168.1.1.

Подпункт 3.20. Отразить текущее время(date) в формате UTC.

Вариант 3

eth0: автоматически

eth0:1 192.168.1.75 выделен в подсети на 64 адреса. Маршрутизатор по умолчанию: 192.168.1.1.

Подпункт 3.20. Отразить текущее время(date) в формате «местное время».

Вариант 4

eth0: автоматически

eth0:1 192.168.1.76 выделен в подсети на 64 адреса. Маршрутизатор по умолчанию: 192.168.1.1 Подпункт 3.20. Отразить текущее время в формате «Локального

времени».

Вариант 5

eth0: автоматически

eth0:1 192.168.1.77 выделен в подсети на 64 адреса. Маршрутизатор по умолчанию: 192.168.1.1.

Подпункт 3.20. Передать клиенту данные об активных пользователях системы (who).

Вариант 6

eth0: автоматически

eth0:1 192.168.6.78 выделен в подсети на 128 адреса. Маршрутизатор по умолчанию: 192.168.1.1. Подпункт 3.20. Передать клиенту список процессов.

12

Вариант 7

eth0: автоматически

eth0:1 192.168.1.79 выделен в подсети на 256 адреса. Маршрутизатор по умолчанию: 192.168.1.1.

Подпункт 3.20. Передать клиенту количество свободной памяти в системе.

5. Содержание отчета

5.1. Цель работы. 5.2. Вариант задания.

5.3. Имена, размер, путь время модификации созданных файлов. 5.4. Результаты экспериментов с командой nc.

5.5. Выводы.

6. Методическая информация для преподавателя

Для выполнения данной лабораторной работы потребуется произвольная версия операционной системы Линукс. Автор настоящего учебно-методического пособия рекомендует использовать для этой цели версию Ubuntu с длительным сроком поддержки (на момент написания данного пособия актуальными являлись версии 14.04 и 12.04). Для выполнения работы потребуется сетевая ифраструктура

Ehternet. Требуется доустановить пакеты sudo apt-get install tcpdump traceroute ncaptool.

Контрольные вопросы

1.Укажите классы следующих адресов: 131.107.2.89; 3.3.57.0; 200.200.5.2; 191.107.2.10.

2.В сетях каких классов IP-адресов более 1000 узлов?

3.В сетях каких классов IP-адресов только 254 узла?

4.Определите, какие IP-адреса не могут быть назначены узлам, объясните почему:

131.107.256.80; 0.127.31.20; 192.168.6.5; 10.10.10.0; 1.1.1.1; 212.20.14.32;

5.Что такое маршрут по умолчанию?

6.Что такое интерфейс внутренней связи, какой адрес ему обычно назначают?

13

7.Расскажите про команду route.

8.Объясните назначение команды ping.

9.Объясните назначение команды ifconfig.

10.Объясните назначение команды tcpdump.

11.Объясните назначение команды netstat .

12.Объясните назначение команды traceroute.

Приложение

Справочник команд

Сетевые команды

ifconfig [interface] [address] [netmask mask] [up / down] – активи-

зирует/деактивизирует интерфейс.

[interface] – сетевой интерфейс. Имя устройства «сетевая карта» ethN, где N – порядковый номер (нумерация с 0). На одном физическом интерфейсе (сетевой карте) можно активизировать несколько IPадресов. В этом случае имя интерфейса имеет вид eth0:1, eth0:2 и.т.д.

[address] – назначаемый IP-адрес, например 192.168.6.1

[netmask mask] – маска адреса, например netmask 255.255.255.0

[up/down] – активировать/деактивировать сетевой интерфейс.

ifconfig eth0:0 192.168.6.5 netmask 255.255.255.0 up

route – манипулирует таблицей маршрутов.

route [add / del] [-net / -host / default] target [netmask Nm] [gw router] [add / del] добавить / удалить

[-net / -host / default] маршрут к сети / хосту / по умолчанию [Target] – пункт назначения

[Netmask Nm] – сетевая маска

[gw router] – маршрутизатор

Вызов без параметров выводит текущую таблицу маршрутов.

route add –net 192.168.6.0 netmask 255.255.255.0 gw 192.168.1.1

arp – манипулирует кэшем arp.

14

Вывести таблицу, не разбирая имен: arp –an

Добавить запись: arp –s [host] [hwaddr]

Удалить запись: arp –d host

arp –an

tcpdump – протоколирует трафик в сети

tcpdump [- c N] –i интерфейс

[-c N] – получить N пакетов и выйти -i интерфейс – имя интерфейса –i eth0

tcpdump –c 10 -i eth0:1

netstat – предоставляет информацию о сетях, сокетах портах.

netstat –r – выводит таблицу маршрутов netstat –i – информация об интерфейсах

флаг –n – позволяет распечатывать адреса хостов, а не имена, подробнее смотрите в маn и info

traceroute – трассировка маршрута. Позволяет отследить маршрут движения IP-пакетов от одного хоста к другому.

traceroute [-n] назначение

[-n] – требует распечатывать IP-адреса вместо имен назначение – IP-адрес, к которому исследуется маршрут. traceroute –i eth0

Ping – пакетный локатор. Посылает эхо-запрос, на этот эхо-запрос адресат создает эхо-отклик. Таким образом, проверяется доступность адресата и выполняется хронометраж.

ping [-c N] назначение

[-c N] посылать N эхо-запросов Назначение – IP-адрес

ping –c 5 192.168.6.100

15

SCP (от англ. secure copy) – протокол копирования файлов, использующий в качестве транспорта SSH.

В UNIX-подобных операционных системах существует одноимённая (scp) утилита удалённого копирования файлов (входит в состав пакета openssh).

Команда копирования локального SourceFile на удалённый хост: scp SourceFile user@host:/directory/TargetFile

Команда копирования SourceFile с удалённого хоста: scp user@host:/directory/SourceFile TargetFile

Если ssh работает на другом порту, то тогда указывается: scp -P port user@host:/directory/SourceFile /directory/TargetFile

Копирование SourceFolder с удалённого хоста внутрь локального TargetFolder (на локальном хосте получится, что SourceFolder будет находиться внутри TargetFolder):

scp -r user@host:/directory/SourceFolder TargetFolder

netcat – утилита командной строки Unix, позволяющая устанавливать соединения TCP и UDP, принимать данные, передавать их.

echo -e "HTTP/1.1 200 OK\nContent-Type: text/html\n\n Hello World"; | nc -vv -l 8080 - отразит у клиента в браузере приветствие.

( echo 1; cat /proc/partitions) | nc –l –v 8080 расскажет клиенту о ваших активных дисках.

Список литературы

1.Стивенс У. Ричард. Протоколы TCP/IP Практическое руководство. – СПб.: Невский диалект; БХВ-Петербург, 2003. – 672 с.

2.Костромин В.А. Самоучитель Linux для пользователя. – СПб.: БХВ-Пе-

тербург, 2003. – 672 с.: ил.

3.Колесниченко Д.Н. Linux сервер своими руками. – СПб.: Наука и техни-

ка, 2002. – 576 с.: ил.

4. Кирх Олаф. Lunux для профессионалов. Руководство администратора сети. – СПб.: Питер, 2000. – 368 с.: ил.

16

ЛАБОРАТОРНАЯ РАБОТА № 2

Разработка сетевого приложения с использованием встроенного командного языка shell

Цель работы: получение практических навыков создания сетевых приложений с использованием языка командной оболочки Линукс сценариев shell.

1. Краткие теоретические сведения

Лабораторная работа выполняется в среде операционной системы

OS Linux.

Навыки программирования на языках командной оболочки оказываются весьма полезными при администрировании функций операционной системы. Если заглянуть в каталог управляющих программ сетевого стека TCP-IP и других сетевых компонент, то можно заметить, что немалая часть автоматизации таких процедур реализована именно с помощью языка shell -сценариев. Язык сценариев легок в изучении, в нем не так много специфических операторов и конструкций (их также называют встроенными), а большую часть своей функциональности он приобретает за счет вызова внешних команд операционной системы. В качестве внешней команды можно использовать и собственное приложение, написанное и откомпилированное , например, на языке Си, главное условие – приложение должно возвращать код возврата (return в функции int main() ), чтобы его можно было использовать в командах ветвления. Синтаксис языка достаточно прост и прямолинеен, он почти полностью повторяет команды, которые приходится вводить в командной строке при администрировании функций системы, в том числе сетевых. Скрипты shell возвращают нас к классической философии UNIX – разделение сложных задач на небольшие независимые компоненты.

Язык shell оказывается весьма удобен для встраиваемых или минималистических версий Линукс, с которыми особо часто приходится

17

встречаться во множестве сетевого, системного оборудования, а также интеллектуальных контроллеров. Наиболее удобное применение, таким образом, лежит в области создания процедур автоматизации различных процессов, в том числе в области обмена данными. Однако следует помнить, что язык shell, несмотря на то, что он обладает всеми признаками языков программирования, такими как циклы (for, while и другие), ветвления (включая case) и подпрограмм (допускается рекурсивный вызов функций), не приемлем:

для ресурсоемких задач;

для задач, связанных с применением математики и сложных алгоритмов;

язык строго не является кросс-платформенным (хотя при желании его можно исполнять и на Windows);

для сложных приложений, требующих многомерных или специально структурированных массивов;

для проприетарных (закрытых) программ, так как скрипт представляет собой простой набор команд, записанный открытым текстом.

2. Методические указания

2.1.Все файлы и Shell script необходимо создавать в домашнем каталоге пользователя “Stud”. Пример shell-скрипта смотрите в приложении.

2.2.Для реализации задачи, выполняемой скриптом, создавайте программный канал между сетевой командой (ping, traceroute, netstat, tcpdump, arp) и командой-фильтром grep, результат направляйте команде - счетчику wc:

ping [адрес] | grep “подстрока” | wc –ключ, или используйте код возврата : if[ $? -eq 0 ]; then…

2.3.В качестве строки поиска для команды-фильтра grep указывайте строку, которая гарантированно присутствует в успешном ответе и отсутствует в сообщении об ошибке. Например, для команды ping – такая строка может быть «reply».

2.6.Об успешности выполнения команды можно судить по количеству символов в ответе, который вернет wc: если успешно – результат >0, если нет, то =0.

2.7.Запуская в шелл-скрипте сетевую команду ping, tcpdump, задавайте ключ –c N, где N – желаемое количество обработанных пакетов.

Впротивном случае команда будет выполняться непрерывно.

18

2.8.Процесс недоступности сетевого адреса (отсутствия сетевого трафика на интерфейсе) можно смоделировать путем отсоединения разъема сетевого кабеля RJ45 от сетевой карты.

2.9.Процесс сетевого обмена с адресом можно инициировать, выполняя ping из другой консоли.

2.10.Для работы с сокетами из командной строки рекомендуется

использовать команды nc(netcat), ss.

2.11. Успешность некоторых команд можно проверить по их коду возврата в переменной $?

3. Порядок выполнения работы

3.1.Ознакомиться с командой манипуляции сетевыми интерфейса-

ми ifconfig.

3.2.Активировать сетевой интерфейс с адресом согласно варианту

задания.

3.3.Активировать логический интерфейс (ifconfig eth0:1) с адресом согласно варианту задания.

3.4.Изучить команду настройки таблицы маршрутов route, настроить таблицу маршрутов согласно варианту заданий.

3.5.Изучить команду протоколирования потока данных через сете-

вой интерфейс tcpdump (tcpdump –i интерфейс).

3.6.Изучить команду пакетного локатора ping. Выполнить ping между этими двумя интерфейсами (ping адрес).

3.7.Сохранить в файл dump.rep поток данных через сетевой интерфейс при выполнении команды ping.

3.8.Выполнить ping маршрутизатора по умолчанию, результат со-

хранить в файле gateping.rep.

3.9.Вывести таблицу ARP. Удалить все записи из таблицы ARP. Выполнить ping маршрутизаторов, соседних компьютеров. Вывести таблицу ARP. Сохранить таблицу ARP в файле arp.rep.

3.10.Изучить команду трассировки traceroute. Сохранить путь паке-

та до адреса хоста, указанного в варианте заданий в файле trace.dmp. 3.11. Написать shellскрипт, выполняющий действия согласно ва-

рианту.

4. Варианты заданий

Вариант 1

Написать shell скрипт, выполняющий следующие действия:

проверяет наличие в системе своей запущенной копии, принимает решение о продолжении работы;

19

проверяет наличие и количество сетевых интерфейсов в системе, принимает решение о продолжении работы;

проверяет активность сетевого интерфейса (факт подключения его к корректному сетевому окружению;

проверяет возможность доступа с вашего IP-адреса в локальную сеть, выдает сообщение;

проверяет возможность доступа с вашего IP-адреса в сеть Интернет по протоколу http, выдает сообщение;

в цикле раз в минуту выполняет ping адреса 192.168.1.1, если ping не проходит – сообщает в лог файл (echo ‘message’>> logfile.rep и

на терминал tty6), изменяет шлюз по умолчанию на 192.168.1.2, завершает работу.

Вариант 2

Написать скрипт, выполняющий следующие действия:

проверяет наличие в системе своей запущенной копии, принимает решение о продолжении работы;

проверяет наличие и количество сетевых интерфейсов в системе, принимает решение о продолжении работы;

проверяет активность сетевого интерфейса (факт подключения его к корректному сетевому окружению;

проверяет возможность доступа с вашего IP-адреса в локальную сеть, выдает сообщение;

проверяет возможность доступа с вашего IP-адреса в сеть Интернет по протоколу http, выдает сообщение;

в цикле раз в минуту перехватывать 10 пакетов из интерфейса eth0 (tcpdump). Если среди перехваченных пакетов нет адресованных или полученных с адреса 192.168.1.2, вывести содержание таблицы ARP в лог-файл, завершить работу.

Вариант 3

Написать скрипт, выполняющий следующие действия:

проверяет наличие в системе своей запущенной копии, принимает решение о продолжении работы;

проверяет наличие и количество сетевых интерфейсов в системе, принимает решение о продолжении работы;

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]