Startseite OSPF Routing mit pfSense und Cisco ASA
Eintrag
Abbrechen

OSPF Routing mit pfSense und Cisco ASA

pfSense liefert Quagga mit, eine Cisco ASA bietet OSPF als Routingprotokoll an, warum nicht zwischen beiden Systemen mit OSPF routen? Die Implementierung gestaltet sich als recht interessant.

Folgende Topologie wird verwendet:

Netzwerkplan

Auf der pfSense wird unter System -> Package Manager -> Available Packages das Paket Quagga_OSPF installiert. FRR wäre ebenfalls eine Möglichkeit, habe ich mir bisher jedoch noch nicht unter pfSense angeschaut.

Netzwerkplan

Unter Services -> Quagga OSPFd werden die Grundeinstellungen vorgenommen. Wichtig: viele Dinge können nicht direkt über das Webinterface eingestellt werden, hier macht sich die CLI wesentlich besser.

Passwort, Logging, Router-ID und eine Area müssen eingestellt werden.

Netzwerkplan

Weitere Konfigurationen können hier angeklickt werden. Bei einem CARP-Cluster sollte dringend eine IP / Schnittstelle zur Überwachung eingestellt werden, andernfalls kann es zu Routing-Loops kommen. SAVE anklicken.

Jetzt wird ein Interface ausgewählt, hier das WAN-Interface. Auch hier wird eine Area eingetragen.

Netzwerkplan

Weitere Einstellungen, wie Passwörter, Timer etc. können hier ebenfalls vorgenommen werden. Auf SAVE klicken.

Damit ist die Grundeinstellung abgeschlossen. Alles weitere kann auf der CLI eingerichtet werden. Per SSH auf die pfSense gehen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
ssh admin@192.168.0.10

grumpy@host:~$ ssh admin@192.168.0.10
Password for admin@pf1.decon230.org:
VirtualBox Virtual Machine - Netgate Device ID: 5fdd84f59e0b78379b1a

*** Welcome to pfSense 2.4.2-RELEASE-p1 (amd64) on pf1 ***

 WAN (wan)       -> em0        -> v4: 172.22.94.11/24
 LAN (lan)       -> em1        -> v4: 192.168.0.10/24

 0) Logout (SSH only)                  9) pfTop
 1) Assign Interfaces                 10) Filter Logs
 2) Set interface(s) IP address       11) Restart webConfigurator
 3) Reset webConfigurator password    12) PHP shell + pfSense tools
 4) Reset to factory defaults         13) Update from console
 5) Reboot system                     14) Disable Secure Shell (sshd)
 6) Halt system                       15) Restore recent configuration
 7) Ping host                         16) Restart PHP-FPM
 8) Shell

Enter an option: 8

[2.4.2-RELEASE][admin@pf1.decon230.org]/root:


Damit die CLI vernünftig arbeitet führe ich vorher ein 

[2.4.2-RELEASE][admin@pf1.decon230.org]/root: setenv VTYSH_PAGER cat

aus.

[2.4.2-RELEASE][admin@pf1.decon230.org]/root: vtysh

Hello, this is Quagga (version 1.2.1).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

pf1.decon230.org#

Im Konfigurationsmodus (conf t) werden die Interfaces mit Beschreibungen versehen:

1
2
3
4
5
6
7
interface em0
 description ->ASA
 ip ospf authentication message-digest
 ip ospf message-digest-key 42 md5 password

interface em1
 description ->LAN

Die direkt angebundenen Netze aus dem Bereich 192.168.0.0/16 sollen redistributiert werden. Da auch noch andere Netze direkt angeschlossen sind, muss eine Route-Map erstellt werden.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
pf1.decon230.org# sh ip route connected
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, P - PIM, A - Babel, N - NHRP,
       > - selected route, * - FIB route

C>* 127.0.0.0/8 is directly connected, lo0
C>* 172.22.94.0/24 is directly connected, em0
C>* 192.168.0.0/24 is directly connected, em1

ip prefix-list connected-into-ospf seq 10 permit 192.168.0.0/16 le 32
ip prefix-list connected-into-ospf seq 20 deny any

route-map connected-into-ospf permit 10
 match ip address prefix-list connected-into-ospf

Remote Logins auf den Quaggaprozess müssen unterbunden werden.

1
2
line vty
 no login

Jetzt kann der OSPF-Prozess eingerichtet werden.

1
2
3
4
5
6
7
router ospf
 ospf router-id 172.22.94.11
 log-adjacency-changes detail
 redistribute connected route-map connected-into-ospf
 passive-interface default
 no passive-interface em0
 network 172.22.94.0/24 area 0.0.0.0

Damit ist Quagga konfiguriert. Ein wr mem damit die Konfiguration gespeichert wird. Achtung: diese wird durch ein Reboot wieder zurückgesetzt! Es wird wieder in das Webinterface gewechselt, Services -> Quagga OSPFd -> Raw Config.

Die Konfiguration wird orange hinterlegt sein. Der Knopf “Copy OSPFd Running to Saved” muss angeklickt werden. Das Gleiche muss mit der Zebrakonfiguration wiederholt werden, diese befindet sich weiter unten. Auch hier “Copy Zebra Running to Saved” anklicken. Erst wenn alle Konfigurationen grün hinterlegt sind, wird die Konfigration beim Neustart in der Form geladen, wie sie auf der CLI eingegeben wurde.

Netzwerkplan

Netzwerkplan

Damit läuft der OSPF Prozess, es wird jedoch keine Nachbarschaft zur ASA zustande kommen. Die ASA wird im Status INIT/DRother verbleiben. Ursache sind fehlende ACLs auf der pfSense, welche OSPF Multicastpakete blocken.

Unter Firewall -> Rules -> Floating müssen zwei Einträge erstellt werden:

Netzwerkplan

Es muss das Protokoll OSPF auf seine entsprechenden Multicast-Adressen 224.0.0.4 und 224.0.0.5 erlaubt werden. Anschließend wird eine Nachbarschaft zur ASA aufgebaut.

1
2
Neighbor ID     Pri   State           Dead Time   Address         Interface
172.22.94.11      1   FULL/DR         0:00:39     172.22.94.11    lab-test

Die Konfiguration der ASA sieht folgendermaßen aus:

1
2
3
4
5
6
7
8
9
router ospf 65523
 router-id 172.22.94.1
 network 172.22.94.0 255.255.255.0 area 0
 log-adj-changes detail

interface Vlan94
 ip address 172.22.94.1 255.255.255.0
 ospf message-digest-key 42 md5 *****
 ospf authentication message-digest

Ein sho route zeigt die OSPF E2-Route:

1
2
O E2 192.168.0.0 255.255.255.0
           [110/20] via 172.22.94.11, 0:00:37, lab-test

Bei diesem Beispiel sollte daran gedacht werden, dass externe OSPF-Routen nicht zusammengefasst werden können. Dies könnte u. U. die Routingtabelle füllen und zu Ressourcenproblemen führen.