OSPF og Linux/bsd

Det er sikkert ikke kjempemange som bruker OSPF, men hos oss bruker vi OSPF i wanet for å ha stabil dynamisk ruting.

Vi har et par servere stående direkte i wanet for performancemålinger, diagnose og et par andre ting. Derfor meldte behovet seg for linux-servere med ospf.

I hovedsak har man to mulige valg, zebra og quagga. Dette er i hovedsak samme sak, men zebra har ikke vært utviklet på en del år. Quagga er basert på zebra.

Installer derfor quagga på følgende måte med Debian:
# apt-get update && apt-get install quagga
eller FreeBSD:
# portsnap fetch && portsnap extract && cd /usr/ports/net/quagga && make && make install

På debian vil konfigurasjonsfilene bli liggende i /etc/quagga, mens på freebsd vil de bli liggende i /usr/local/etc/quagga.

Hvis vi så ser litt på hva quagga består av, er det i hovedsak 7 tjenester:

Zebra
Oppdaterer kjernens rutingtabell med data fra Quagga's andre tjenester.

bgpd,ospfd,ospf6d,ripd,ripngd og isisd
Tjenester for de forskjellige routingprotokollene. Disse jobber mot quagga sin interne routingtabell og oppdaterer ikke kjernens routingtabell.

For å enable ospfd- og zebra-tjenestene på debian gjøres følgende:
# vim /etc/quagga/daemons
zebra=yes
bgpd=no
ospfd=yes
ospf6d=no
ripd=no
ripngd=no
isisd=no

Ospfd krever følgende konfigfil:
# vim /etc/quagga/ospfd.conf

!
service advanced-vty
log file /var/log/quagga/ospfd.log
!
interface eth0
# ip ospf priority 0 # Kan brukes hvis flere rutere mot samme nett
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 YourPassw0rd
!
router ospf
redistribute static # Endre fra static til connected hvis den står som router, brukte selv boks uten routing
network 192.168.50.0/25 area 0.0.0.0 # Ditt subnett
area 0.0.0.0 authentication message-digest

Zebra trenger også konfigfile:
# vim /etc/quagga/zebra.conf

!
hostname srv01.ospf.domain.local
log file /var/log/quagga/zebra.log
password telnetPassword # port 2601
!
interface eth0
ip address 192.168.50.11/25
multicast
!
interface lo

Pass også på å fikse logfilene til quagga:
# mkdir /var/log/quagga
# chown quagga:quagga /var/log/quagga

Start tjenester ved å kjøre:
# /etc/init.d/quagga start

Det kan lønne seg å taile loggene samtidig:
# tail -f /var/log/quagga/ospfd.log

Korrekt oppsett burde gi noe slik i logg:
009/04/06 08:46:47 OSPF: OSPFd 0.99.5 starting: vty@2604
2009/04/06 08:46:47 OSPF: interface 192.168.50.11 [2] join AllSPFRouters Multicast group.
2009/04/06 08:47:27 OSPF: DR-Election[1st]: Backup 192.168.50.11
2009/04/06 08:47:27 OSPF: DR-Election[1st]: DR 192.168.50.11
2009/04/06 08:47:27 OSPF: DR-Election[2nd]: Backup 0.0.0.0
2009/04/06 08:47:27 OSPF: DR-Election[2nd]: DR 192.168.50.11
2009/04/06 08:47:27 OSPF: interface 192.168.50.11 [2] join AllDRouters Multicast group.
2009/04/06 08:47:59 OSPF: DR-Election[1st]: Backup 0.0.0.0
2009/04/06 08:47:59 OSPF: DR-Election[1st]: DR 192.168.50.1
2009/04/06 08:47:59 OSPF: DR-Election[2nd]: Backup 192.168.50.11
2009/04/06 08:47:59 OSPF: DR-Election[2nd]: DR 192.168.50.1
2009/04/06 08:47:59 OSPF: Packet[DD]: Neighbor 192.168.50.1 Negotiation done (Master).
2009/04/06 08:47:59 OSPF: DR-Election[1st]: Backup 192.168.50.11
2009/04/06 08:47:59 OSPF: DR-Election[1st]: DR 192.168.50.1
2009/04/06 08:47:59 OSPF: Packet[DD]: Neighbor 192.168.50.6: Initial DBD from Slave, ignoring.
2009/04/06 08:47:59 OSPF: Packet[DD]: Neighbor 192.168.50.6 Negotiation done (Master).
2009/04/06 08:48:00 OSPF: DR-Election[1st]: Backup 192.168.50.11
2009/04/06 08:48:00 OSPF: DR-Election[1st]: DR 192.168.50.1
2009/04/06 08:48:00 OSPF: Packet[DD]: Neighbor 192.168.50.9: Initial DBD from Slave, ignoring.
2009/04/06 08:48:00 OSPF: Packet[DD]: Neighbor 192.168.50.9 Negotiation done (Master).
2009/04/06 08:48:00 OSPF: nsm_change_state(192.168.50.6, Loading -> Full): scheduling new router-LSA origination
2009/04/06 08:48:00 OSPF: nsm_change_state(192.168.50.9, Loading -> Full): scheduling new router-LSA origination
2009/04/06 08:48:01 OSPF: nsm_change_state(192.168.50.1, Loading -> Full): scheduling new router-LSA origination
2009/04/06 08:48:01 OSPF: Link State Acknowledgment: Unknown Neighbor 192.168.50.8.
2009/04/06 08:48:02 OSPF: Link State Acknowledgment: Unknown Neighbor 192.168.50.10.
2009/04/06 08:48:02 OSPF: Link State Acknowledgment: Unknown Neighbor 192.168.50.2.
2009/04/06 08:48:02 OSPF: Link State Acknowledgment: Unknown Neighbor 192.168.50.4.
2009/04/06 08:48:02 OSPF: DR-Election[1st]: Backup 192.168.50.11
2009/04/06 08:48:02 OSPF: DR-Election[1st]: DR 192.168.50.1
2009/04/06 08:48:02 OSPF: Packet[DD]: Neighbor 192.168.50.2: Initial DBD from Slave, ignoring.
2009/04/06 08:48:02 OSPF: Packet[DD]: Neighbor 192.168.50.2 Negotiation done (Master).
2009/04/06 08:48:02 OSPF: nsm_change_state(192.168.50.2, Exchange -> Full): scheduling new router-LSA origination
2009/04/06 08:48:04 OSPF: DR-Election[1st]: Backup 192.168.50.11
2009/04/06 08:48:04 OSPF: DR-Election[1st]: DR 192.168.50.1
2009/04/06 08:48:04 OSPF: DR-Election[1st]: Backup 192.168.50.11
2009/04/06 08:48:04 OSPF: DR-Election[1st]: DR 192.168.50.1
2009/04/06 08:48:04 OSPF: DR-Election[1st]: Backup 192.168.50.11
2009/04/06 08:48:04 OSPF: DR-Election[1st]: DR 192.168.50.1

Kommer med mer senere :)

  • Skriv ut artikkel
  • Abonner med RSS

Siste kommentarer