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

lab.MIT.06

.pdf
Скачиваний:
8
Добавлен:
19.02.2016
Размер:
395.67 Кб
Скачать

Рисунок 3.

Таблица маршрутизации RouterA:

% netstat -nr Routing tables

Internet:

Gateway

Flags

Refs

Use

Netif Expire

Destination

default

10.0.0.1

UGS

0

49378

fxp0

127.0.0.1

127.0.0.1

UH

0

6

lo0

10.0.0/24

link#1

UC

0

0

fxp0

192.168.1/24

link#2

UC

0

0

fxp1

С текущей таблицей маршрутизации RouterA не сможет отправлять пакеты во внутреннюю сеть 2 (Internal Net 2). Один из способов обхода этой проблемы – добавление маршрута вручную. Следующая команда добавляет внутреннюю сеть 2 к таблице маршрутизации RouterA с 192.168.1.2 в качестве следующего узла:

# route add -net 192.168.2.0/24 192.168.1.2

Теперь RouterA сможет отправлять пакеты на любой узел в сети 192.168.2.0/24.

Предыдущий пример прекрасно подходит для настройки статического маршрута в работающей системе. Однако, проблема заключается в том, что маршрутная информация не сохранится после перезагрузки FreeBSD. Способ сохранения добавленного маршрута заключается в добавлении его в файл /etc/rc.conf:

# Добавление статического маршрута в Internal Net 2 static_routes="internalnet2" route_internalnet2="-net 192.168.2.0/24 192.168.1.2"

В переменной static_routes находятся строки, разделенные пробелами. Каждая строка означает имя маршрута. В примере выше в static_routes есть только одна строка, это internalnet2. Затем добавляется переменная route_internalnet2, куда помещены все параметры, которые необходимо передать команде route(8).

Впримере выше была использована команда:

#route add -net 192.168.2.0/24 192.168.1.2

поэтому потребуется "-net 192.168.2.0/24 192.168.1.2".

Можно добавить в static_routes более чем одну строку. Это позволит создать несколько статических маршрутов. В следующем примере показано добавление маршрутов для сетей 192.168.0.0/24 и 192.168.1.0/24:

static_routes="net1 net2"

route_net1="-net 192.168.0.0/24 192.168.0.1" route_net2="-net 192.168.1.0/24 192.168.1.1"

11

Реализация маршрутизатора (quagga) на базе ОС FreeBSD UNIX

Quagga – пакет программ, реализующих протоколы маршрутизации, основанных на TCP/IP и поддерживает такие протоколы как RIPv1, RIPv2, RIPng, OSPFv2, OSPFv3, BGP-4 и BGP-4+. Quagga также поддерживает BGP Route Reflector

и Route Server behavior. В дополнение к традиционному протоколу IPv4 Quagga также поддерживает протоколы маршрутизации для IPv6. Совместно с демоном SNMP, который поддерживает SMUX протокол, Quagga обеспечивает протокол маршрутизации MIBs.

Традиционное программное обеспечение маршрутизации сделано как одна программа, которая обеспечивает все функциональные возможности протокола маршрутизации. Quagga использует несколько другой подход. Каждый протокол маршрутизации обслуживается отдельным демоном, с последующим формированием таблиц маршрутизации. Одновременно работать могут несколько разных демонов в сообществе с управляющим демоном zebra.

ripd демон обрабатывает протокол RIP, в то время как ospfd - демон, который поддерживает OSPFv2. bgpd поддерживает протокол BGP-4. Демон zebra служит для формирования таблицы маршрутизации и перераспределения маршрутов между различными протоколами. Совсем необязательно, чтобы демоны выполнялись на одной машине. Можно даже запустить несколько одинаковых демонов на одной машине, что открывает большие перспективы. Архитектура Quagga представлена на рисунке 4.

bgpd

 

ripd

 

ospfd

 

zebra

Таблица маршрутизации ядра Unix

Рисунок 4.

Благодаря разделяемой архитектуре повышается расширяемость, модульность и ремонтопригодность. В тоже время возникает проблема большого числа файлов конфигурации. Каждый демон имеет свой собственный файл конфигурации и терминальный интерфейс. Когда конфигурируется статический маршрут, это должно быть сделано в файле конфигурации zebra, а при конфигурировании маршрутов RIP – в файле конфигурации ripd.

Установка и настройка приложения.

1.Загрузить дистрибутив quagga-0.99.12.tar.gz в каталог /usr/local/src.

2.Распаковать архив:

#tar -xvf quagga-0.99.12.tar.gz

3. Перейти в созданный каталог:

#cd quagga-0.99.12

4. Собрать и установить приложение:

#./configure --datarootdir=/usr/share

#make

#make install

5. При необходимости добавить пользователя quagga:

# adduser Username: quagga

Full name: Quagga Daemon

Uid (Leave empty for default): 101 Login group [quagga]:

Login group is quagga. Invite nobody into other groups? []: Login class [default]:

Shell (sh csh tcsh nologin) [sh]: nologin

Home directory [/home/quagga]: /usr/local/etc/quagga Use password-based authentication? [yes]:

Use an empty password? (yes/no) [no]: Use a random password? (yes/no) [no]: Enter password:

Enter password again:

Lock out the account after creation? [no]:

Username

: quagga

Password

: *****

Full Name

: Quagga Daemon

Uid

: 101

Class

:

Groups

: quagga

Home

: /usr/local/etc/quagga

Shell

: /usr/sbin/nologin

12

Locked : no OK? (yes/no): yes

adduser: INFO: Successfully added (nobody) to the user database. Add another user? (yes/no): no

Goodbye!

6.При необходимости создать каталог /var/run/quagga и сделать владельцем этого каталога пользователя

quagga:

# mkdir /var/run/quagga

# chown quagga /var/run/quagga

7.Скопировать конфигурационные файлы:

#cp /usr/local/etc/zebra.conf.sample /usr/local/etc/zebra.conf

#cp /usr/local/etc/ripd.conf.sample /usr/local/etc/ripd.conf

#cp /usr/local/etc/ospfd.conf.sample /usr/local/etc/ospfd.conf

8. Отредактировать конфигурационные файлы.

9. Запустить сервисы:

#zebra -d -i /var/run/quagga/zebra.pid

#ripd -d -i /var/run/quagga/ripd.pid

#ospfd -d -i /var/run/quagga/ospfd.pid

Задание на работу

1.Установить и настроить в соответствии с вариантом маршрутизатор для протокола IPv4 на базе quagga. Маршрутизатор должен распространять информацию о непосредственно присоединенных сетях.

2.Объединить маршрутизаторы по схеме, представленной на рисунке 5. Каждый маршрутизатор может быть реализован на базе рабочей станции с одним сетевым интерфейсом, подключенным к коммутатору, которые поддерживают технологию VLAN. Для этого необходимо создать виртуальные интерфейсы, каждый из которых будет подключен к виртуальной сети с определенным VLAN ID. В таблице вариантов заданий указаны VLAN ID для первого и второго интерфейсов маршрутизатора соответственно. В качестве третьего интерфейса может использоваться реальный интерфейс узла. Для создания виртуальных интерфейсов IF1 и IF2 маршрутизатора R1 варианта №1 необходимо выполнить следующие действия:

# ifconfig vlan2 create

#ifconfig vlan2 inet 192.168.1.1/24 vlan 2 vlandev fxp0

#ifconfig vlan4 create

#ifconfig vlan4 inet 192.168.3.2/24 vlan 4 vlandev fxp0

3.Проверить правильность функционирования маршрутизаторов, включенных по схеме, представленной на рисунке 5.

4.Проверить правильность функционирования маршрутизаторов, когда один из них отключается от сети. Для этого можно выключить один из виртуальных интерфейсов на любом маршрутизаторе.

Рисунок 5.

13

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

Протокол

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

IF1

IF2

IF3

VLAN ID

варианта

1

RIPv1

R1

192.168.1.1/24

192.168.3.2/24

172.20.0.3/16

2,4

2

RIPv1

R2

192.168.2.1/24

192.168.1.2/24

172.21.0.3/16

3,2

3

RIPv1

R3

192.168.3.1/24

192.168.2.2/24

172.22.0.3/16

4,3

4

RIPv2

R1

10.18.51.65/26

10.18.51.194/26

192.168.5.3/24

5,7

5

RIPv2

R2

10.18.51.129/26

10.18.51.66/26

192.168.6.3/24

6,5

6

RIPv2

R3

10.18.51.193/26

10.18.51.130/26

192.168.7.3/24

7,6

7

OSPF

R1

172.16.1.1/24

172.16.3.2/24

192.168.8.3/24

8,10

8

OSPF

R2

172.16.2.1/24

172.16.1.2/24

192.168.9.3/24

9,8

9

OSPF

R3

172.16.3.1/24

172.16.2.2/24

192.168.10.3/24

10,9

10

RIPv1,2

R1

172.17.0.1/16

172.19.0.2/16

192.168.11.3/24

11,13

11

RIPv1,2

R2

172.18.0.1/16

172.17.0.2/16

192.168.12.3/24

12,11

12

RIPv1,2

R3

172.19.0.1/16

172.18.0.2/16

192.168.13.3/24

13,12

13

OSPF

R1

192.168.4.1/28

192.168.4.34/28

172.23.0.3/16

14,16

14

OSPF

R2

192.168.4.17/28

192.168.4.2/28

172.24.0.3/16

15,14

15

OSPF

R3

192.168.4.33/28

192.168.4.18/28

172.25.0.3/16

16,15

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

1.С какой целью в OSPF вводится понятие область сети?

2.Особенности архитектуры пакета Quagga.

3.Какие характеристики используются для оценки маршрутов в алгоритмах маршрутизации?

4.Что показывает значение переменной net.inet.ip.forwarding во FreeBSD?

5.Сущность алгоритмов маршрутизации состояния связей.

6.Какой параметр по умолчанию используется в качестве метрики в OSPF?

7.Основные отличия протоколов RIPv1 и RIPv2.

8.Какое максимальное расстояние между сетями допустимо в протоколе RIP?

9.Классификация алгоритмов маршрутизации.

10.Сущность дистанционно-векторных алгоритмов маршрутизации.

11.Какие требования предъявляются к алгоритмам динамической маршрутизации?

Литература

1.Олифер В.Г., Олифер Н.А. Компьютерные сети. Принципы, технологии, протоколы: Учебник для вузов. 3-е изд.

СПб.: Питер, 2007. – 960 с.: ил.

2.http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/network-routing.html

3.http://www.quagga.net/docs/quagga.html

14

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