1xOpenBSD und 3xKabelmodems

Mr.Niceguy

New Member
Hi Leute,

bin ziemlich verzweifelt, deshalb wende ich mich an euch ;)

Kurz worums geht:

ich mach ne LAN-Party (300 Teilnehmer) und wir kriegen 3 Kabelmodems zur Verfügung gestellt. Als Internet-Gateway hab ich ne OpenBSD 3.7 Maschine, welche das LAN drei-teilen soll. Die ersten 100 User sollen über KabelModem1 ins Internet gelangen, die zweiten 100 User über Modem2 und die dritten 300 über Modem3.

rl0: Modem#1
rl1: Modem#2
rl2: Modem#3
rl3: LAN

Soweit so gut. Ich habe 4 Netzwerkkarten drinnen, 1xLAN und 3xModems. Die Hardware funktioniert, auch mit den Modems klappt alles. Ich natte die ersten 100 User auf rl0, die zweiten 100 auf rl1 und die dritten 100 auf rl2. Jedes Modem hat sowohl eine Internet-IP als auch ein Gateway, sprich ich hab 3 IP's mit 3 Gateways.

Nun zu meinem Problem:

Ich bin ein Rechner im LAN und werde zum richtigen externen Interface weitergeleitet. Auf gut deutsch: jenachdem in welchem Drittel der Teilnehmer ich mich befinde, kann ich entweder die IP von Modem1, die IP von Modem2 oder die IP von Modem3 pingen.

=> nur weiter als die ModemIP bzw. dessen Gateway komme ich nicht hinaus :cool:

Hier noch ein paar Anmerkungen:

1.) LoadBalancing ist nicht möglich, da gegeben sein MUSS dass jeder LAN-User IMMER dieselbe externe IP hat (aufgrund der Online-Spiele)
2.) ja ich weiß, es gibt die Möglichkeit, für jedes Modem eine eigene Kiste hinzustellen - ich möchts aber elegant lösen und das ganze mit einem PC schaffen ;)
3.) ich bin für alle Ideen zu haben, auch wenn jemand ne Möglichkeit kennt mein Vorhaben mit einem anderen OS zu machen - ich bin dabei
4.) wäre echt echt super wenn ihr mir da weiterhelfen könntet!

Thx & Schöne Grüße,
Christian
 
diesen Thread habe ich mir bereits durchgelesen, jedoch keine Antwort auf meine Frage gefunden. ich stecke mehr oder weniger beim thema "Basic Routing" fest.

die Sache mit dem Routen hab ich wie gesagt schon ausprobiert. Angestanden bin ich dann als ich für alle 3 externen Interfaces jeweils eine default Route eintragen wollte. Doch wie soll ich das anstellen?

fürs erste netz:
route add -net 10.10.0.0/24 81.1.2.3

fürs zweite netz:
route add -net 10.10.1.0/24 81.4.5.6

fürs dritte netz:
route add -net 10.10.2.0/24 81.7.8.9


Was brauchst du noch für Infos bzgl. meiner Konfiguration? Ich verrat dir alles was du willst :)

@Quadethernet: wir haben leider kein Budget für ne Quadethernet-Karte, oder weißt du wo man die billig herbekommt? :rolleyes:
 
jep, im LAN verwend ich die 255.255.0.0

the problem is, dass die modems ne SNM 255.255.255.248 haben. sprich ich komm vom lan aus über das entsprechende modem in dessen netz. aber halt nur in das 248er und nicht weiter ...
 
zeig mal die pf.conf her. wie sieht das natting bei dir aus?

hau mich nicht, aber ich meine da muesste bei dir sowas wie
Code:
$inet1_if="rl0"
$inet2_if="rl1"
$inet3_if="rl2"
$en1_net="10.0.0.0/24"
$en2_net="10.0.1.0/24"
$en3_net="10.0.2.0/24"
nat on $inet1_if from $en1_net to any -> $inet1_if
nat on $inet2_if from $en2_net to any -> $inet2_if
nat on $inet3_if from $en3_net to any -> $inet3_if
drinnestehen.
und in deiner /etc/sysctl.conf
Code:
net.inet.ip.forwarding=1        # 1=Permit forwarding (routing) of packets
net.inet6.ip6.forwarding=1      # 1=Permit forwarding (routing) of packets

die ganzen clients sollten dann natuerlich im /16-subnetz sein, weil sonst deine cpu ziemlich heftig belastet wird.
 
Zuletzt bearbeitet:
das problem duerfte sein, dass zwei der nat rules ueberhaupt nicht greifen, weil pakete nur ueber ein interface rausgehen wegen nur einer default-route.

man muesste zusaetzlich mit route-to(?) oder so fuer bestimmte sourceadressen den traffic auf bestimmte interfaces forcieren.
 
@dettus: jep das mit der pf.conf passt so, lediglich unterstütze ich das forwarding von ipv6 adressen nicht. und ja, die clients hängen alle im 16er subnet

@TCM: du hast es erfasst!!! die nat rules greifen nicht ...


folgendes hat mir mal ein bsd-guru erklärt, ich selbst checks nicht :) . vielleicht könnt ihr was damit anfangen!

"genattet wird auf den externen interfaces (siehe pf rules). NACH dem natten sollen dann die pakete auf das gateway des jeweiligen externen interfaces weitergeroutet werden. dafür greift das routing aber nicht. man müsste es schaffen die pakete schon beim reinkommen auf dem internen interface so zu 'markieren' dass sie nach dem natten geroutet werden"

könnt ihr damit was anfangen?
 
waere vielleicht sowas moeglich?
Code:
$inet1_if="rl0"
$inet2_if="rl1"
$inet3_if="rl2"
$en1_net="10.0.0.0/24"
$en2_net="10.0.1.0/24"
$en3_net="10.0.2.0/24"
nat on $inet1_if from $en1_net to any -> $inet1_if
nat on $inet2_if from $en2_net to any -> $inet2_if
nat on $inet3_if from $en3_net to any -> $inet3_if
pass out on $inet1_if route-to $inet2_if from $en2_net to any
pass out on $inet1_if route-to $inet3_if from $en3_net to any
wobei $inet1_if in den pass rules das interface ist, auf dem die default route liegt.

ich benutze sowas aehnliches fuer ipv6, um zwei /48er netze zu routen, da allerdings ohne nat. ein netz liegt auf gif0, das andere auf pppoe1. default-route geht ueber gif0. mit der rule
Code:
pass out quick on gif0 route-to pppoe1 inet6 from </48 auf pppoe1> to any
funktioniert das dann augenscheinlich.
 
Zurück
Oben