Тема №1 Увод в TCP/IP

   Цел на упражнението: Описание действието на TCP - Transmission Control Protocol и IP - Internet Protocol.
               Понятия:
      OSI - Open System Interconnection (стандарт за връзка между отворени системи). Отворенa система - наричаме система (мрежа) ресурсите, на която могат да бъдат използвани от други системи включени в мрежата.
      RFC - Request for Comments (Искане за обсъждане) номер на документ за стандарти.
      Протокол – определя правилата по, които се осъществява връзка между хостовете в мрежата. Те са неразделна част от всяка мрежа. За различни видове връзки се използват подходящите за тези цел протоколи.
               Теоритична част:
     IP (RFC №791)  е основния протокол, който се използва в интернет слоя. Той дефинира основната единица за предаване на данни в интернет- дейтаграмата. Дейтаграмата е пакет от данни, който се предава от източник до приемник, съгласно указан в него адрес (32 битово числа в двойчен вид за Ipv.4). IP протокола не гарантира успешното получаване на IP дейтаграмата до местоназначението и. Пакетите могат да бъдат разделяни на (фрагментирани) на по-малки пакети. Максималния размер на IP дейтаграмата е 65535 байта. Функциите на този протокол включват предаване на данни между интернет слоя и транспортния слой, също така и маршрутизация на дейтаграми към отдалечени хостове.
     TCP (RFC №793)  служи за надеждно предава поток от байтове (byte stream), чрез установяване на връзка(connection-oriented protocol) между два хоста. TCP протокола разделя информацията на части, опакова ги в сегменти и ги предава на IP протокола (II слой). IP протокола опакова сегментите в дейтаграми и извършва маршрутизащията на всяка дейтаграма. След като приеме дейтаграмата, IP протокола я разопакова до сегменти и ги предава на TCP, който ги сглобява в съобщения и изпраща на по-горните слоеве.
      Еталонен модел – абстрактен модел на мрежовата архитектура за разработване на протоколи и изграждане на хетерогенни мрежи.

Сравнение между OSI и TCP/ IP модела

Layer


Капсулиране на даните

     Информацията се предава под формата на поток от битове от приложния до свързващия слой. Когато преминава инф. през протоколния стек, всеки слой добавя своя управляваща информация наречена – заглавна част (header).

Layer

  Всеки хост свързан към локална мрежа, притежава уникалн 48-битов физически (MAC – Media Access Control) адрес на своята Ethernet карта . MAC адреса се състои от шест октета (байта) в шеснадесетичен вид. Първите три октета съдържат числа, с които се различава съответния производител на Ethernet картата. Следващите три октета (MAC-48 и EUI-48) или пет (EUI-64) се дават от самата организация.
 Пример:
           00:50:DA - 3COM CORPORATION
           00:50:BA - D-LINK CORPORATION
           00:06:58 - DELL
           E0:05:C5 - TP-LINK TECHNOLOGIES
ARP – Address Resolution Protocol – RFC № 826
 ARP – протокол за право преобразуване на адресите, използва се за установяване на съответствието между IP адрес и Ethernet адрес (използва се когата се знае IP адреса, но не е известен Ethernet адреса) в локална мрежа.
Команди:
arp -n или arp -an покава IP и МАС адреса (Hwaddress).
arp -s 192.168.0.1 00:50:DA:A7:6C:C7 – записва 192.168.0.1 IP адрес на 00:50:DA:A7:6C:C7 МАС адрес.
ifconfig eth0 arp up – включва arp на мрежов интерфейс eth0;
NetworkManager - програма за управление на мрежовите връзки.
Проверka дали е инсталиран NetworkManager : (знака # (диез) не се пише не го копирайте, той не принадлежи към командата).
# rpm -qa NetworkManager* ; ако го няма може да се инсталира така:
# yum install NetworkManager*
Стартира се :
# service NetworkManager start
# service NetworkManager stop    - излизата от мрежата;
# service NetworkManager restart    - рестартиране;
Ако искаме да го стартира автоматично при всеки рестарт на системата пишем:
# chkconfig NetworkManager on
В директория etc, файл resolv.conf е записан IP адреса на DNS – сървъра.
Команди :
# nm-connection-editor    – извежда NetworkManager в графичен интерфейс;
# nmcli dev    – показва Ethernet картите и тяхното състояние;
# nmcli nm    – Network статс;
# nmcli con    – извежда състоянието на връзките;
# system-config-network   - TUI ( Text User Interface) – текстов потребителски интерфейс
Основната команда, която служи за конфигуриране на мрежовите интерфейси е:
ifconfig    – обяснение
eth0   – показва( логическото име) мрежов интерфейс 0; може да бъде: eth1, eth2, eth3, … . Зависи колко мрежови карти има включени към този компютър.
lo   – интерфейс за loopback;
inet addr   – показва присвоения IP адрес на съответния интерфейс. Няма ли (inet addr) присвоен IP адерс това означава, че този интерфейс в момента не е активен;
ifconfig -a    - извежда информация за всички мрежови интерфейси;
ifconfig eth0 up    – активира (вдига) мрежов интерфейс eth0;
ifconfig eth0 down    – изключва мрежов интерфейс eth0;
ifconfig eth0 192.168.0.1/24    – присвоява на eth0 IP адрес 192.168.0.1/24;
ifconfig eth0 172.16.25.63 netmask 255.255.255.224   – задава мрежова маска на интерфейс eth0. По подразбиране маската на клас С е 255.255.255.0;
ifconfig eth0 broadcast 172.16.25.126    – задава броудкаст (предава пакети към всички възли в мрежата) адрес 172.16.25.63 , по подразбиране адреса за този броудкаст е 172.16.25.255;
ifconfig eth0 172.16.25.63 netmask 255.255.255.224 broadcast 172.16.25.126    – задава IP адрес, маска, и броудкаст адрес на интерфейс eth0;
ifconfig eth0 mtu 1400   – задава размера на MTU(Maximum Transmission Unit) =1400 байта;
ifconfig eth0:1 172.16.25.199 up   – присъединяваме на няколко IP адреса на една мрежов карта;
Смяна на МАС адрес:
1. ifconfig wlan0 down   – изключва wlan0;
2. ifconfig wlan0 hw ether 00:50:DA:A7:6C:C7 –   смяна МАС адреса на Ethernet карта за безжичен интернет (Wi-Fi);
ifconfig wlan0 up –   активира интерфейс wlan0;
iwconfig   - извежда информация за Wi-Fi мрежови интерфейси;
iwlist wlan0 scan   – сканира с wlan0 за възможни точки за достъп;
host uni-sofia.bg   - преобразува името в IP адрес;
Командата Ping (Packet Internet Groper)
    Основен инструмент за мрежова диагностика, който изпраща echo-заявки ( echo-request 8) на ICMP (Internet Control Message Protocol) протокола и чака ехо-отговор (echo-reply 0). Ping изчислява средното време RTT ( Round Trip Time) в милисекунди за изпращане на малък пакет до даден хост и обрано и регистрира загуба на пакети.
Действие:
ping -c 5 91.215.216.7    - изпраща 5 (-с 5) пакета на адрес 91.215.216.7 и очаква отговор;
       -а    - звуков сигнал;
       -R    - запиши маршрута RR (Record Route) ;
       -s    - променя големината на пакетите
       -М do    - забрана за фрагментация;
ping -aRc 5 91.215.216.7   - изпраща 5 (-с 5) пакета на адрес 91.215.216.7 , чувате звуков сигнал, RR – показва през кои IP адреси е минал пакета. Ако всичко е минало успешно най-накрая трябва да имате изписано нещо от този вид: “ 5 packets transmitted, 5 received, 0% packet loss, time 4013ms” - 0% packet loss (0% изгубени пакети)
ping -c 5 localhost   - резервиран адрес, използва се за служебен адрес на самия хост ( localhost – IP 127.0.0.1);
ping -s 120 91.215.216.7   – променя големината на пакета на 120 байта (-s 120), по подразбиране големината на ICMP пакета за Linux ping е : 56 байта + 8 байта header =64 байта; за ОС Windows "ping.exe" : 32 байта + 8 байта header =40 байта;
Може да се тества :
ping -s 1472 gogle.com   – приема се и връща отговор;
ping abv.bg -s 8500 -M do   – не достига местоназначението, забранява фрагментацията. Извежда съобщение от рода: "local error: Message too long, mtu=1500"
ping abv.bg -s 8500   – приема се и връща отговор;
За по-голяма сигурност системите не трябва да отговарят на броадкаст Ping.

  Командата route служи за преглед и модифициране на маршрутната таблица.
route [-f] [-p] [ команда [ адрес на възела] [ mask мрежова маска] [шлюз] [metric метрика]] [if интерфейс]
    -4 – да се използва IPv4;
    -6 – да се използва IPv6;
    -f – изчиства маршрутната таблица от записите на всички шлюзове. При указана командата, таблицата се изчиства до изпълнение на командата;
    -p – при използване с командата ADD се задава запазване на маршрута при рестартиране;
команда : print – печати маршрута;
     ADD   – добавя маршрут;
     DELETE   – изтриване на маршрут;
     CHANGE   – променя съществуващ маршрут;
     мрежова маска   – маските на подмрежата на дадения маршрут;
     шлюз (Gateway)   – свързваето на лок. мрежа с друга, обикновенно външна мрежа;
     метрика   – измерва цената на възела (числено значение- колкото е по-малка стойността, толкова е по-висок приоритета на маршрута);
     if   – може да е десетично или шеснадесетично (0х) число;
     Default gateway   – най-близкия IP адрес на рутер от дадена мрежа;
Примери:
     route add default gateway 192.168.0.1   – указва на хоста да използва шлюз към Интернет с адрес 192.168.0.1 . Всеки пакет, който няма маршрут до местоназначението си ще се предава на 192.168.0.1;
     route del default   – изтрива подразбиращия се маршрут ( не можете да се свържете с Интернет);
     route add 0.0.0.0. mask 0.0.0.0 192.168.1.1   – указва маршрут по подразбиране 192.168.0.1;
     route -p add 10.0.0.0. mask 255.0.0.0 10.0.0.1   – добавя (-р) статичен адрес в точка 10.0.0.0 с маска на подмрежата 255.0.0.0 и шлюз 10.0.0.1;
     route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 metric 5   - добавя адрес в точка 10.41.0.0 с маска на подмрежата 255.255.0.0 и шлюз 10.27.0.1;
     route change 10.0.0.0 mask 255.0.0.0 10.10.10.1   - променя шлюза от 10.0.0.0 с маска на подмрежата 255.0.0.0 на 10.10.10.1;
     route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 if 0x3 ;  
    route delete 10.41.0.0 mask 255.255.0.0 ;  

Конкретен пример за присвояване на IP адрес
         1. Търсим най-малкия eth :
               ifconfig -a
                   или
               ip a
         2. След това присвояваме съответния IP адрес (например eth1):
             ifconfig eth1 10.10.55.68/26
  ( за конкретния случай на мен за машина № D4 адреса ми е: 10.10.55.68/26 и gateway (gw): 10.10.55.126) – тези адреси трябва да ги знаете от мреж. администратор).
               ifconfig eth1 10.10.55.68/26
         3. Добавяме на маршрут по подразбиране:
              route add default gw 10.10.55.126
         4. Проверяваме с ping между хостовете.

Програмата Wireshark се използва за моиторинг на мрежови протоколи.
   Прихваща пакетите в реално време и ги показва на потребителя.
Програмата е разделена на три прозореца. В основния прозорец всяка линия съответства на един пакет. Пакетите са оцветени по различен начин.TCP - зелен цвят, DNS – тъмно синьо, UDP - светло синьо, TCP с проблем – черен цвят. Може всеки пакет да се разгледа детайлно във втория прозорец (характеристики, тип на протокола и т.н). Третия прозорец извежда в шеснадесетичен вид всичко изписано от детайлната характеристика и евентуално извежда, ако има смислен текст в дясната страна на прозореца. Програмата има поле “Filter : “, в което може да се осъществи филтриране по различне критерии:
Примери за филтри:
     dns   – показва трафика отнасящ се към протокола DNS;
     tcp.port==80   - показва ТСР трафика на порт 80;
     ip.src==192.168.0.1 and ip.dst==10.100.1.1   – показва целия трафик изпратен от 192.168.0.1 към възел 10.100.1.1 ;
     tcp.port eq 25 or icmp   – показва само SMTP (порт 25) или ICMP;
     (arp.opcode ==reply) && (erp.src.proto_ipv4 == 192.168.56.5)   – проверява дали един и същ IP адрес не е присвоен на два МАС адреса;
Ние ще пуснем ping abv.bg в конзолен режим, след това ще следим пакетите. Първият ползва DNS и можем да го разгледаме детайлно. Следим и обсъждаме разликите между:
ping -s 6500-M -c 5 91.215.216.7 – със забрана за фрагментация на пакетите;
ping -s 6500 -c 5 91.215.216.7 – без забрана; можем да увеличим и големината на пакетите на 7500;
ping -s 7500 -c 5 abv.bg. Можем да наблюдаваме протоколи и инкапсулацията на ICMP и ARP.


Благодара за вниманието Ви !