Volek Jiří Radim Koudela
Vol103 kou
Zadání: Konfigurace OSPF
Specifikace: Na vhodně zvolených příkladech demonstrujte konfiguraci a zapojeni routru
s protokolem OSPF.
1) Demonstrujte redistribuci jiného protokolu do protokolu OSPF a naopak
(Např.: RIP)
2) Demonstrujte redistribuci protokolu OSPF
3) Demonstrujte redistribuci protokolu OSPF, kde jedna siť je typu stub
4) Demonstrujte redistribuci protokolu OSPF, kde jedna siť není přímo připojena k area 0 (virtual link)
Vše realizujte v prostředí Linux.
Řešení: Realizace a příklady jsou odzkoušeny a odladěny v prostředí Zebra 0.94 a operačním systémem Mandrake Linux 9.1.
Příklad zapojeni:
Mějme 3 routry nazvané A, B,C, které jsou připojeny na 2 segmenty sítě EthernetLAN a EthernetLAN1. Na routrech máme nainstalovaný software zebra a spuštěny démony: zebra, ripd a ospfd. Přístup na stanoveny démon se realizuje příkazem telnet localhost port. Heslo pak obvykle bývá zebra.
Kde uvedení démoni mají následující porty: Zebra 2601
Ripd 2602
Ospf 2604
Pro konfiguraci lze použít jak vty tak je možno použit konfigurační soubory ve složce usr\local\etc\zebra.conf
Ripd.conf
Ospfd.conf
V konfiguraci je možné i místo ip adres sítí a jejich masky uvést interface.
1) Nastavme na interfacech eth0 routru A a B protokol RIP. Na routru B navíc nastavme redistribuci protokolu OSPF do ripu. Pak nastavme na interfacech eth1 routru B a C protokol OSPF pro areu 0 a na routru B redistribuci protokolu RIP.
Návod:
telnet
localhost 2601
>en
#conf t
(config)#hostname A
A(config)#int
eth0
A(config-if)#description
A-eth0
A(config-if)#ip
add 192.168.1.1/24
A(config-if)#no
shut
A(config-if)#exit
A(config)#password
zebra
A(config)#enable password
zebra
A(config)#exit
A#write file
A#exit
A>exit
telnet
localhost 2602
>en
#conf t
(config)#hostname A
A(config-if)#description
A-eth0
A(config-if)#exit
A(config)#router rip
A(config-router)#network
192.168.1.0/24
A(config-router)# distance 1
A(config-router)#redistribute
connected
A(config-router)#exit
A(config)#password
zebra
A(config)#enable password
zebra
A(config)#exit
A#write file
A#exit
A>exit
Soubor zebra.conf:
!
! Zebra configuration saved
from vty
! 2004/01/08 11:55:46
!
hostname A
password zebra
enable password zebra
!
interface lo
!
interface eth0
description A-eth0
ip address 192.168.1.1/24
!
line vty
!
Soubor ripd.conf:
!
! Zebra configuration saved
from vty
! 2004/01/05 12:58:43
!
hostname A
password zebra
!
interface lo
!
interface eth0
description A-eth0
!
router rip
network 192.168.1.0/24
redistribute connected
distance 1
!
line vty
!
telnet
localhost 2601
>en
#conf t
(config)#hostname B
B(config)#int
eth0
B(config-if)#description
B-eth0
B(config-if)#ip
add 192.168.1.2/24
B(config-if)#no
shut
B(config-if)#exit
B(config)#int
eth1
B(config-if)#description
B-eth1
B(config-if)#ip
add 192.168.2.1/24
B(config-if)#no
shut
B(config-if)#exit
B(config)#password
zebra
B(config)#enable password
zebra
B(config)#exit
B#write file
B#exit
B>exit
telnet
localhost 2602
>en
#conf t
(config)#hostname B
B(config-if)#description
B-eth0
B(config-if)#exit
B(config)#router rip
B(config-router)#network
192.168.1.0/24
B(config-router)#redistribute
ospf
B(config-router)# distance 1
B(config-router)#redistribute
connected
B(config-router)#exit
B(config)#password
zebra
B(config)#enable password
zebra
B(config)#exit
B#write file
B#exit
B>exit
telnet localhost 2604
>en
#conf t
(config)#hostname B
B(config-if)#description
B-eth1
B(config-if)#ospf
network broadcast
B(config-if)#exit
B(config)#router ospf
B(config-router)#network
192.168.2.0/24 area 0
B(config-router)#redistribute
rip
B(config-router)#exit
B(config)#password
zebra
B(config)#enable password
zebra
B(config)#exit
B#write file
B#exit
B>exit
Soubor zebra.conf:
!
! Zebra configuration saved
from vty
! 2004/01/08 11:55:46
!
hostname B
password zebra
enable password zebra
!
interface lo
!
interface eth0
description B-eth0
ip address 192.168.1.2/24
!
interface eth1
description B-eth1
ip address 192.168.2.1/24
!
line vty
!
Soubor ripd.conf:
!
! Zebra configuration saved
from vty
! 2004/01/05 12:58:43
!
hostname B
password zebra
!
interface lo
!
interface eth0
description B-eth0
!
router rip
redistribute ospf
network 192.168.1.0/24
redistribute connected
distance 1
!
line vty
!
Soubor ospfd.conf:
!
! Zebra configuration saved
from vty
! 2004/01/08 12:18:35
!
hostname B
password zebra
enable password zebra
!
!
!
interface lo
!
interface eth1
description B-eth1
!
router ospf
redistribute rip
network 192.168.2.0/24 area 0
!
line vty
!
telnet
localhost 2601
>en
#conf t
(config)#hostname C
C(config)#int
eth1
C(config-if)#description
C-eth1
C(config-if)#ip
add 192.168.2.2/24
C(config-if)#no
shut
C(config-if)#exit
C(config)#password
zebra
C(config)#enable password
zebra
C(config)#exit
C#write file
C#exit
C>exit
telnet localhost 2604
>en
#conf t
(config)#hostname C
C(config-if)#description
B-eth1
C(config-if)#ospf
network broadcast
C(config-if)#exit
C(config)#router ospf
C(config-router)#network
192.168.2.0/24 area 0
C(config-router)#exit
C(config)#password
zebra
C(config)#enable password
zebra
C(config)#exit
C#write file
C#exit
C>exit
Soubor zebra.conf:
!
! Zebra configuration saved
from vty
! 2004/01/08 11:55:46
!
hostname C
password zebra
enable password zebra
!
interface lo
!
interface eth1
description C-eth1
ip address 192.168.2.2/24
!
line vty
!
Soubor ospfd.conf:
!
! Zebra configuration saved
from vty
! 2004/01/08 12:18:35
!
hostname C
password zebra
enable password zebra
!
!
!
interface lo
!
interface eth1
description B-eth1
!
router ospf
network 192.168.2.0/24 area 0
!
line vty
!
2,3}Nastaveni routru C je stejné jako v předchozím příkladě a na routrech A a B je stejný
soubor (konfigurace) zebra.conf. Příklad 2 a 3 se liší jen příkazem area 1 stub, nebo area 1 stub no-summary. Při vynechání či zakomentování se jedna o příklad 2. Při uvedeni area 1 stub se vynechají externí cesty – příklad 3 a při no-summary se vynechají i interní cesty.
Návod:
telnet localhost 2604
>en
#conf t
(config)#hostname A
A(config-if)#description
A-eth0
A(config-if)#ospf
network broadcast
A(config-if)#exit
A(config)#router ospf
A(config-router)#network
192.168.1.0/24 area 1
<A(config-router)#area 1
stub)>
<A(config-router)#area 1 stub
no-summary>
A(config-router)#exit
A(config)#password
zebra
A(config)#enable password zebra
A(config)#exit
A#write file
A#exit
A>exit
Soubor ospfd.conf:
!
! Zebra configuration saved from vty
! 2004/01/05 13:04:52
!
hostname A
password zebra
enable password zebra
!
!
interface lo
!
interface eth0
description A-eth0
!
router ospf
network 192.168.1.0/24 area 1
!area 1 stub
!area 1 stub no sumary
!
line vty
!
telnet localhost 2604
>en
#conf t
(config)#hostname B
B(config-if)#description
B-eth0
B(config-if)#ospf
network broadcast
B(config-if)#exit
B(config-if)#description
B-eth1
B(config-if)#ospf
network broadcast
B(config-if)#exit
B(config)#router ospf
B(config-router)#network
192.168.1.0/24 area 1
B(config-router)#network
192.168.2.0/24 area 0
<B(config-router)#area 1
stub)>
<B(config-router)#area 1 stub
no-summary>
B(config-router)#exit
B(config)#password
zebra
B(config)#enable password
zebra
B(config)#exit
B#write file
B#exit
B>exit
Soubor ospfd.conf:
!
! Zebra configuration saved from vty
! 2004/01/05 13:04:52
!
hostname B
password zebra
enable password zebra
!
!
interface lo
!
interface eth0
description B-eth0
!
interface eth1
description B-eth1
!
router ospf
network 192.168.1.0/24 area 1
network 192.168.2.0/24 area 0
!area 1 stub
!area 1 stub no sumary
!
line vty
!
4)Příklad na virtuál link. Nastavení souboru zebra.conf (i u konzele) zůstává u routrů A a B
stejné. Máme areu 2 kterou představují routry A a B, areu 1 přes kterou je připojena area 2 představují routry B a C a areu 0 pak routry C a D. Nastavení ospfd.conf (popřípadě i nastavení v konzoli) u routru A a B, zůstává stejné s tím rozdílem, že areu 0 zaměníme na za areu1 a areu 1 zaměníme za areu2 a u routru B se přidájí příkazy
B(config-router)# area 1 virtual-link 192.168.2.2
B(config-router)#router-id 192.-168.2.1
a v souboru ospfd.conf area 1 virtual-link 192.168.2.2
router-id 192.168.2.1
Schéma zapojení:
Návod:
telnet
localhost 2601
>en
#conf t
(config)#hostname C
C(config)#int eth0
C(config-if)#description
C-eth0
C(config-if)#ip
add 192.168.3.1/24
C(config-if)#no
shut
C(config-if)#exit
C(config)#int
eth1
C(config-if)#description
C-eth1
C(config-if)#ip
add 192.168.2.2/24
C(config-if)#no
shut
C(config-if)#exit
C(config)#password
zebra
C(config)#enable password
zebra
C(config)#exit
C#write file
C#exit
C>exit
telnet localhost 2604
>en
#conf t
(config)#hostname C
C(config-if)#description
B-eth0
C(config-if)#ospf
network broadcast
C(config-if)#exit
C(config-if)#description
B-eth1
C(config-if)#ospf
network broadcast
C(config-if)#exit
C(config)#router ospf
C(config-router)#network
192.168.2.0/24 area 1
C(config-router)#network
192.168.3.0/24 area 0
C(config-router)# area 1 virtual-link 192.168.2.1
C(config-router)#router-id 192.-168.2.2
C(config-router)#exit
C(config)#password
zebra
C(config)#enable password
zebra
C(config)#exit
C#write file
C#exit
C>exit
Soubor zebra.conf:
!
! Zebra configuration saved
from vty
! 2004/01/08 11:55:46
!
hostname C
password zebra
enable password zebra
!
interface lo
!
interface eth0
description C-eth0
ip address 192.168.3.1/24
!
interface eth1
description C-eth1
ip address 192.168.2./24
!
line vty
!
Soubor ospfd.conf:
!
! Zebra configuration saved
from vty
! 2004/01/05 13:04:52
!
hostname C
password zebra
enable password zebra
!
!
interface lo
!
interface eth0
description C-eth0
!
interface eth1
description C-eth1
!
router ospf
network 192.168.2.0/24 area 1
network 192.168.3.0/24 area 0
area 1 virtual-link 192.168.2.1
router-id 192.168.2.2
!
line vty
!
telnet
localhost 2601
>en
#conf t
(config)#hostname D
D(config)#int
eth0
D(config-if)#description
D-eth0
D(config-if)#ip
add 192.168.3.2/24
D(config-if)#no
shut
D(config-if)#exit
D(config)#password
zebra
D(config)#enable password
zebra
D(config)#exit
D#write file
D#exit
D>exit
telnet localhost 2604
>en
#conf t
(config)#hostname D
D(config-if)#description
D-eth0
D(config-if)#ospf
network broadcast
D(config-if)#exit
D(config)#router ospf
D(config-router)#network
192.168.3.0/24 area 0
D(config-router)#exit
D(config)#password
zebra
D(config)#enable password
zebra
D(config)#exit
D#write file
D#exit
D>exit
Soubor zebra.conf:
!
! Zebra configuration saved
from vty
! 2004/01/08 11:55:46
!
hostname D
password zebra
enable password zebra
!
interface lo
!
interface eth0
description D-eth0
ip address 192.168.3.2/24
!
line vty
!
Soubor ospfd.conf:
!
! Zebra configuration saved from vty
! 2004/01/05 13:04:52
!
hostname D
password zebra
enable password zebra
!
!
!
interface lo
!
interface eth0
description d-eth0
!
router ospf
network 192.168.3.0/24 area 0
!
line vty
!
Závěr:
V praxi se pak používá kombinace těchto uvedených příkladu, Kde hlavni je Area 0 a k ni se připojují další oblasti area 1 atd. V případě, že připojujeme firmu, která má v rámci své sítě nastaveny směrovací protokol RIP, připojíme jí ke své síti OSPF a nastavíme na hraničním routru redistribuci OSPF a RIP. Když máme firmu, uživatel připojeného pomoci 1 routru a neprochází přes jeho areu provoz lze pro ušetření paměti a velikosti ospf tabulek nastavit tuto oblast jako stub. To je celkem aktualní hlavně u připojování malých firem či uživatelů, kteří chtějí vlastní areu a není předpoklad průchozího trafiku, nebo více připojení čí poskytovatelů.
Když máme firmu, kterou nelze připojit k area 0, z cenového hlediska či jiných důvodu a máme poblíž jinou areu, lze tuto firmu připojit k dané areji s tím, že se přes ní nastaví virtual link a logicky se to tváří jako by daná firma byla přímo připojena k area 0.
Příklady:
Zdroj informaci: www.cisco.com