Лабораторная работа №2 основы tcp-ip




Дата канвертавання22.04.2016
Памер158.14 Kb.
ЛАБОРАТОРНАЯ РАБОТА №2

ОСНОВЫ TCP-IP


  1. Цель работы: Ознакомление с основными приемами работы с сетями TCP-IP, настройки интерфейсов, маршрутизации TCP_IP пакетов. Научиться создавать shell скрипты, изменяющие сетевые настройки.




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

Лабораторная работа выполняется в среде Linux и на оборудовании D-LINK.
Базовые понятия:

  • Сервер

  • IP-адрес

  • Маска адреса

  • Маршрутизатор

  • Шлюз

  • Порт

  • Сокет

  • Демон



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

Многоуровневая структура протоколов:

Протоколы семейства TCP/IP можно представить в виде модели, состоящей из четырех уровней: прикладного, основного, межсетевого и сетевого.


Уровень сетевого интерфейса:

Данный уровень лежит в основании всей модели протоколов семейства TCP/IP. Уровень сетевого интерфейса отвечает за отправку в сеть и прием из сети кадров, которые содержат информацию. Кадры передаются по сети как одно целое. Кадр (frame) — это единица данных, которыми обмениваются компьютеры в сети Ethernet.


Межсетевой уровень

Протоколы Интернет инкапсулируют блоки данных в пакеты (дейтаграммы) и обеспечивают необходимую маршрутизацию. К основным Интернет-протоколам относятся:

IP (Internet Protocol)....предназначен для отправки и маршрутизации пакетов.

ARP (Address Resolution Protocol) ... используется для получения МАС-адресов

(аппаратных адресов) сетевых адаптеров.

ICMP (Internet Control Message Protocol) ... предназначен для отправки извеще-

ний и сообщений об ошибках при передаче пакетов.

IGMP (Internet Group Management Protocol)... используется узлами для сообще-

ния маршрутизаторам, которые поддерживают группо-

вую передачу, о своем участии в группах.

RIP (Route Internet Protocol) и OSPF (Open Shortest Path First) ... протоколы

маршрутизации.

На этом уровне реализуется передача пакетов без установки соединения —

дейтаграммным способом. Межсетевой уровень обеспечивает перемещение

пакетов по сети с использованием наиболее рационального маршрута (прото-

кол OSPF). Основная функция межсетевого уровня — передача пакетов через

составную сеть, поэтому этот уровень также называется уровнем Интернет.
Транспортный (основной) уровень

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

ществует два транспортных протокола: TCP (Transmission Control Protocol) и

UDP (User Datagram Protocol). Протокол TCP ориентирован на установле-

ние соединения, то есть перед передачей данных компьютеры «договарива-

ются» между собой. Обычно по этому протоколу передаются большие объе-

мы данных или данные, для которых требуется подтверждение их приема.

Этот протокол используется большинством сетевых приложений, так как

обеспечивает достаточную надежность при передаче данных.

Протокол UDP не ориентирован на соединение и не гарантирует доставку

пакетов (дейтаграмм). Однако протокол UDP является более быстродействую-

щим по сравнению с TCP. Обычно по этому протоколу передаются небольшие

объемы данных. Ответственность за доставку данных несет сетевая программа.


Уровень приложений

Данный уровень является вершиной модели TCP/IP. На этом уровне

работают практически все распространенные утилиты и службы: DNS, Telnet,

WWW, Gopher, WAIS, SNMP, FTP, TFTP, SMTP, POP, IMAP.


IP-Адрес

За активацию интерфейса в Unix системах отвечает команда ifconfig. Формат команды можно найти в приложении. Команда ifconfig активирует сетевой интерфейс с указаным адресом и маской. Каждый узел в сети TCP имеет свой уникальный адрес- 32 битное число, которое обычно записывается при помощи 4 октетов через точку, например, 192.168.6.1. Маска- 32 битное число, позволяющее выделять фрагмент из адресного пространства сети.


Выделяют несколько классов сетей:

А
7 бит- ИД сети



24 бит – ИД узла

0
: 0 0.0.0.0 - 127.255.255.255

В
14 бит- ИД сети



16 бит – ИД узла

10
: 10 128.0.0.0 - 191.255.255.255

21 бит- ИД сети

8 бит – ИД узла

110

C: 110 192.0.0.0 - 223.255.255.255



28 бит – ИД узла

1110

D: 1110 224.0.0.0 – 239.255.255.255

Маска подсети позволяет выделять из указанной сети определенный фрагмент, например

IP 192.168.6.1

Маска 255.255.255.0 -> 11111111 11111111 11111111 00000000

Позволяет получить доступ к 254 компьютерам, адреса которых начинаются с 192.168.6.1 до 192.168.6.254.


IP 192.168.6.1

Маска 255.255.255.252 -> 11111111 11111111 11111111 11111100 выделяет четыре адреса:

192.168.6.0

192.168.6.1

192.168.6.2

192.168.6.3

из них реально для назначения сетевым интерфейсам может быть использовано лишь два:

192.168.6.1

192.168.6.2
Если весь IP-адрес состоит из нулей (0.0.0.0), то

значит, что он обозначает адрес того узла, который сгенерировал этот пакет.

Адрес 192.168.6.0 будет соответствовать адресу «сети», а 192.168.6.3 будет использован для местного широковещательного сообщения (сообщение будет разослано на все компьютеры подсети - в данном случае на два.). Широковещательные запросы очень часто используются, например, для построения ARP-таблиц.

Особое значение имеет IP-адрес 127.0.0.1 — это адрес локального компьютера. Он используется для тестирования сетевых программ и взаимодействия сетевых процессов. При попытке отправить пакет по этому адресу данные не передаются по сети, а возвращаются протоколам верхних уровней, как только что принятые. При этом образуется как бы «петля». Этот адрес называется loopback. В IP-сети запрещается использовать IP-адреса, которые начинаются со 127. Любой адрес подсети 127.0.0.0 относится к локальному компьютеру, например: 127.0.0.1, 127.0.0.5, 127.77.0.6.

Существует также специальные адреса, которые зарезервированы для несвязанных локальных сетей — это сети, которые используют протокол IP, но не подключены к Интернет. Вот эти адреса:

10.0.0.0 (сеть класса А, маска сети 255.0.0.0). 172.16.0.0...172.31.0.0 (16 сетей класса В, маска каждой сети 255.255.0.0).192.168.0.0...192.168.255.0 (256 сетей класса С, маска каждой сети 255.255.255.0).



Для сопоставления IP адреса MAC адресу адаптера служит протокол ARP. Упрощенный механизм его действия следующий: если запрашивается адрес, принадлежащий текущей сети, то на всю сеть рассылается широковещательный запрос «кто имеет адрес IP?». Владелец адреса отвечает свой МАС-адрес и сохраняется в таблице ARP. Далее пакеты посылаются адресно с указанием конкретного MAC-адреса. Если запрос посылается за пределы домашней сети, то данный запрос пересылается маршрутизатору по умолчанию.
Порт: Номер порта — это номер программы, которая будет обрабатывать переданные данные. Каждой сетевой программе, которая работает по протоколу TCP/IP, сопоставлен свой номер порта. Например, 80 — это порт WWW-сервера, a 53 — это порт системы доменных имен. Порты с 0 по 1023 зарезервированы за определенными службами или приложениями, с 1023 по 65535 – «пользовательские» порты, их использование не регламентируется.

Сокет: Сокет- во многом аналогичен дескриптору файла и используется для обмена информацией между сетевыми приложениями.

Демон: программа, работающая в фоновом режиме. Как правило, выполняет какие-либо системные функции.



Маршрутизация, маршрут (routing,route) Процесс выбора пути для передачи пакетов. Маршрутизация осуществляется на узле TCP-IP в момент отправки пакетов, а затем на IP маршрутизаторе. Настройка таблицы маршрутов в OC LINUX осуществляется командой route.

Маршрутизатор(router) устройство, которое перенаправляет пакеты из одной сети в другую.

Маршрут по умолчанию (default router) Маршрутизатор на который направляются все пакеты адресат которых находится за пределами домашний сети и в таблице маршрутизации про его местоположение неизвестно.


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

    1. Пред выполнением любых операций с сетью необходимо активизровать сетевой интерфейс командой ifconfig.

    2. Для операций с маршрутами и сетевыми интерфейсами необходим пароль администратора. Будьте осторожны, права администратора позволяют неосторожными действиями разрушить систему.

    3. Все файлы и Shell script необходимо создавать в каталоге /home/user/ГРБР (ГР-номер группы, БР-бригада). Пример shell-скрипта смотрите в приложении.

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

ping [адрес] | grep “подстрока” | wc -ключ

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

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

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

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

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



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

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

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

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

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

    5. Изучить команду протоколирования потока данных через сетевой интерфейс tcpdump (tcpdump –i интерфейс).

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

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

    8. Выполнить ping маршрутизатора по умолчанию, результат сохранить в файле gateping.rep

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

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

    11. Написать shell- cкрипт, выполняющий действия, согласно варианту.




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

Вариант 1.

eth0: 192.168.1.61, выделен в подсети на 256 адресов.

Eth0:1 192.168.6.71 выделен в подсети на 128 адресов.
Маршрутизатор по умолчанию: 192.168.1.1
Написать shell скрипт, выполняющий следующие действия:


  • удаляет из таблицы ARP запись маршрутизатора по умолчанию

  • удаляет из таблицы маршрутов запись маршрута по умолчанию route

  • деактивирует интерфейс eth0

  • создает интерфейсы eth0, eth0:1

  • настраивает маршрутизацию

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



Вариант 2

eth0: 192.168.1.62, выделен в подсети на 128 адресов.

Eth0:1 192.168.6.72 выделен в подсети на 32 адреса.
Маршрутизатор по умолчанию: 192.168.1.1
Написать скрипт, выполняющий следующие действия:


  • удаляет из таблицы ARP запись маршрутизатора по умолчанию;

  • удаляет из таблицы маршрутов запись маршрута по умолчанию route;

  • деактивирует интерфейс eth0;

  • создает интерфейсы eth0, eth0:1;

  • настраивает маршрутизацию;

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

Вариант 3


eth0: 192.168.1.63, выделен в подсети на 256 адресов.

Eth0:1 192.168.6.75 выделен в подсети на 64 адреса.


Маршрутизатор по умолчанию: 192.168.1.1
Написать скрипт, выполняющий следующие действия:

  • удаляет из таблицы ARP запись маршрутизатора по умолчанию;

  • удаляет из таблицы маршрутов запись маршрута по умолчанию;

  • деактивирует интерфейс eth0;

  • создает интерфейсы eth0, eth0:1;

  • настраивает маршрутизацию;

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



Вариант 4

eth0: 192.168.1.64, выделен в подсети на 256 адресов.

Eth0:1 192.168.1.76 выделен в подсети на 64 адреса.
Маршрутизатор по умолчанию: 192.168.6.1
Написать shell скрипт, выполняющий следующие действия:


  • удаляет из таблицы ARP запись маршрутизатора по умолчанию

  • удаляет из таблицы маршрутов запись маршрута по умолчанию route

  • деактивирует интерфейс eth0

  • создает интерфейсы eth0, eth0:1

  • создает интерфейсы eth0, lo

  • настраивает маршрутизацию

  • в цикле раз в минуту проверяет содержание таблицы маршрутизации. Если в таблице не обнаружен адрес 192.168.1.1, сообщить в лог файл (echo ‘message’>> flogfile.rep и на терминал tty6), изменяет шлюз по умолчанию на 192.168.1.2, завершить работу



Вариант 5

eth0: 192.168.1.65, выделен в подсети на 128 адресов.

Eth0:1 192.168.1.77 выделен в подсети на 64 адреса.
Маршрутизатор по умолчанию: 192.168.1.1
Написать shell скрипт, выполняющий следующие действия:


  • удаляет из таблицы ARP запись маршрутизатора по умолчанию;

  • удаляет из таблицы маршрутов запись маршрута по умолчанию ;

  • деактивирует интерфейс eth0;

  • создает интерфейсы eth0, eth0:1;

  • настраивает маршрутизацию;

в цикле раз в минуту проверяет содержание таблицы маршрутизации. Если в таблице обнаружен адрес 192.168.1.1,сообщить в лог файл (echo ‘message’>> flogfile.rep и на терминал tty6), изменяет шлюз по умолчанию на 192.168.1.2, завершить работу

Вариант 6

eth0: 192.168.1.68, выделен в подсети на 128 адресов.

Eth0:1 192.168.6.78 выделен в подсети на 128 адреса.
Маршрутизатор по умолчанию: 192.168.1.1
Написать shell скрипт, выполняющий следующие действия:


  • удаляет из таблицы ARP запись маршрутизатора по умолчанию

  • удаляет из таблицы маршрутов запись маршрута по умолчанию route

  • деактивирует интерфейс eth0

  • создает интерфейсы eth0, eth0:1

  • настраивает маршрутизацию

  • в цикле раз в 30 секунд проверяет таблицу маршрутизации. Если в таблице есть запись для 192.168.1.100 (echo ‘message’>> flogfile.rep и на терминал tty6), изменяет шлюз по умолчанию на 192.168.1.2, завершает работу



Вариант 7

eth0: 192.168.1.69, выделен в подсети на 128 адресов.

Eth0:1 192.168.6.79 выделен в подсети на 256 адреса.
Маршрутизатор по умолчанию: 192.168.1.1
Написать shell скрипт, выполняющий следующие действия:


  • удаляет из таблицы ARP запись маршрутизатора по умолчанию

  • удаляет из таблицы маршрутов запись маршрута по умолчанию route

  • деактивирует интерфейс eth0

  • создает интерфейсы eth0, eth0:1

  • настраивает маршрутизацию

  • в цикле раз в 30 секунд проверяет таблицу маршрутизации. Если в таблице нет записи для 192.168.1.1 (echo ‘message’>> flogfile.rep и на терминал tty6), изменяет шлюз по умолчанию на 192.168.1.2, завершает работу




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

    1. Цель работы.

    2. Вариант задания.

    3. Имена, размер, путь время модификации файлов согласно пп.6.8.9.10 (ls -l)

    4. Текст shell-скрипта

    5. Выводы.

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

    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 адреса не могут быть назначены узлам, объясните почему.

    5. 131.107.256.80 ; 0.127.31.20 ; 192.168.6.5 ; 10.10.10.0 ; 1.1.1.1 ; 212.20.14.32 ;

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

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

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

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

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

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

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

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

ПРИЛОЖЕНИЕ 1


Пример shell-скрипта. Проверяет наличие программы task.pl в памяти и убивает ее.
--------------------------- начало листинга ---------------------------------------

#!/bin/bash

#Признак, что это шелл-скрипт

echo "Сканер запущен! ";date; #вывели строку на консоль

while [ $(ps -e | grep "tasks.pl" | wc -c) -eq 0 ]; do

# проверили встречается ли в списке задач "task.pl"

echo "task.pl в памяти не обнаружен" > /dev/tty6;

#выдали на терминал 6 сообщение

sleep 30;

#заснули на 30 секунд

done

#признак конца while

var=$( killall virus.pl );

#присвоили переменной var ответ killall

echo $var "процесс task.pl"

#напечатали строку на консоль

echo "работа завершена"

---------------------------------конец листинга---------------------------------------------

Приложение 2. Справочник команд
Сетевые команды
ifconfig [interface] [address] [netmask mask] [up / down] – активизирует/деактивизирует интерфейс.

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

[adderss] – назначаемый 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.
Вывести таблицу, не разбирая имен: 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
Некоторые команды bash

wc – счетчик количества строк символов в потоке(файле). Ключ [–c] позволяет подсчитывать количество байт в потоке.

grepкоманда фильтр. Позволяет выделять строки из потока(файла), содержащие заданную подстроку.

grep “подстрока” файл

echo [строка] – печатает строку в поток. По умолчанию вывод осуществляется в поток stdout.

echo “Hello,world!”

Циклы и условное ветвление

Конструкция if: if {list} then {list2} else {list3} fi

Конструкция for: for name in words do list done

for a in 1 2 3 ; do

touch /home/test/foo_$a

done

Конструкции while, until: while listl do list2 done

while [ -d /home/test/dir ] ; do

Is -1 /home/test/dir >> /home/test/dir.log

echo -- SEPARATOR — >> /home/test/dir.log

sleep 60

done

Команда проверки выражений для операторов ветвления test, или []

Условные выражения, строятся на основе проверки файловых атрибутов, сравнения строк и обычных арифметических сравнений. Ключи команды:



  • a –e –f file – верно, если файл существует

  • -b –c –d –p -S file верно, если файл соотв. типа

  • -h –l file верно, если ссылка

  • -r/-w/-x file верно, если дано право на чтение/запись/исполнение

  • -s верно, если размер больше нуля

  • -N file верно, если с момента последнего чтения файл был изменен

  • filel -nt file2 – верно,если время модификации 1 позднее

  • filel -ot file2 – верно,если 1 старше

  • filel -ef file2 – верно,если файлы эквив.(inode)

  • -z/-n string верно, если длина строки =/<> 0

  • stringl == string2 верно,если строки совпадают

  • stringl != string2 верно,если строки совпадают

  • argl –ne/-le/-lt/-gt/-ge arg2 - арифметическая проверка

ЛИТЕРАТУРА

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

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

  3. Колесниченко Д.Н.// Linux сервер своими руками.- СПб.:Наука и Техника,2002.-576с.:ил.

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





База данных защищена авторским правом ©shkola.of.by 2016
звярнуцца да адміністрацыі

    Галоўная старонка