HowTo 2x WAN mit rdomains

mark05

Well-Known Member
Hi

@mods falls Rubrick verkehrt gewählt bitte korregieren , falls ein Fall fürs Wiki
bitte mir helfen wie ich es dort reinbekomme.


Hier mal ein kleines HowTo wie man mit rdomains 2 WAN Leitungen mit
Dynamischer IP Zuweisung in den Griff bekommt.

Plus ein paar Hints bezüglich stolperfallen.

Das wichtigste vorab so richtig Spass mache es es mit OpenBSD 5.9
da es hier pair gibt .
Ich hattes es zwar auch mit 5.8 am laufen jedoch ist es deutlich
aufwendiger da man alles mit PF machen musste was viel Pontential
für Fehler / Problemen hat.

5.9 Current ist ausreichend stabil um das ganze aufzusetzen.
am besten ein nightly runterladen und installieren.

Meine Umgebung

1x Lan -> $lan_if
1x DSL 18 MBit -> $dsl_if
1x Kabel 100 Mbit -> $cable_if
1x WLAN Router -> $wlan_if

Grundconfig

Code:
# cat /etc/hostname.lo1
rdomain 1
inet 127.0.0.1/8
!/sbin/route -n -T 1 exec /usr/sbin/ftp-proxy -D 7

Code:
# cat /etc/hostname.lo2
rdomain 2
inet 127.0.0.1/8
!/sbin/route -n -T 2 exec /usr/sbin/ftp-proxy -D 7
Code:
# cat /etc/hostname.lo3
rdomain 3
inet 127.0.0.1/8
!/sbin/route -n -T 1 exec /usr/sbin/ftp-proxy -D 7
Zubachten ist das beim route befeht mit -T immer die richtige Routing Domain mit angegeben wird.
Code:
# cat /root/hostname.pppoe0
!echo "Startup DSL Line"
rdomain 1
!echo "set startup ip"
inet 0.0.0.0 255.255.255.255 NONE \
pppoedev em1 authproto pap \
authname 'xyz@xyz.de'authkey '123456' up
dest 0.0.0.1
!echo "enable ipv6"
inet6 autoconf
!/sbin/route -T 1 add default -ifp pppoe0 0.0.0.1
!/sbin/route -T 1 add -inet6 default -ifp pppoe0 ::0.0.0.1

Code:
# cat /etc/hostname.vlan5
rdomain 3
!echo "Startup Cable Line"
vlandev msk1
dhcp

Code:
# cat /etc/hostname.vlan101
!echo "Startup WLAN Line"
-inet6
vlandev msk1
rdomain 1
inet 192.168.1.2 255.255.255.0 NONE
!/sbin/route -n -T 1 add default 192.168.1.1
Code:
# cat /etc/hostname.pair0
inet 172.16.0.1 255.255.255.248 NONE
Code:
# cat /etc/hostname.pair1
rdomain 3
inet 172.16.0.2 255.255.255.248 NONE
!/sbin/route -n -T 3 add -net 192.168.131.0/24 172.16.0.1
Code:
# cat /etc/hostname.pair2
inet 172.16.0.9 255.255.255.248 NONE
Code:
# cat /etc/hostname.pair3
rdomain 2
inet 172.16.0.10 255.255.255.248 NONE
!/sbin/route -n -T 2 add -net 192.168.131.0/24 172.16.0.9
Code:
# cat /etc/hostname.re0
!echo "Startup LAN Line"
inet 192.168.131.250 255.255.255.0 NONE

Das 192.168.131.0/24 ist mein LAN Netz das ich bei dem übergang von der rdomain 0 richtung rdomain 2 oder 3
NAT´en will muss die rückrute gesetzt werden.

Die 172.16.xx.xx Netze Sind reine Transfer Netze und beliebig.

die Vlan Interface etc. sind natürlich an die eingene umgebung anzupassen.

rdomain 1 -> WLAN
rdomain 2 -> DSL
rdomain 3 -> CABLE

Die WLAN rdomain habe ich komplett via PF gemacht , die WAN Verbindungen mit pair da ich hier mit relayd
die Default route setze , sommit ist /etc/myate nicht nötig.

die relayd config sieht im prinzip so aus wie in der man page Dokumentiert
Code:
# cat /etc/relayd.conf
gw1="172.16.0.2"
gw2="172.16.0.10"
#table <gateways> { $gw1 ip ttl 1 priority 1 , $gw2 ip ttl 1 priority 2 }

table <gateways> { $gw1 ip ttl 1 , $gw2 ip ttl 1 }
          router "uplinks" {
                   route 0.0.0.0/0
                   forward to <gateways> check icmp
           }

Code:
echo "relayd_flags=" >> /etc/rc.conf.local
nun noch forwarding an
Code:
# cat /etc/sysctl.conf
net.inet.ip.forwarding=1
net.inet6.ip6.forwarding=1

Zu beachten ist , wenn ich ein outbound loadbalancing haben möchte so muss mpath via sysctl aktiviert werden.
relayd merkt das an der stelle, ansonsten wird $gw1 verwendet und als fallback $gw2.

nun noch das "patchen" der pair interfaces , sprich das verbinden dieser untereinander.
das mache ich in der /etc/rc.local weil somit die WAN Interfaces genug zeit haben ihre IPs zu discovern.
Code:
# cat /etc/rc.local
/sbin/ifconfig pair0 patch pair1
/sbin/ifconfig pair2 patch pair3


Bis auf das WLAN sollte Routing technisch alles Funktionieren, man kann nun via ping alles Testen.

Hierbei ist zu beachten , in der rdomains gibt es keinen resolver somit immer eine IP bei ping verwenden

ein ping -V 2 8.8.8.8 z.b. sollte einen ping zum google DNS Server machen über die DSL Leitung.
Kann man prüfen mit tcpdump -n -i pppoe0

was nun noch fehlt ist das pf Regelwerk bzw. das NAT.

Hierfür verwende ich gerne anchors um somit für die einzelnen bereiche eine eigene pf zone zu haben.

Code:
anchor "ftp-proxy/*"
pass in quick on $lan_if inet proto tcp from any to any port 21 divert-to 127.0.0.1 port 8021 rtable 3

anchor wlan on rdomain 1
load anchor wlan from "/etc/fw/wlan.cf"

anchor um on rdomain 3
load anchor um from "/etc/fw/um.cf"

anchor nc on rdomain 2
load anchor nc from "/etc/fw/nc.cf"

# pf routing fuer wlan
pass out on $lan_if from 192.168.131.0/24 to 192.168.132.0/24 rtable 1

pass out quick inet from any to <dns-server-A> route-to 172.16.0.10
pass out quick inet from any to <dns-server-B> route-to 172.16.0.2

anchor "relayd/*"

wichtig ist der relayd anchor vorhanden ist sonst relayd nicht richtig funktioniert.

die dns-server tabellen enthalten die DNS Server der jeweiligen WAN Provider,
da diese ihre DNS Server entsprechen Konfiguriert haben das sie nur auf Querys
aus dem eigenen IP Range antworten, mache ich hier ein route-to .

man kann diese funktion aber auch nutzen um gezielt eine WAN leitung anzusprechen.

das NAT findet im anchor statt.

Code:
cat /etc/fw/um.cf
pass out quick inet from any to any nat-to ($cable_if:0)

Code:
cat /etc/fw/nc.cf
pass out quick inet from any to any nat-to ($dsl_if:0)

hier kann mach auch die die entsprechenden block rules es setzen.
aber vorsicht

ein z.b. block on rdomain 2 bewirkt einen block auf allen interfaces die in der
rdomain 2 sind , somit muss man jede kommunikation die gewünscht ist per
pf regel abdecken.

ich empehle von daher einen
Code:
block log on $dsl_if
sind nun die regeln ohne syntax fehler geladen worden sollte ein ping aus der rdomain 0 ( default routing domain ) z.b. von einem
system im LAN , komplett durch gehen.

beachte es ist kein vollständiges regelwerk !
beachte es ist keine vollständige config für eine firewall .

es geht nur um das thema routing , rdomains , und 2 WAN verbindungen mit dynamischen IPs.


Holger
 
Ansonsten schreibe mir kurz eine Privatnachricht. Oder "Unterhaltung", wie es bei Xenforo heißt.
 
hi

ich habe gerade die email mit meinem wiki account entdeckt .......... bau das entsprechend um.

holger
 
Zurück
Oben