CARP und PPPoE

coop

Active Member
Huhu,

ich habe mal wieder ein Problem,
erstmal, mein Netz sieht folgendermassen aus (bisher)

ein Router mit einem LAN auf der einen Seite, und dem "Internet" auf der anderen Seite.
Falls die Internetverbindung ausfällt, sorg ein Skript dafür (dies testet die Vernindung jede Minute) das das default Gateway auf eine bestehende DSL verbindung umschwenkt (via PPPoE)

Soweit funktioniert auch alles, aber single Point of failure is immernoch die Hardware (der Router)

Also, mein Gedanke, noch eine Büchse, alles via CARP redundant machen... funktioniert auch alles, ausser DSL, da habe ich keine Idee wie ich das machen kann

Letztendlich ist es ja so, ich kann zwar auf das PPPoE Interface ein CARP-Interface legen, allerdings wird es da Probleme geben, weil ich ja
1. nur die eine IP habe (statisch)
2. es kann sich ja immer nur ein Gerät gleichzeitig einwählen, sonst gibts da ja Probleme mit dem Modem...

Mein Lösungsgedanke:

Falls die DSL-Verbindung gebraucht wird, muss der andere Router "disconnectet" werden (also alle CARP-Interfaces) ausgeschaltet werden, das es nur noch den einen Router gibt, und der wählt sich dann via DSL ein...

leider fehlt es mir an den Ideen für die Umsetzung, wie kann ich (am besten mit einem Skript) herrausbekommen, welcher der beiden router bei welchem Interface Master ist (Lösungen wie "grep die ifconfig finde ich persönlch nich unbedingt erstrebenswert...)

kann mir da jemand helfen??

Danke schonmal

coop
 
Ich seh da jetzt das Problem nicht. Die CARP-IF bekommen auf beiden Maschinen die gleiche IP, das ist ja der Sinn der Übung. Zusätzliche (verschiedene) IP brauchst Du nur, um ein einzelnes Gerät gezielt ansprechen zu können, zur Wartung etc. Da kannst Du aber beliebige Adressen aus deinem lokalen Adressraum picken. Oder über seriellen Port rangehen.

Für ein Heimnetz (?) ist das ziemlicher Overkill, die Wahrscheinlichkeit, dass Du Dich durch eine Fehlbedienung selber abklemmst, ist um Grössenordnungen höher, als ein echter Defekt. Ich weiss zufällig, wovon ich rede ;-o . Aber gut, man lernt ja auch immer was dabei.
 
Also bei meinen tests ist herraus gekommen, wenn das "intranet" IF von Maschine 1 down ist, dann komm ich mit allen maschinen hinter den router nicht merh ins internet, da der 2te router nicht mehr on kommt. (der ist master beim Intranet, aber backup beim internet....)mit 3 ips (also jeder eine physikalische und eine für carp) funktioniert es...

das war aber auchnicht ganz meine Frage, obwohl ich das auch gerne mal noch erforschen würde...

meine frage:

die DSL interfaces müssen sich beim Modem "einwählen", also eine Verbindung aufbauen.. soweit sgut, jeder router (Master und Backup) einzeln funktioniert das auch, allerdings, woher weiss ich welcher router gerade aktiv ist (also das Intranet IF an sich hat) und das das "InternetGW" bei beiden "tot" ist...
kann ich eine PPPoE Verbindung auf ein CARP IF legen, und welcher Router connectet sich dann?? Also wo genau muss ich da die konfiguration vornehmen?? (auf Router "Master" oder "Backup" und wo da genau, auf dem Interface oder bei beiden auf dem CARP IF??)

@ Schläfer, hast du es schon einmal getestet was passiert, wenn die physikalischen IF am default GW eine z.B. Private, ungenuntzte IP (also Netz) haben, und das CARP-IF eine öffentliche?? das kannst du eigentliuch auch testen mit 2 verschiedenen Subneztzen... bei mir haben die tests ergeben das nur der in das Netz kommt, der an genau dem CARP den "Master" hat... unabhängig davon wer dem "Master" an dem "Intranet" IF hat......

ich hoffe ich habe jetzt alles etwas klarer formuliert.. is nich ganz easy habe ich das Gefühl... :(


danke trotzdem schonmal

Coop
 
Also bei meinen tests ist herraus gekommen, wenn das "intranet" IF von Maschine 1 down ist, dann komm ich mit allen maschinen hinter den router nicht merh ins internet, da der 2te router nicht mehr on kommt. (der ist master beim Intranet, aber backup beim internet....)mit 3 ips (also jeder eine physikalische und eine für carp) funktioniert es...

das war aber auchnicht ganz meine Frage, obwohl ich das auch gerne mal noch erforschen würde...

meine frage:

die DSL interfaces müssen sich beim Modem "einwählen", also eine Verbindung aufbauen.. soweit sgut, jeder router (Master und Backup) einzeln funktioniert das auch, allerdings, woher weiss ich welcher router gerade aktiv ist (also das Intranet IF an sich hat) und das das "InternetGW" bei beiden "tot" ist...
kann ich eine PPPoE Verbindung auf ein CARP IF legen, und welcher Router connectet sich dann?? Also wo genau muss ich da die konfiguration vornehmen?? (auf Router "Master" oder "Backup" und wo da genau, auf dem Interface oder bei beiden auf dem CARP IF??)

@ Schläfer, hast du es schon einmal getestet was passiert, wenn die physikalischen IF am default GW eine z.B. Private, ungenuntzte IP (also Netz) haben, und das CARP-IF eine öffentliche?? das kannst du eigentliuch auch testen mit 2 verschiedenen Subneztzen... bei mir haben die tests ergeben das nur der in das Netz kommt, der an genau dem CARP den "Master" hat... unabhängig davon wer dem "Master" an dem "Intranet" IF hat......

ich hoffe ich habe jetzt alles etwas klarer formuliert.. is nich ganz easy habe ich das Gefühl... :(


danke trotzdem schonmal

Coop

keine wo das problem ist .......

man nehme 2 carp interfaces

1 dsl gebunden via carpdev ( das pysische interface hat keine ip )
2 ethernet mit privater ip fuer ssh etc.

um den pppoe vorgang kuemmert sich ifstated
http://www.openbsd.org/cgi-bin/man....manpath=OpenBSD+Current&arch=i386&format=html

wichtig hier bei ist das net.inet.carp.preempt auf 1 ist ( kernel parameter )
dieser bewirkt das wenn ein interface down ist ein kompletter schwenk gemacht wird , egal welchen status das 2te carp interface hat.

per ifconfig kann man feststellen wer der aktuelle master ist.

das ueberwachen der verbindung ist auch nicht zwingend noetig
wenn man pf und dessen routing funktionalitaeten nutzt.

http://www.openbsd.org/cgi-bin/man....manpath=OpenBSD+Current&arch=i386&format=html
unter routing.

ggf sollte man den kernel pppoe nehmen als den im ppp , was dass ganze vereinfacht.

holger
 
mit CARP auf ethernet interfaces zu arbeiten habe ich auch geschafft, ist ja auch gar nicht so einfach, aber das mit dem preempt funktioniert eben nicht so wie es sein sollte...

oder ich bin einfach zu blod... mein test lief so:

router 1:

em1 => 10.1.0.1 / 24
em2 => 10.0.0.1 / 24
carp1 => 192.168.1.1 /24 (em1)
carp2 => 192.168.2.1 /24 (em2)

router 2:

em1 => 10.1.0.2 /24
em2 => 10.0.0.2 /24
carp1 => 192.168.1.2 /24 (em1)
carp2 => 192.168.2.2 /24 (em2)

so, router 1 ist master bei mir.

sobald ein interface von diesem ausfällt wird dieses automatisch auf den anderen umgeschwenkt, allerdings funktioniert dann nix mehr, weil jeder nur 1 interface hat....
wenn ich die pakete mitsniffe sehe ich auch unterschiedliche MAC adressen (was ja eigentlich nicht sein sollte...)

sobald die physikalischen interfaces der jeweiligen CARP interfaces im gleichen subnertz sind wie das CARP interface, dann gehts...

nunja, soweit funktioniert das auch alles erstmal, bezüglich pppoe habe ich mich nun dazu entschieden das sich das modem einwählt und mir ein privates network auf der secondary site zur verfügung stellt, das läuft nun auch alles soweit bei mir... mei nächstes problem....

mein pfsync interface wird nicht automatisch hochgefahren...

Code:
# cat /etc/hostname.pfsync0                                                                                                                                 
# syncinterface for pf/carp
up syncdev em0

wenn mich nich alles täuscht ist doch der code richtig?? hatte es auch mit einem zusätzlichen
Code:
syncpeer 10.0.0.1[\CODE] versucht, aber es funktioniert nicht (ich habe die IPs von den CARP interfaces geändert, es gibt also keine ip konflikte...)

kann mir da jemand helfen??

danke
coop

EDIT

achja, 

[CODE]
# sh /etc/netstart pfsync0
#
funktioniert fehlerfrei...
dann ist das interface auch vorhanden...
 
mit CARP auf ethernet interfaces zu arbeiten habe ich auch geschafft, ist ja auch gar nicht so einfach, aber das mit dem preempt funktioniert eben nicht so wie es sein sollte...

oder ich bin einfach zu blod... mein test lief so:

router 1:

em1 => 10.1.0.1 / 24
em2 => 10.0.0.1 / 24
carp1 => 192.168.1.1 /24 (em1)
carp2 => 192.168.2.1 /24 (em2)

router 2:

em1 => 10.1.0.2 /24
em2 => 10.0.0.2 /24
carp1 => 192.168.1.2 /24 (em1)
carp2 => 192.168.2.2 /24 (em2)

so, router 1 ist master bei mir.

sobald ein interface von diesem ausfällt wird dieses automatisch auf den anderen umgeschwenkt, allerdings funktioniert dann nix mehr, weil jeder nur 1 interface hat....
wenn ich die pakete mitsniffe sehe ich auch unterschiedliche MAC adressen (was ja eigentlich nicht sein sollte...)

sobald die physikalischen interfaces der jeweiligen CARP interfaces im gleichen subnertz sind wie das CARP interface, dann gehts...

nunja, soweit funktioniert das auch alles erstmal, bezüglich pppoe habe ich mich nun dazu entschieden das sich das modem einwählt und mir ein privates network auf der secondary site zur verfügung stellt, das läuft nun auch alles soweit bei mir... mei nächstes problem....

mein pfsync interface wird nicht automatisch hochgefahren...

Code:
# cat /etc/hostname.pfsync0                                                                                                                                 
# syncinterface for pf/carp
up syncdev em0

wenn mich nich alles täuscht ist doch der code richtig?? hatte es auch mit einem zusätzlichen
Code:
syncpeer 10.0.0.1[\CODE] versucht, aber es funktioniert nicht (ich habe die IPs von den CARP interfaces geändert, es gibt also keine ip konflikte...)

kann mir da jemand helfen??

danke
coop

EDIT

achja, 

[CODE]
# sh /etc/netstart pfsync0
#
funktioniert fehlerfrei...
dann ist das interface auch vorhanden...

grundsaetzlich ist pfsync nicht noetig um carp zu machen !
es wurd nur fuer die syncronisation der states der firewall u.a. benoetigt.

es sollte auch deswegen nicht das gleiche interface nutzen wie der
rest der maschine.

im pinzip
wan em1
lan em2
pfsync em0

ist der prempt switch gesetzt ? ( sysctl )

und 2 ip s aus dem gleichen netz auf 2 interafaces macht keinen sinn.

denk mal im dreieck
srich ( beispiel )
carp0
10.0.0.10

em1-fw1 em1-fw2
10.0.0.1 10.0.0.1


nun das ganze fuer 192

carp1
192.168.1.10

em2-fw1 em2-fw2
192.168.1.1 192.168.1.2

ip.forward nicht vergessen anzumachen.


holger
 
grundsaetzlich ist pfsync nicht noetig um carp zu machen !
es wurd nur fuer die syncronisation der states der firewall u.a. benoetigt.

es sollte auch deswegen nicht das gleiche interface nutzen wie der
rest der maschine.

im pinzip
wan em1
lan em2
pfsync em0

ist der prempt switch gesetzt ? ( sysctl )

und 2 ip s aus dem gleichen netz auf 2 interafaces macht keinen sinn.

denk mal im dreieck
srich ( beispiel )
carp0
10.0.0.10

em1-fw1 em1-fw2
10.0.0.1 10.0.0.1


nun das ganze fuer 192

carp1
192.168.1.10

em2-fw1 em2-fw2
192.168.1.1 192.168.1.2

ip.forward nicht vergessen anzumachen.


holger

meine Inzterfaces sind doch in verschiedenen Subnetzen (also so wie ich es oben erklärt habe...)
und, das war wie beschrieben nur ein test, wenn die physikalischen Interfaces in anderen subnetzen liegen als das carp interface, dann gehts nicht...warum auch immer...

So, nun zum pfsync...

net.inet.carp.preempt=1
net.inet.ip.forwarding=1

pfsync ist auf em0,
carp1 auf em1
carp2 auf em2
carp3 auf em3

also alles schön einzeln...
aber wie gesagt, pfsync wird beim boot nicht gestartet (bei
Code:
sh /etc/netstart
auch nicht, nur bei
Code:
sh /etc/netstart pfsync0
)... :(

danke
 
Zurück
Oben