OpenVPN mit quagga und OSPF

Gemeinsam ins Internet mit Firewall und Proxy.
Antworten
jochot
Beiträge: 6
Registriert: 18.03.2015 14:31:33

OpenVPN mit quagga und OSPF

Beitrag von jochot » 18.03.2015 14:59:58

Hey,

ich möchte eine Side-to-Side VPN mit OpenVPN realisieren und das Routing soll Quagga mit OSPF übernehmen.
Der Tunnel steht soweit und ich kann von Server 1 Server 2 pingen.
Wenn ich nun Quagga installiere und konfiguriere macht es erstmal garnix (es erkennt routen und was angeschlossen ist usw. aber ansonsten nicht viel).
Nun erstelle ich eine Route beim Client die auf das Netzwerk hinter dem Server zeigt, und als gateway die Tunnel ip vom Server hat.
Das selbe beim Server, eine Route die auf das Netzwerk hinter dem Client zeigt und als gateway die Tunnel ip vom Client hat.
nun sehen sich die 2 quagga router (sh ip ospf neighbor) und erstellen routen für die Netzwerke hinter dem gegenüber, ich kann aber immernoch nur das Interface des gegenübers im netzwerk dahinter pingen, mehr aber nicht.
So, wahrscheinlich hat bis hier keiner verstanden was ich will und was das Problem ist :lol:
kleines Schaubild:
Bild
Links ist der Client, rechts ist der Server.
Ohne manuell eingestellte routen, kann ich vom Client nur 10.8.0.1 pingen, vom Server nur 10.8.0.6 und die quagga applikationen sehen sich nicht (sh ip ospf neighbor).
mit manuell eingestellten routen kann ich vom Client aus bis zur 10.6.1.1 und vom Server aus bis zur 10.7.1.1 pingen, weiter nicht, der Sinn ist ja aber eigentlich, dass quagga das Routing alleine übernimmt.


Configurationen:

Serverseitig:

Code: Alles auswählen

[quagga]sh run
interface eth1
 description Local Network
 ip address 10.6.1.1/24
 ipv6 nd suppress-ra
!
interface tun0
 description Vlan Tunnel Interface
 ip address 10.8.0.1/24
 ipv6 nd suppress-ra
!
router ospf
 ospf router-id 1.1.1.1
 network 10.6.1.0/24 area 0.0.0.0
 network 10.8.0.0/24 area 0.0.0.0
!

Code: Alles auswählen

[quagga]sh ip route 
K>* 0.0.0.0/0 via 15.194.160.1, eth0
O   10.6.1.0/24 [110/10] is directly connected, eth1, 00:37:27
C>* 10.6.1.0/24 is directly connected, eth1
O   10.7.1.0/24 [110/20] via 10.8.0.6, tun0, 00:23:07
K>* 10.7.1.0/24 via 10.8.0.2, tun0
O   10.8.0.0/24 [110/10] is directly connected, tun0, 00:23:47
K * 10.8.0.0/24 via 10.8.0.2, tun0 inactive
C>* 10.8.0.0/24 is directly connected, tun0
C>* X.X.X.X/24 is directly connected, eth0
C>* 127.0.0.0/8 is directly connected, lo

Code: Alles auswählen

[linux]ifconfig
eth1      Link encap:Ethernet  HWaddr 00:1b:78:58:32:6e
          inet addr:10.6.1.1  Bcast:10.6.1.255  Mask:255.255.255.0
          inet6 addr: fe80::21b:78ff:fe58:326e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9 errors:0 dropped:0 overruns:0 frame:0
          TX packets:461 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:804 (804.0 B)  TX bytes:37600 (36.7 KiB)
          Interrupt:16 Memory:ec120000-ec140000

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.0
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:183 errors:0 dropped:0 overruns:0 frame:0
          TX packets:180 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:12744 (12.4 KiB)  TX bytes:12512 (12.2 KiB)

Code: Alles auswählen

[/etc/openvpn/server.conf]#
server 10.8.0.0 255.255.255.0
push "route 10.7.1.0 255.255.255.0"
client-config-dir ccd
route 10.7.1.0 255.255.255.0
Clientseitig:

Code: Alles auswählen

[quagga]sh run
interface eth1
 description local Network
 ip address 10.7.1.1/24
interface tun0
 description Vlan Tunnel Interface
 ip address 10.8.0.6/24
router ospf
 ospf router-id 2.2.2.2
 network 10.7.1.0/24 area 0.0.0.0
 network 10.8.0.0/24 area 0.0.0.0

Code: Alles auswählen

[quagga]sh ip route 
K>* 0.0.0.0/0 via 16.57.128.1, eth0
K * 10.6.1.0/24 via 10.8.0.1, tun0 inactive
O   10.6.1.0/24 [110/20] via 10.8.0.1, tun0 inactive, 00:28:38
O   10.7.1.0/24 [110/10] is directly connected, eth1, 00:43:03
C>* 10.7.1.0/24 is directly connected, eth1
O   10.8.0.0/24 [110/10] is directly connected, tun0, 00:28:53
C>* 10.8.0.0/24 is directly connected, tun0
K>* 10.8.0.1/32 via 10.8.0.5, tun0
C>* X.X.X.X/25 is directly connected, eth0
C>* X.X.X.X/25 is directly connected, eth0
C>* 127.0.0.0/8 is directly connected, lo

Code: Alles auswählen

[linux] ifconfig
eth1      Link encap:Ethernet  HWaddr 00:50:56:b6:18:9a
          inet addr:10.7.1.1  Bcast:10.7.1.255  Mask:255.255.255.0
          inet6 addr: fe80::250:56ff:feb6:189a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:108 errors:0 dropped:0 overruns:0 frame:0
          TX packets:566 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:16394 (16.0 KiB)  TX bytes:51952 (50.7 KiB)
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:10.8.0.6  P-t-P:10.8.0.5  Mask:255.255.255.0
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:199 errors:0 dropped:0 overruns:0 frame:0
          TX packets:207 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:13784 (13.4 KiB)  TX bytes:14340 (14.0 KiB)

Habe alles, was unnötig ist direkt weg gelassen.

Explizite Fragen:
1. Sollte Quagga in der lage sein, das routing komplett zu übernehmen (sodass in der server.conf keine routen mehr gepusht werden müssen)
2. Wieso können die 2 subnetze nicht kommunizieren obwohl alle Routen eingestellt sind?

bin für jede Hilfe dankbar.

Benutzeravatar
orcape
Beiträge: 1525
Registriert: 07.11.2008 18:37:24
Wohnort: 50°36'23.99"N / 12°10'20.66"E

Re: OpenVPN mit quagga und OSPF

Beitrag von orcape » 19.03.2015 14:40:31

Hi,
zu 1,
..das Quagga das Routing des internen Tunnelnetzes übernemen kann, so das push und Routing Einträge wegfallen, könnte ich mir nicht wirklich vorstellen, lass mich aber gern eines besseren belehren.
zu 2,
Du arbeitest mit einer Tunnelinstanz, d.h. einem OpenVPN-Server, wobei das ganze eine Server-Client Verbindung darstellt, richtig ?
Dabei sollten OpenVPN-Server und -Client folgende IP´s haben...
Bsp:
network 10.8.0.0/24
Server-IP 10.8.0.1
Client-IP 10.8.0.2
Wenn Du in der Server.conf den Eintrag client-to-client hast, solltest Du diesen entfernen. Dieser macht einen Multiclienttunnel, der dann erkenntlich ist an der Client-IP 10.8.0.6. (Routing ins Client-LAN nicht mehr möglich)
Ausserdem ist noch eine CCD erforderlich, die Du hoffentlich eingerichtet hast.
Mach einfach einen Test per ssh.
Zugriff von VPN-Server auf VPN-Client 10.8.0.6. Wenn Du Dich da eingeloggt hast, müsstest Du Dich per ssh auf 10.7.1.1 einloggen können. Direkt auf 10.7.1.1, dürfte das mit dem Multiclienttunnel in Deiner Konfiguration nicht gehen.
Bedenke noch, das Iptables hier auch noch ein Wort mit spricht.;-)
Gruß orcape

jochot
Beiträge: 6
Registriert: 18.03.2015 14:31:33

Re: OpenVPN mit quagga und OSPF

Beitrag von jochot » 19.03.2015 16:10:29

Genau, ich arbeite mit einem OpenVPN Server und einem Client.
IPs sind folgend:
Server 10.8.0.1
Client 10.8.0.6
client-to-client ist in der Konfig ausgeschaltet, ich habe aber eine P-t-P IP Adresse (10.8.0.2 beim Server und 10.8.0.5 beim Client), wofür ist diese Adresse?
CCD habe ich erstellt ja, im File "/etc/openvpn/ccd/debianVPNClient" steht "iroute 10.7.1.0 255.255.255.0" (erstellt die Route auf dem Server, richtig?).
iptables ist aus:

Code: Alles auswählen

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
Die 2 quagga Services finden sich auch als OSPF neighbor

Code: Alles auswählen

    Neighbor ID Pri State           Dead Time Address         Interface            RXmtL RqstL DBsmL
2.2.2.2           1 Full/DROther      34.124s 10.8.0.6        tun0:10.8.0.1            0     0     0

Code: Alles auswählen

    Neighbor ID Pri State           Dead Time Address         Interface            RXmtL RqstL DBsmL
1.1.1.1           1 Full/DROther      38.951s 10.8.0.1        tun0:10.8.0.6            0     0     0

Benutzeravatar
orcape
Beiträge: 1525
Registriert: 07.11.2008 18:37:24
Wohnort: 50°36'23.99"N / 12°10'20.66"E

Re: OpenVPN mit quagga und OSPF

Beitrag von orcape » 22.03.2015 09:58:57

CCD habe ich erstellt ja, im File "/etc/openvpn/ccd/debianVPNClient" steht "iroute 10.7.1.0 255.255.255.0" ...
..in Deiner CCD sollte folgendes stehen...

Code: Alles auswählen

ifconfig-push 10.8.0.2 10.8.0.1
iroute 10.7.1.0 255.255.255.0
(erstellt die Route auf dem Server, richtig?).
Zusätzlich muss das in der Server.conf stehen !....

Code: Alles auswählen

client-config-dir # Pfad zur CCD
ifconfig 10.8.0.2 10.8.0.1
route 10.7.1.0 255.255.255.0
Der Tunnel muss aus Server 10.8.0.1 und Client 10.8.0.2 bestehen, mit Server .1 und Client .6 wirst Du nicht glücklich... :wink:
Gruß orcape

jochot
Beiträge: 6
Registriert: 18.03.2015 14:31:33

Re: OpenVPN mit quagga und OSPF

Beitrag von jochot » 23.03.2015 14:15:59

also jetzt funktioniert soweit alles, auch mit 10.8.0.1 und 10.8.0.6, Danke schonmal!!
Ich habe nur ein Problem, und zwar ist das meine Routing Table:

Code: Alles auswählen

Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, A - Babel,
       > - selected route, * - FIB route

K>* 0.0.0.0/0 via X.X.X.X, eth0
O   10.4.1.0/24 [110/21] via 10.8.0.1, tun0 inactive, 00:08:23
O   10.5.1.0/24 [110/21] via 10.8.0.1, tun0 inactive, 00:13:56
O   10.6.1.0/24 [110/20] via 10.8.0.1, tun0 inactive, 00:13:56
K>* 10.6.1.0/24 via 10.8.0.6, tun0
O   10.7.1.0/24 [110/10] is directly connected, eth1, 3d22h00m
C>* 10.7.1.0/24 is directly connected, eth1
O   10.8.0.0/24 [110/10] is directly connected, tun0, 3d21h59m
C>* 10.8.0.0/24 is directly connected, tun0
K>* 10.8.0.1/32 via 10.8.0.5, tun0
C>* X.X.X.X/25 is directly connected, eth0
C>* 127.0.0.0/8 is directly connected, lo
Diese Zeile hier:

Code: Alles auswählen

O   10.4.1.0/24 [110/21] via 10.8.0.1, tun0 inactive, 00:08:23
beinhaltet die richtige route, Subnetz 10.4.1.0 ist über tun0 erreichbar, aber er wählt (>) diese nicht?
Sollte er aber, da er die sonst nicht erreicht.
Warum wählt er diese nicht?

Antworten