Difference between revisions of "Dynamic routing"

From Ilianko
 
(44 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
== Опитна постановка ==
 
== Опитна постановка ==
 +
=== Топология на мрежата ===
 +
 +
Разгледайте топологията на мрежата.
 +
 +
'''Въпрос:'''От колко мрежи се състои опитната постановка?
 +
 
[[Image:dynamicNetwork.png|frame|none|Мрежа на опитната постановка]]
 
[[Image:dynamicNetwork.png|frame|none|Мрежа на опитната постановка]]
 +
 +
=== Адресен план===
 +
 +
'''Задача''' Задайте адреси на мрежовите интерфейси на трите рутера и три потребителски машини в съответствие с мрежите, в които се намират.
 +
 
<table width="100%" border="1" style="text-align:center">
 
<table width="100%" border="1" style="text-align:center">
 
<tr>
 
<tr>
Line 66: Line 77:
  
 
</table>
 
</table>
 
  
 
== OSPF ==
 
== OSPF ==
Line 83: Line 93:
  
 
==Рутиращ демон ==
 
==Рутиращ демон ==
'''quagga''' – Командния интерфейс е подобен на IOS (операционната система на CISCO).
+
'''[http://www.google.bg/search?q=quagga&aq=f&sugexp=chrome,mod%3D8&um=1&ie=UTF-8&hl=bg&tbm=isch&source=og&sa=N&tab=wi&ei=0IykUIX4FcjAtAbjt4HwDA&biw=800&bih=512&sei=04ykUIbLCc_WsgatuoGABw quagga]''' – Командния интерфейс е подобен на IOS (операционната система на CISCO).
  
ОС – Linux, Solaris, BSD
+
*ОС – Linux, Solaris, BSD
Протоколи - RIP, OSPF (versions 2 and 3), BGP, and IS-IS.
+
*Протоколи - RIP, OSPF (versions 2 and 3), BGP, and IS-IS.
  
 
Изграждането на рутери на базата на линукс и персонален компютър е подходящо при търсене на ниско-бюджетно решение или експериментални цели. За високо натоварени, имащи нужда от висока надеждност мрежи по-правилно би било да се ползва специализиран хардуер.
 
Изграждането на рутери на базата на линукс и персонален компютър е подходящо при търсене на ниско-бюджетно решение или експериментални цели. За високо натоварени, имащи нужда от висока надеждност мрежи по-правилно би било да се ползва специализиран хардуер.
  
 
== Съседни мрежи ==
 
== Съседни мрежи ==
'''Опишете мрежите''', с които всеки рутер има пряк контакт.
+
'''Задача:''' В таблица 2 опишете мрежите, с които всеки рутер е пряко свързан (direct connected).
  
 +
'''Таблица 2.'''
 
<table border = "1" width = "70%" style="text-align:center">
 
<table border = "1" width = "70%" style="text-align:center">
 
<tr>
 
<tr>
<td>Router</td> <td>Address / netmask</td>
+
<td>Router</td> <td>Име /Address / netmask</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
<td>&nbsp;</td> <td></td>
+
<td rowspan="3">integral</td> <td>&nbsp;</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
<td>&nbsp;</td> <td></td>
+
<td>&nbsp;</td>
 +
</tr><tr>
 +
<td>&nbsp;</td>
 +
</tr><tr>
 +
<td rowspan="3">differential</td> <td>&nbsp;</td>
 
</tr><tr>
 
</tr><tr>
<td>&nbsp;</td> <td></td>
+
<td>&nbsp;</td>  
 
</tr><tr>
 
</tr><tr>
<td>&nbsp;</td> <td></td>
+
<td>&nbsp;</td>
 +
</tr>
 +
<tr>
 +
<td rowspan="3">bazhdar</td> <td>&nbsp;</td>
 
</tr><tr>
 
</tr><tr>
<td>&nbsp;</td> <td></td>
+
<td>&nbsp;</td>  
 
</tr><tr>
 
</tr><tr>
<td>&nbsp;</td> <td></td>
+
<td>&nbsp;</td>
</tr></table>
+
</tr>
 +
</table>
  
 
==quagga==
 
==quagga==
Line 116: Line 135:
 
== Създаване на опитна постановка ==
 
== Създаване на опитна постановка ==
  
*[[VirtualBox|Създайте три виртуални машини]], които ще съответстват на трите рутера. Всяка машина да има по три интерфейса. ''' ''Сменете MAC адресите!'' '''
+
===Създаване на рутерите===
 +
====Виртуални машини====
 +
*[[VirtualBox|Създайте три виртуални машини]], които ще съответстват на трите рутера. Всяка машина да има по три активирани интерфейса. ''' ''Сменете MAC адресите!'' '''
 
*Стартирайте машините.
 
*Стартирайте машините.
 +
 +
====Инсталиране quagga====
 
*Проверете логическите имена на интерфейсите, като изведете всички инсталирани интерфейси с командата
 
*Проверете логическите имена на интерфейсите, като изведете всички инсталирани интерфейси с командата
 
  $ifconfig -а
 
  $ifconfig -а
*Свържете един от интерфейсите към външната мрежа и задайте автоматично да си вземе адрес с командата
+
*от мрежовите настройки на виртуалната свържете един от интерфейсите към външната мрежа (тип на връзката NAT) и задайте автоматично да си вземе адрес с командата:
$dhclient eth1  %eth1 да се замени със съответното логическо име на интерфейса.  
+
''' ''ethX '' '''да се замени със съответното логическо име на интерфейса, който е свързан към NAT.
 +
$ sudo dhclient ethX
 +
*Обновете листа с пакетите в хранилището на Ubuntu.
 +
$ sudo apt-get update
 
*Инсталирайте quagga
 
*Инсталирайте quagga
 
  $ sudo apt-get install quagga
 
  $ sudo apt-get install quagga
 +
 +
====Настройка IP адреси====
 
*Настройте статични адреси интерфейсите на рутерите в съответствие със таблица 1. Редактирайте файла:
 
*Настройте статични адреси интерфейсите на рутерите в съответствие със таблица 1. Редактирайте файла:
 
  $sudo nano /etc/network/interfaces
 
  $sudo nano /etc/network/interfaces
 +
 +
<code><pre>
 +
auto lo
 +
iface lo inet loopback
 +
 +
auto ethX
 +
iface ethX inet static
 +
address if0.if0.if0.if0
 +
netmask if0.if0.if0.if0
 +
 +
auto ethY
 +
iface ethY inet static
 +
address if1.if1.if1.if1
 +
netmask if1.if1.if1.if1
 +
 +
auto ethZ
 +
iface ethZ inet static
 +
address if2.if2.if2.if2
 +
netmask if2.if2.if2.if2
 +
 +
</pre></code>
 +
 +
където ethX, ethY, ethZ, if0.if0.if0.if0, if1.if1.if1.if1 и if2.if2.if2.if2 се заместват със съответните стойности за съответния рутер от таблица 1.
  
 
''' ''Незабравяйте да рестартирате мрежовите настройки'' '''
 
''' ''Незабравяйте да рестартирате мрежовите настройки'' '''
 +
$sudo /etc/init.d/networking restart
 +
 +
 +
'''Сравнете рутиращите таблици на рутерите с таблица 2.''' За да видите рутиращата таблица използвайте командата:
 +
$ route
 +
 +
====Настройка на физически връзки и тестване====
 +
 +
Мрежовите адаптери на виртуалните машини на всеки рутер трябва да са настроени на "Internal network" и да са включени към съответните мрежи.
 +
 +
Поради това, че adapter 1, adapter 2 и adapter 3 не съответстват на eth1, eth2 и eth3, трябва с проба грешка да се научка съответствието.
 +
 +
С ping tействайте, дали свързаността отговаря на свързаността според таблицата.
 +
 +
{| class="wikitable"
 +
|-
 +
!от/към
 +
!10.10.10.1
 +
!10.10.10.2
 +
!10.10.10.5
 +
!10.10.10.6
 +
!10.10.10.9
 +
!10.10.10.10
 +
|-
 +
|integral
 +
|да
 +
|да
 +
|да
 +
|да
 +
|не
 +
|не
 +
|-
 +
|differential
 +
|да
 +
|да
 +
|не
 +
|не
 +
|да
 +
|да
 +
|-
 +
|bazhdar
 +
|не
 +
|не
 +
|да
 +
|да
 +
|да
 +
|да
 +
|}
 +
 +
===Създаване на потребителски машини===
 +
 +
*Да се създадат две виртаулни windows машини.
 +
*Да се свържат съответно към мрежа INTЕ и DIF
 +
*Да им се настроят  съответните адреси за PC1 и PC2 според таблица 1.
 +
 +
===Тестване на връзката ===
 +
 +
'''Попълнете таблицата:''' Заменете имената с IP адресите на компютрите и тествайте наличието на връзка с командата <code>ping</code>. Oтбележете с ''да'' и ''не'' наличието на връзка.
 +
<table width="100%" border="1" cellpadding="2" cellspasing = "1" style="text-align:center">
 +
<tr>
 +
<td width="16%">От / Към</td> <td width="14%">PC-inte</td> <td width="14%">integral if0</td> <td width="14%">integral if2</td> <td width="14%">differential if1</td> <td width="14%">differential if0</td> <td width="14%">PC-diff</td>
 +
</tr>
 +
 +
<tr>
 +
<td>PC-inte</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td>
 +
</tr>
 +
 +
</table>
  
 
== Стартиране quagga ==
 
== Стартиране quagga ==
Quagga поддържа няколко протокола, затова ще изберем само тези които са ни необходими.
+
Quagga поддържа няколко протокола, затова ще изберем само тези които са ни необходими (OSPF).
  
 
=== Избор на рутиращи протоколи ===
 
=== Избор на рутиращи протоколи ===
Line 137: Line 256:
 
  $ sudo nano /etc/quagga/daemons
 
  $ sudo nano /etc/quagga/daemons
  
За да се стартират quagga и демона на рутиращия протокол OSPF те трябва да се разрешат в конфигурационния файл, който  изглеждала така:
+
За да се стартират quagga и демона на рутиращия протокол OSPF,  конфигурационния файл трябва да изглеждала така:
 
  zebra=yes
 
  zebra=yes
 
  bgpd=no
 
  bgpd=no
Line 147: Line 266:
  
 
===Конфигурация===
 
===Конфигурация===
Създаване на конфигурационни файлове OSPF и zebra и смяна правата на конфигурационните файове.  
+
Създаване на конфигурационни файлове на OSPF и zebra и смяна правата на конфигурационните файове.  
 
  :~$ cd /usr/share/doc/quagga/examples %смяна директория
 
  :~$ cd /usr/share/doc/quagga/examples %смяна директория
 
  :~$ sudo cp zebra.conf.sample /etc/quagga/zebra.conf %копиране на файл
 
  :~$ sudo cp zebra.conf.sample /etc/quagga/zebra.conf %копиране на файл
Line 173: Line 292:
 
  lab10# write file  %записване на конфигурацията  
 
  lab10# write file  %записване на конфигурацията  
 
  labX#exit
 
  labX#exit
 +
 +
=== ip forwarding ===
 +
 +
Включване на ip forwarding (препращане на пакети).
 +
 +
Редактирайте файла ''sysctl.conf''.
 +
 +
:~$ sudo nano /etc/sysctl.conf
 +
Разкоментира се реда:  <code> net.ipv4.ip_forward = 1 </code> и се записва.
 +
 +
Настройките могат да се приложат без рестариране с командата:
 +
:~$ sudo sysctl –p #динамично презареждане на %настройките на ядрото
  
 
== Тестване ==
 
== Тестване ==
Line 179: Line 310:
  
 
Да се проверят рутиращите таблици на рутери с командата
 
Да се проверят рутиращите таблици на рутери с командата
  $ netstat -r
+
  $/> netstat -r
 +
или
 +
$/> route
  
 
=== Свързаност ===
 
=== Свързаност ===
  
Да се създадат работни станции PC-inte и PC-diff. Да се включат към Интернет
 
и да се инсталира програмата traceroute
 
$sudo apt-get install traceroute
 
  
След инсталацията работните станции да се свържат във вътрешната мрежа съгласно схемата и адресната таблица.
+
'''Попълнете таблицата:''' Заменете имената с IP адресите на компютрите и тествайте наличието на връзка с командата <code>ping</code>. Oтбележете с ''да'' и ''не'' наличието на връзка.
 
 
 
 
'''Попълнете таблицата:''' Заменете имената с IP адресите на компютрите и тествайте наличието на връзка с командата <code>ping</code>.отбележете с ''да'' и ''не'' наличието на връзка.
 
 
<table width="100%" border="1" cellpadding="2" cellspasing = "1" style="text-align:center">
 
<table width="100%" border="1" cellpadding="2" cellspasing = "1" style="text-align:center">
 
<tr>
 
<tr>
<td width="16%">От / Към</td> <td width="14%">PC1</td> <td width="14%">inte if0</td> <td width="14%">inte if2</td> <td width="14%">diff if3</td> <td width="14%">diff if0</td> <td width="14%">PC2-diff</td>  
+
<td width="16%">От / Към</td> <td width="14%">PC1</td> <td width="14%">integral if0</td> <td width="14%">integral if2</td> <td width="14%">differential if2</td> <td width="14%">differential if0</td> <td width="14%">PC-diff</td>  
 
</tr>
 
</tr>
  
 
<tr>
 
<tr>
<td>PC1</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td>  
+
<td>PC-inte</td> <td>&nbsp;</td><td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td>  
 
</tr>
 
</tr>
  
 +
</table>
 +
 +
=== Проследяване на връзката ===
 +
 +
Използвайте командата tracert за да проверите възлите, през които се осъществява връзката от PC-inte и PC-diff.
 +
C:/>tracert ip_address
 +
% Заменете ip_address със адреса, до който тествате връзката
 +
 +
=== Време за конвергенция ===
  
</table>
+
Пуснете ping от PC-inte към PC-diff. Разкачете връзката в мрежа МАТ и засечете след колко време трафика ще се възстанови през рутер bazhdar.
 +
 
 +
Проверете възлите, през които се осъществява връзката от PC-inte и PC-diff
  
 +
== Cisco ==
 +
Опитната постановка да се реализира на лабораторните cisco рутери.
  
 +
[[IOS CISCO команди]]
  
 
[[Category:Компютърни мрежи| ]]
 
[[Category:Компютърни мрежи| ]]

Latest revision as of 09:13, 5 February 2013

Опитна постановка

Топология на мрежата

Разгледайте топологията на мрежата.

Въпрос:От колко мрежи се състои опитната постановка?

Мрежа на опитната постановка

Адресен план

Задача Задайте адреси на мрежовите интерфейси на трите рутера и три потребителски машини в съответствие с мрежите, в които се намират.

Network Address
MAT 10.10.10.0/30
TIKA 10.10.10.4/30
EMA 10.10.10.8/30
Router if0 if1 if2
integral
differencial
bazhdar
INTE 10.10.11.0/24
PC-inte
DIF 10.10.12.0/24
PC-dif
BAZH 10.10.13.0/24
PC-bazh

OSPF

автономни зони

OSPF e един от най популярните маршутизиращи протоколи. Той е с отворен код (Open). Използва се като вътрешен протокол, рутиране в автономни ситеми.

Относно принципа на работа има две особености:

  • link state protocol – следене на състоянието на връзката. Изпраща се съобщение при промяна на състоянието.
  • shortest path first protocol – оптимизационен алгоритъм за намиране на най-краткия път до дадена мрежа.

Характеристики:

  • Може да описва няколко пътя до една и съща мрежа и да прави разпределяне на натоварването;
  • Поддържа логическо разделяне на мрежите;
  • Поддържа автентификация, което осигурява сигурността;
  • Бърза конвергенция;
  • Подържа мрежи с променлива дължина на маска.

Рутиращ демон

quagga – Командния интерфейс е подобен на IOS (операционната система на CISCO).

  • ОС – Linux, Solaris, BSD
  • Протоколи - RIP, OSPF (versions 2 and 3), BGP, and IS-IS.

Изграждането на рутери на базата на линукс и персонален компютър е подходящо при търсене на ниско-бюджетно решение или експериментални цели. За високо натоварени, имащи нужда от висока надеждност мрежи по-правилно би било да се ползва специализиран хардуер.

Съседни мрежи

Задача: В таблица 2 опишете мрежите, с които всеки рутер е пряко свързан (direct connected).

Таблица 2.

Router Име /Address / netmask
integral  
 
 
differential  
 
 
bazhdar  
 
 

quagga

Създаване на опитна постановка

Създаване на рутерите

Виртуални машини

  • Създайте три виртуални машини, които ще съответстват на трите рутера. Всяка машина да има по три активирани интерфейса. Сменете MAC адресите!
  • Стартирайте машините.

Инсталиране quagga

  • Проверете логическите имена на интерфейсите, като изведете всички инсталирани интерфейси с командата
$ifconfig -а
  • от мрежовите настройки на виртуалната свържете един от интерфейсите към външната мрежа (тип на връзката NAT) и задайте автоматично да си вземе адрес с командата:

ethX да се замени със съответното логическо име на интерфейса, който е свързан към NAT.

$ sudo dhclient ethX
  • Обновете листа с пакетите в хранилището на Ubuntu.
$ sudo apt-get update
  • Инсталирайте quagga
$ sudo apt-get install quagga

Настройка IP адреси

  • Настройте статични адреси интерфейсите на рутерите в съответствие със таблица 1. Редактирайте файла:
$sudo nano /etc/network/interfaces
auto lo
iface lo inet loopback

auto ethX
iface ethX inet static
address if0.if0.if0.if0
netmask if0.if0.if0.if0

auto ethY
iface ethY inet static
address if1.if1.if1.if1
netmask if1.if1.if1.if1

auto ethZ
iface ethZ inet static
address if2.if2.if2.if2
netmask if2.if2.if2.if2

където ethX, ethY, ethZ, if0.if0.if0.if0, if1.if1.if1.if1 и if2.if2.if2.if2 се заместват със съответните стойности за съответния рутер от таблица 1.

Незабравяйте да рестартирате мрежовите настройки

$sudo /etc/init.d/networking restart


Сравнете рутиращите таблици на рутерите с таблица 2. За да видите рутиращата таблица използвайте командата:

$ route

Настройка на физически връзки и тестване

Мрежовите адаптери на виртуалните машини на всеки рутер трябва да са настроени на "Internal network" и да са включени към съответните мрежи.

Поради това, че adapter 1, adapter 2 и adapter 3 не съответстват на eth1, eth2 и eth3, трябва с проба грешка да се научка съответствието.

С ping tействайте, дали свързаността отговаря на свързаността според таблицата.

от/към 10.10.10.1 10.10.10.2 10.10.10.5 10.10.10.6 10.10.10.9 10.10.10.10
integral да да да да не не
differential да да не не да да
bazhdar не не да да да да

Създаване на потребителски машини

  • Да се създадат две виртаулни windows машини.
  • Да се свържат съответно към мрежа INTЕ и DIF
  • Да им се настроят съответните адреси за PC1 и PC2 според таблица 1.

Тестване на връзката

Попълнете таблицата: Заменете имената с IP адресите на компютрите и тествайте наличието на връзка с командата ping. Oтбележете с да и не наличието на връзка.

От / Към PC-inte integral if0 integral if2 differential if1 differential if0 PC-diff
PC-inte            

Стартиране quagga

Quagga поддържа няколко протокола, затова ще изберем само тези които са ни необходими (OSPF).

Избор на рутиращи протоколи

Редактира се инициализиращия файл на quagga.

$ sudo nano /etc/quagga/daemons

За да се стартират quagga и демона на рутиращия протокол OSPF, конфигурационния файл трябва да изглеждала така:

zebra=yes
bgpd=no
ospfd=yes
ospfd6=no
ripd=no
ripngd=no
isisd=no

Конфигурация

Създаване на конфигурационни файлове на OSPF и zebra и смяна правата на конфигурационните файове.

:~$ cd /usr/share/doc/quagga/examples %смяна директория
:~$ sudo cp zebra.conf.sample /etc/quagga/zebra.conf %копиране на файл
:~$ sudo cp ospfd.conf.sample /etc/quagga/ospfd.conf
:~$ cd /etc/quagga/
:~$ ls %разлистване на директорията и проверка на файловете
:~$ sudo /etc/init.d/quagga restart %рестартиране на quagga

:~$ sudo chown quagga.quaggavty /etc/quagga/*.conf %промяна на собственика на файл
:~$ sudo chmod 640 /etc/quagga/*.conf %смяна на правата на файл

Настройки OSPF

X.X.X.X/M са директно свързаните мрежи, които рутера ще рекламира.

:~$ telnet localhost 2604 %парола -> zebra
labX> enable %Влизане в администраторски режим
labX# configure terminal %влизане конфигурационен режим 
labX(config)#router ospf %включване на OSPF рутиране
labX(config-router)# network X.X.X.X/M area 0 
%добавяне на директно свързаната  мрежа,чиято информация ще се препредава
labX(config-router)# exit
labX(config)# exit
labX#show running-config
lab10# write file  %записване на конфигурацията 
labX#exit

ip forwarding

Включване на ip forwarding (препращане на пакети).

Редактирайте файла sysctl.conf.

:~$ sudo nano /etc/sysctl.conf

Разкоментира се реда: net.ipv4.ip_forward = 1 и се записва.

Настройките могат да се приложат без рестариране с командата:

:~$ sudo sysctl –p #динамично презареждане на %настройките на ядрото

Тестване

Рутиращи таблици

Да се проверят рутиращите таблици на рутери с командата

$/> netstat -r

или

$/> route

Свързаност

Попълнете таблицата: Заменете имената с IP адресите на компютрите и тествайте наличието на връзка с командата ping. Oтбележете с да и не наличието на връзка.

От / Към PC1 integral if0 integral if2 differential if2 differential if0 PC-diff
PC-inte           

Проследяване на връзката

Използвайте командата tracert за да проверите възлите, през които се осъществява връзката от PC-inte и PC-diff.

C:/>tracert ip_address 
% Заменете ip_address със адреса, до който тествате връзката

Време за конвергенция

Пуснете ping от PC-inte към PC-diff. Разкачете връзката в мрежа МАТ и засечете след колко време трафика ще се възстанови през рутер bazhdar.

Проверете възлите, през които се осъществява връзката от PC-inte и PC-diff

Cisco

Опитната постановка да се реализира на лабораторните cisco рутери.

IOS CISCO команди