OSPF — основы динамической маршрутизации

Основная задача протокола ospf — динамическая маршрутизация внутри PI/PA адресного пространства IP-сети. Актуальность протока высока при использовании туннелирования с динамическими IP-адресами туннелей при наличии нескольких серверов доступа. Может использоваться для конфигурирования сетей с маршрутизацией сегментов для сокращения работ по настройке маршрутизаторов верхнего уровня, энтузиасты также ухитряются строить с помощью ospf решения для резервирования.

В FreeBSD реализация протокола есть в порте quagga.

 # cd /usr/ports/net/quagga
 # make install clean

Создаем файл лога:

 # touch /var/log/ospfd.log
 # touch /var/log/zebra.log
 # chown quagga:quagga /var/log/ospfd.log
 # chown quagga:quagga /var/log/zebra.log

Естественно необходимо провести стандартные действия для автоматического запуска и добавляем в файл /etc/rc.conf строки:

 quagga_enable="YES"
 quagga_daemons="zebra ospfd"
 quagga_flags="-d -A 127.0.0.1"

Запускаем демоны zebra и ospfd, который будет слушать на адресе 127.0.0.1 порты 2601 и 2604 соответственно.

Далее предположим, что у нас есть 2 хоста

  • core_home с IP 192.168.0.254/24 на внутреннем интерфейсе;
  • route1_home c IP 192.168.16.1/24 на внутреннем интерфейсе и 192.168.0.253 на внешнем

. По умолчанию для core_home существует direct маршрут

192.168.0.0/24   link#1             U           4  7350824    em0

На route1_home также существует дефолт

default            192.168.0.1        UGS         0  145852    fxp0

и direct маршрут

192.168.16.0/24   link#1             U           4  85344    fxp1

Необходимо, чтобы хост core_home знал, где искать адреса из сети 192.168.16.0/24  без явного указания статического маршрута. Конфиги /usr/local/etc/quagga/ospfd.conf выглядят следующим образом:

на core_home:

!
 hostname core_home
 password pass
 enable password pass
 log file /var/log/ospfd.log
 no banner motd
 !
 router ospf
 ospf router-id 192.168.0.254
 network 192.168.0.0/24 area 0.0.0.0
 neighbor 192.168.0.253
 default-information originate
 !
 line vty
 !

а на route1_home:

!
 hostname core_home
 password pass
 enable password pass
 log file /var/log/ospfd.log
 no banner motd
 !
 router ospf
 ospf router-id 192.168.0.253
 redistribute connected
 network 192.168.0.0/24 area 0.0.0.0
 neighbor 192.168.0.254
 !
 line vty
 !

Также создаем на обоих хостах файлы /usr/local/etc/quagga/zebra.conf следующего содержания:

!
 hostname core_home
 password pass
 enable password pass
 log file /var/log/zebra.log
 no banner motd
 !
 ip forwarding
 !
 line vty
 !

Запускаем демоны:

# /usr/local/etc/rc.d/quagga start

А теперь заходим в консоль ospfd на хосте core_home:

# telnet 127.0.0.1 2604
 Trying 127.0.0.1...
 Connected to localhost.
 Escape character is '^]'.

User Access Verification

Password:
core_home> en
Password:
core_home# sh ip os ne

Neighbor ID Pri State           Dead Time Address         Interface            RXmtL RqstL DBsmL
192.168.0.253    1 Full/DR           33.862s 192.168.0.253  em0:192.168.0.254      0     0     0
core_home# sh ip os ro
============ OSPF network routing table ============
N    192.168.0.0/24      [10] area: 0.0.0.0
directly attached to em0

============ OSPF router routing table =============
R    192.168.0.253        [10] area: 0.0.0.0, ASBR
via 192.168.0.253, em0

============ OSPF external routing table ===========
N E2 192.168.16.0/24       [10/20] tag: 0
via 192.168.0.253, em0

Как видно, хост получает маршрут ко всем сетям, которые присутствуют на маршрутизаторе route1_home.  Это можно проконтролировать в демоне zebra:

# telnet 127.0.0.1 2601
 Trying 127.0.0.1...
Connected to localhost.
 Escape character is '^]'.

User Access Verification

Password:
core_home> en
Password:
core_home# sh ip ro
Codes: K — kernel route, C — connected, S — static, R — RIP, O — OSPF,
I — ISIS, B — BGP, > — selected route, * — FIB route

O>* 192.168.16.0/24 [110/20] via 192.168.128.22, em0, 00:31:42
O   192.168.0.0/24 [110/10] is directly connected, em0, 00:32:03
C>* 192.168.0.0/24 is directly connected, em0

Надеюсь идея понятна.

Источник http://myfreebsd.ru/network/ospf-osnovy-dinamicheskoj-marshrutizacii

Запись опубликована в рубрике *Unix,*Linux, FreeBSD. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не спамер This plugin created by Alexei91