• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Routing fuer zwei internet provider

Beppo

Member
Hallo zusammen,

ich möchte über zwei Anbieter in Internet gehen.
eine DSL Leitung und einmal übers Kabelnetz

Die Leitungen funktionieren solo ohne Probleme aber zusammen will es noch nicht so richtig.
Ich hab mir aus mehreren Howtos zur Hilfe genommen ( http://wiki.ubuntuusers.de/Multiple_Uplink_Routing, http://tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.rpdb.multiple-links.html, http://www.incertum.net/archives/145-Policy-Routing-mit-mehreren-Upstreams.html, http://www.linux-club.de/viewtopic.php?f=15&t=88265)
um mein Firewallscript aufzuwerten, aber ohne nennenswerten Erfolg.

Code:
snip
E_IF=dsl0                               # externes interface (oeffentliches Netz)
E_IF2=eth5                              # externes interface (oeffentliches Netz)

E_IP=$(/sbin/ifconfig dsl0 | { read; read -a A; echo ${A[1]#*:}; })      # IP-Adresse an E_IF, dynamisch zugewiesene IP-Adresse
E_IP2=$(/sbin/ifconfig eth5 | { read; read -a A; echo ${A[1]#*:}; })     # IP-Adresse an E_IF2, dynamisch zugewiesene IP-Adresse

TABLE1="tonline"
TABLE2="umedia"


$ECHO "Lösche alte Regeln"

$IP route del table $TABLE1
$IP route del table $TABLE2


$IP rule del prio 1 table $TABLE1
$IP rule del prio 2 table $TABLE2

$IP route delete default

$ECHO "Setze neue Regeln"

$IP route add default via $E_IP table $TABLE1 dev $E_IF

$IP route add default via $E_IP2 table $TABLE2 dev $E_IF2

$IP rule add from $E_IP prio 1 table $TABLE1
$IP rule add from $E_IP2 prio 2 table $TABLE2

$IP route add default scope global nexthop via $E_IP dev $E_IF weight 1 nexthop via $E_IP2 dev $E_IF2 weight 1
snip

meine rt_tables habe ich um die gleichnamigen Tabellen ergänzt
cat /etc/iproute2/rt_tables
Code:
#
# reserved values
#
255     local
254     main
253     default
0       unspec
#
# local
#
#1      inr.ruhep
1 tonline
2 umedia

ein ip rule show bringt:
Code:
0:      from all lookup local                
1:      from 217.235.193.249 lookup tonline  
2:      from 88.153.108.117 lookup umedia    
32766:  from all lookup main                 
32767:  from all lookup default

ein ip route show
Code:
217.0.116.222 dev dsl0  proto kernel  scope link  src 217.235.228.180 
192.168.25.0/24 dev eth3  proto kernel  scope link  src 192.168.25.2  
192.168.8.0/24 dev eth0  proto kernel  scope link  src 192.168.8.2    
192.168.6.0/24 dev eth1  proto kernel  scope link  src 192.168.6.1    
192.168.28.0/24 dev eth2  proto kernel  scope link  src 192.168.28.1  
88.153.108.0/22 dev eth5  proto kernel  scope link  src 88.153.108.117 
169.254.0.0/16 dev eth0  scope link                                    
127.0.0.0/8 dev lo  scope link                                         
default                                                                
        nexthop via 217.235.228.180  dev dsl0 weight 1               
        nexthop via 88.153.108.117  dev eth5 weight 1

Wenn ich dann nen Ping abgeben sieht das so aus

Code:
ping zdf.de
PING zdf.de (80.242.180.69) 56(84) bytes of data.
From pD9EBE4B4.dip.t-dialin.net (217.235.228.180): icmp_seq=2 Destination Host Unreachable

Meine DNS Server hatte ich erst im Verdacht und hab sie gegen die von Opendns augetauscht, aber leider auch ohne Erfolg.
Auf der Firewall läuft noch SuSE 10.0
Vielleicht weiß ja jemand von euch Rat, wie ich das bewerkstelligen könnte.

Vielen Dank!

Grüße Beppo
 

spoensche

Moderator
Teammitglied
An dsl0 hängt Unitymedia und an eth5 (wieso eth5?) t-online, richtig? Wie sieht deine Netzstruktur aus ( kurz aufschreiben)? Warum verwendest du nicht die SuSEfirewall? Funktioniert das Pingen einer IP? (z.B. 74.125.39.147 (Google)).

Poste mal die Ausgabe von
Code:
ifconfig -a
und
Code:
route
, wenn du beide Leitungen verwendest.

Update mal auf eine aktuelle Version von openSuSE. Für 10.0 gibt es keine Updates mehr.
 
OP
B

Beppo

Member
Hi spoensche,

also DSL kommt über dsl0 rein und ist von der T-Com, das Kabelmodem hängt an eth5 und wird per dhcp konfiguriert.
eth5 deshalb, weil eth0 für das DSL Modem da ist, eth1 das interne Netzwerk darstellt, eth2 für DMZ und eth3 für WLAN routet.
eth4 war ne Netzwerkkarte die def. war und da ich den Eintrag nicht gelöscht habe, bin ich jetzt bei eth5 ...
Ich habe meine Firewallscripts bis jetzt immer selber geschrieben, da hab ich gar nicht über das SuSE eigene nachgedacht...
Ich weiß das die 10 er nicht mehr unterstützt wird, aber die Installation lief ganz gut und Software hab ich aus Sourcecode installiert um aktuell zu bleiben.
Aber das Betriebssystem muss ich so oder so aktualisieren.

So die Ausgabe von ifconfig -a

Code:
dsl0      Protokoll:Punkt-zu-Punkt Verbindung                                                                                                                                       
          inet Adresse:217.235.191.9  P-z-P:217.0.116.222Maske:255.255.255.255                                                                                                    
          UP PUNKTZUPUNKT RUNNING NOARP MULTICAST  MTU:1492  Metric:1                                                                                                               
          RX packets:7545 errors:0 dropped:0 overruns:0 frame:0                                                                                                                     
          TX packets:8084 errors:0 dropped:2 overruns:0 carrier:0                                                                                                                   
          collisions:0 Sendewarteschlangenlänge:3                                                                                                                                   
          RX bytes:3529714 (3.3 Mb)  TX bytes:1193078 (1.1 Mb)                                                                                                                      
                                                                                                                                                                                    
eth0      Protokoll:Ethernet  Hardware Adresse **:**:**:**:**:**                                                                                                                    
          inet Adresse:192.168.8.2  Bcast:192.168.8.255  Maske:255.255.255.0                                                                                                        
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1                                                                                                                        
          RX packets:1564372 errors:0 dropped:0 overruns:0 frame:0                                                                                                                  
          TX packets:1243088 errors:0 dropped:0 overruns:0 carrier:0                                                                                                                
          collisions:0 Sendewarteschlangenlänge:1000                                                                                                                                
          RX bytes:1089207442 (1038.7 Mb)  TX bytes:382552858 (364.8 Mb)
          Interrupt:10 Basisadresse:0xb400


eth1      Protokoll:Ethernet  Hardware Adresse:**:**:**:**:**                                                                                                                 
          inet Adresse:192.168.6.1  Bcast:192.168.6.255  Maske:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1893864 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1886121 errors:0 dropped:0 overruns:8 carrier:0
          collisions:513852 Sendewarteschlangenlänge:1000
          RX bytes:998180926 (951.9 Mb)  TX bytes:1260470588 (1202.0 Mb)
          Interrupt:12 Basisadresse:0x6000

eth2      Protokoll:Ethernet  Hardware Adresse ****:**:**:**:**
          inet Adresse:192.168.28.1  Bcast:192.168.28.255  Maske:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:84428 errors:1 dropped:1 overruns:1 frame:0
          TX packets:56160 errors:0 dropped:0 overruns:2 carrier:0
          collisions:0 Sendewarteschlangenlänge:1000
          RX bytes:59347807 (56.5 Mb)  TX bytes:37638239 (35.8 Mb)
          Interrupt:4 Basisadresse:0x2000

eth3      Protokoll:Ethernet  Hardware Adresse **:**:**:**:**:**
          inet Adresse:192.168.25.2  Bcast:192.168.25.255  Maske:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:628593 errors:0 dropped:0 overruns:0 frame:0
          TX packets:744752 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 Sendewarteschlangenlänge:1000
          RX bytes:77069651 (73.4 Mb)  TX bytes:436011964 (415.8 Mb)
          Interrupt:4 Basisadresse:0xd000

eth5      Protokoll:Ethernet  Hardware Adresse **:**:**:**:**:**
          inet Adresse:88.153.108.117  Bcast:88.153.111.255  Maske:255.255.252.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:16000 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8355 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 Sendewarteschlangenlänge:1000
          RX bytes:2157464 (2.0 Mb)  TX bytes:1102280 (1.0 Mb)
          Interrupt:12 Basisadresse:0xb800

lo        Protokoll:Lokale Schleife
          inet Adresse:127.0.0.1  Maske:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:353211 errors:0 dropped:0 overruns:0 frame:0
          TX packets:353211 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 Sendewarteschlangenlänge:0
          RX bytes:295561243 (281.8 Mb)  TX bytes:295561243 (281.8 Mb)

und die von route -n

Code:
Kernel IP Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
217.0.116.222   0.0.0.0         255.255.255.255 UH    0      0        0 dsl0
192.168.25.0    0.0.0.0         255.255.255.0   U     0      0        0 eth3
192.168.8.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.6.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.28.0    0.0.0.0         255.255.255.0   U     0      0        0 eth2
88.153.108.0    0.0.0.0         255.255.252.0   U     0      0        0 eth5
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         217.0.116.222   0.0.0.0         UG    0      0        0 dsl0

Auch ein Ping auf eine IP bleibt erfolglos...
 
OP
B

Beppo

Member
Ich habe gerade beim Log lesen
noch massig Einträge in den messages gefunden,
alle wie dieser :

Code:
 Badness in dst_release at include/net/dst.h:154
Feb 18 07:30:09  named[14354]: internal_send: 66.249.93.9#53: Invalid argument
Feb 18 07:30:09  kernel:  [<c02c948b>] udp_sendmsg+0x57b/0x640
Feb 18 07:30:09  kernel:  [<c02cfeb9>] inet_sendmsg+0x29/0x50
Feb 18 07:30:09  kernel:  [<c0284d44>] sock_sendmsg+0xc4/0x110
Feb 18 07:30:09  kernel:  [<c0284d44>] sock_sendmsg+0xc4/0x110
Feb 18 07:30:09  kernel:  [<c012dfb0>] autoremove_wake_function+0x0/0x30
Feb 18 07:30:09  kernel:  [<c028b03a>] verify_iovec+0x2a/0x80
Feb 18 07:30:09  kernel:  [<c028661d>] sys_sendmsg+0x11d/0x210
Feb 18 07:30:09  kernel:  [<c02fa0a3>] schedule+0x343/0x620
Feb 18 07:30:09  kernel:  [<c0118c27>] activate_task+0x57/0x70
Feb 18 07:30:09  kernel:  [<c0119647>] __wake_up_common+0x37/0x60
Feb 18 07:30:09  kernel:  [<c0130c3a>] wake_futex+0x3a/0x50
Feb 18 07:30:09  kernel:  [<c0130cc5>] futex_wake+0x75/0xb0
Feb 18 07:30:09  kernel:  [<c0286ae4>] sys_socketcall+0x1f4/0x220
Feb 18 07:30:09  kernel:  [<c01203b1>] sys_gettimeofday+0x21/0x60
Feb 18 07:30:09  kernel:  [<c0102d3b>] sysenter_past_esp+0x54/0x79
Feb 18 07:30:11  named[14354]: socket.c:1129: unexpected error:

Ich denke ich werde um eine vorzeitiges Update auf die 11.1 nicht herrumkommen

Grüße Beppo
 

spoensche

Moderator
Teammitglied
Die Schnittstelle, die mit dem Kabelmodem verbunden ist, also eth5 musst du mit einer statischen IP konfigurieren. Das Kabelmodem hat keinen DHCP- Server. Ein Modem wählt sich nur bei deinem Provider ein. Es einigt sich mit der Gegenstelle (Provider) über die Verbindungseinstellungen und erhält darauf eine IP, die DNS- Server von deinem Provider.

Ich muss mich korrigieren, du hast keine eigenes Firewall Script, sondern nur die Routen gesetzt.

Mir ist auch gerade aufgefallen, dass deine Befehle für das Routing nicht stimmen bzw. nicht vollständig sind.
Beppo schrieb:
Code:
$IP route add default via $E_IP table $TABLE1 dev $E_IF

$IP route add default via $E_IP2 table $TABLE2 dev $E_IF2

$IP rule add from $E_IP prio 1 table $TABLE1
$IP rule add from $E_IP2 prio 2 table $TABLE2

$IP route add default scope global nexthop via $E_IP dev $E_IF weight 1 nexthop via $E_IP2 dev $E_IF2 weight 1
snip

Vergleich mal die Abfolge deiner Befehle und die von http://tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.rpdb.multiple-links.html und http://www.incertum.net/archives/145-Policy-Routing-mit-mehreren-Upstreams.html und http://tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.rpdb.simple.html.

Du hast
Code:
/proc/sys/net/ipv4/ip_forward
auf "1" gesetzt und verwendest in deiner Firewall für das LAN Masquerading?

Beppo schrieb:
Code:
Feb 18 07:30:11  named[14354]: socket.c:1129: unexpected error:

Du hast Bind bei dir im Netz laufen, richtig?
 
OP
B

Beppo

Member
Hallo spoensche,

ich war nen paar Tage weg, deswegen konnte ich nicht weiter machen...

So jetzt wage ich aber einen neuen Versuche.
Zu deiner Frage, ja es läuft ein bind bei mir, für die lokale Namensauflösung und als Forwarder.

IP Forward ist auch aktive.

Ich steige durch die Routenvergabe noch nicht ganz durch.
Also die Standardrouten der zwei Verbindungen dsl0 und eth5 muss ich löschen und dafür neue anlegen die aber wieder auf die einzelnen
Table zeigen.

So wie:
Code:
 /sbin/ip route del dev dsl0 src 217.235.211.186          
                    
 /sbin/ip route del dev eth5 src 88.153.108.117                            

 /sbin/ip route add 217.0.116.0/24 dev dsl0 src 217.235.211.186 table tonline
 
 /sbin/ip route add 88.153.108.0/22 dev eth5 src 88.153.108.117 table umedia
Vieleicht sollte ich dann auch den route cash löschen mit
"ip route flush cache"

Ich stehe etwas auf dem Schlauch... vielleicht könntest du mir noch mal helfen.

Danke!

Grüße Beppo
 

spoensche

Moderator
Teammitglied
Du weisst aber was mit Routing gemeint ist oder?

Beppo schrieb:
Code:
 /sbin/ip route del dev dsl0 src 217.235.211.186          
                    
 /sbin/ip route del dev eth5 src 88.153.108.117                            

 /sbin/ip route add 217.0.116.0/24 dev dsl0 src 217.235.211.186 table tonline
 
 /sbin/ip route add 88.153.108.0/22 dev eth5 src 88.153.108.117 table umedia

Das stimmt so nicht. Nach
Code:
src
(Quelle) muss dein Netz kommen. Du willst ja schliesslich aus deinem Netz über einen von beiden raus ins Internet.

EDIT:

http://www.linupedia.org/opensuse/Policy_Based_Routing
 
OP
B

Beppo

Member
Hallo spoensche,

du meinst ich soll mal besser

/sbin/ip route add 217.0.116.0/24 table tonline dev dsl0 src 217.235.211.186

/sbin/ip route add 88.153.108.0/22 table umedia dev eth5 src 88.153.108.117

als das

/sbin/ip route add 217.0.116.0/24 dev dsl0 src 217.235.211.186 table tonline

/sbin/ip route add 88.153.108.0/22 dev eth5 src 88.153.108.117 table umedia

schreiben?
Ok ich denke ich habe ein paar Defizite beim Routing...
Leider hab ich immer nur morgens ne halbe Stunde Zeit das Script zu testen,
ansonsten maulen meine Mitbewohner ...

Danke für deine Hilfe!

Grüße Beppo
 

spoensche

Moderator
Teammitglied
Beppo schrieb:
Ok ich denke ich habe ein paar Defizite beim Routing...

Du solltest schon wissen wofür Routing verwendet wird und was es genau bezweckt.

http://de.wikipedia.org/wiki/Routing

Du berücksichtigs deine lokalen Netze (192.168.x.x) bei deinen Routen nicht, was du aber musst, damit du aus den lokalen Netzen ins Internet kommst.

Hast du den Wikiartikel, den ich dir in meinem letzten Post an die Hand gegeben habe mal durchgearbeitet? Wenn nicht mach das mal. Da steht alles drin. :)

Bei dir existiert ja ein LAN mit folgenden Netzsegmenten:

192.168.25.0/24 (eth3)
192.168.8.0/24 (eth0)
192.168.6.0/24 (eth1)
192.168.28.0/24 (eth2)

Beispiel für 192.168.25.0/24:
Code:
# Regellisten
ip rule add from 192.168.25.0/24 umedia
ip rule add from 192.168.25.0/24 tonline

# Routing
ip route add 0/0 table umedia via 192.168.25.2 dev eth5
ip route add 0/0 table tonline via 192.168.25.2 dev dsl0
 
OP
B

Beppo

Member
Ok das sind dann wohl etwas mehr als nur Defizite...

Ich werde mal versuchen mich da durch zu wühlen und bei Bedarf frag ich noch mal.
Wenn ich das richtig sehe ist das nicht nur für die Netzsegmente so, sondern auch für den localhost,
also für 127.0.0.1 muss ich dann auch

ip route add 0/0 table umedia via 127.0.0.1 dev eth5
ip route add 0/0 table tonline via 127.0.0.1 dev dsl0

einsetzten?

Danke !

Grüße Beppo
 

spoensche

Moderator
Teammitglied
Beppo schrieb:
Wenn ich das richtig sehe ist das nicht nur für die Netzsegmente so, sondern auch für den localhost,
also für 127.0.0.1 muss ich dann auch

ip route add 0/0 table umedia via 127.0.0.1 dev eth5
ip route add 0/0 table tonline via 127.0.0.1 dev dsl0

einsetzten?

Das siehst du falsch. 127.0.0.1 ist nicht dein Gateway. Also diese Routen nicht anlegen.
Die 127.0.0.1 wird auch Loopbackadresse genannt und wird z.B. verwendet wenn Cups einen Druckauftrag entgegen nimmt.

Wenn du mein Beispiel für das 192.168.25.0/24 Netz auf die anderen überträgst und die richtigen IP- Adressen einsetzt klappt das. Ein wenig sollst du ja auch selbst machen. ;)


PS:
Bitte nutze das nächste mal die Code Tags, wenn du Befehle oder Ausgaben postest. Das ist übersichtlicher. Danke.
 

John.Mops

Newbie
Moin!
ich hab ein vergleichbares Problem - suche von funktionierenden Beispielen für iproute2 -
zwei Server mit jeweils getrennten Providern und Netzen dahinter (einmal intra einmal DMZ)
mit entsprechenden Filtern sollen auf einem Server mit iproute2 zusammengefasst werden.
... ich arbeite 'dran - bisher habe ich leider kein einziges funktionierendes Beispiel gefunden.
(ggf später mehr)

Zitat+Frage von oben:
...nach src (Quelle) muss dein Netz kommen.
Du willst ja schliesslich aus deinem Netz über einen von beiden raus ins Internet.

...verstehe ich da die Doku falsch?
Auszug aus Doku ip route add :
Code:
src ADDRESS  the source address to prefer when sending to the destinations covered by the route prefix.


Und - meine Hochachtung an alle die mittels des Wiki-Artikels das o.a. Problem lösen - ich schaffe das einfach nicht :???:


Quelle: IP Command Reference von Alexey N. Kuznetsov
 
OP
B

Beppo

Member
Hallo

ich bin leider auch noch nicht viel weiter gekommen.
Wenn du in der Richtung was raus findest, dann sag Bescheid.

Grüße Beppo
 

spoensche

Moderator
Teammitglied
Beppo schrieb:
ich bin leider auch noch nicht viel weiter gekommen.
Wenn du in der Richtung was raus findest, dann sag Bescheid.

Wo hängt es denn? Ich hab dir doch oben mit dem Beispiel die Lösung an die Hand gegeben.


Du musst allerdings auch Routing aktiviert haben. Das kannst du mit Yast (Yast->System-> Editor für /etc/sysconfig->Network->Firewall) oder aber mit
Code:
echo 1 > /proc/sys/net/ipv4/ip_forward
machen.

Masquerading musst du auch aktivieren.

Weisst du was Masquerading ist?
 
OP
B

Beppo

Member
Hallo,

sicher hab ich das von dir aufgenommen
Code:
#!/bin/bash                                                

#192.168.25.0/24 (eth3)
#192.168.8.0/24 (eth0)
#192.168.6.0/24 (eth1)
#192.168.28.0/24 (eth2)


DMZ_IF=eth2
I_IF=eth1                               # internes interface (lokales/privates Netz)
WLAN_IF=eth3                            # internes interface (lokales/privates/wlan Netz)
E_IF=dsl0                               # externes interface (oeffentliches Netz)        
E_NET=217.0.116.0/24                                                                     
E_NET2=88.153.108.0/22                                                                   
E_IF2=eth5                              # externes interface (oeffentliches Netz)        
I_IP=192.168.6.1                        # IP-Adresse an I_IF                             
M_IF=eth0                               # remote IP-Adresse, IP-Adresse der Gegenstelle (PtP)
DMZ_IP=192.168.28.1                                                                          
LOC_DMZ_IP=192.168.28.0/24              # lokale DMZ Netzwerkadresse                         
WLAN_IP=192.168.25.2                    # Wlan IP                                            
LOC_WLAN_IP=192.168.25.0/24             # lokale Wlan Netzwerkadresse                        
NTP_IP=134.130.4.17                     # NTP Zeitserver                                     
LOC_IP=192.168.6.0/24                   # lokale Netzwerkadressen                            
M_IP=192.168.8.1                        # Modem IP                                           
E_M_IP=192.168.8.2                      # IP vom Modeminterface                              

IPTABLES=/usr/sbin/iptables
ECHO=echo                  
IP=/sbin/ip                
E_IP=$(/sbin/ifconfig dsl0 | { read; read -a A; echo ${A[1]#*:}; })      # IP-Adresse an E_IF, dynamisch zugewiesene IP-Adresse
E_IP2=$(/sbin/ifconfig eth5 | { read; read -a A; echo ${A[1]#*:}; })     # IP-Adresse an E_IF2, dynamisch zugewiesene IP-Adresse

# Module entladen
/sbin/modprobe -r ipt_length
/sbin/modprobe -r ipt_MARK  
/sbin/modprobe -r ipt_REDIRECT
/sbin/modprobe -r ipt_iprange 
/sbin/modprobe -r ip_tables   
/sbin/modprobe -r iptable_filter
/sbin/modprobe -r ip_conntrack  
/sbin/modprobe -r ip_conntrack_ftp
/sbin/modprobe -r ip_nat_ftp      
/sbin/modprobe -r ipt_state       
/sbin/modprobe -r ipt_LOG         
/sbin/modprobe -r iptable_mangle                # wird hier nicht benoetigt
/sbin/modprobe -r iptable_nat                                              
/sbin/modprobe -r ip_nat_ftp                                               
/sbin/modprobe -r ipt_MASQUERADE                                           
/sbin/modprobe -r ipt_TCPMSS                                               
/sbin/modprobe -r ipt_mac                                                  



TABLE1="tonline"
TABLE2="umedia" 


$ECHO "Lösche alte Regeln"

$IP route del table $TABLE1
$IP route del table $TABLE2


$IP rule del prio 1 table $TABLE1
$IP rule del prio 2 table $TABLE2

$IP route delete default 
$IP route del dev $E_IF src $E_IP
$IP route del dev $E_IF2 src $E_IP2

$IPTABLES -F
$IPTABLES -t nat -F
$ECHO "Setze neue Regeln"

# Routing
ip rule add from $LOC_IP table $TABLE1
ip rule add from $LOC_IP table $TABLE2

ip rule add from $LOC_WLAN_IP table $TABLE1
ip rule add from $LOC_WLAN_IP table $TABLE2

ip rule add from $LOC_DMZ_IP table $TABLE1
ip rule add from $LOC_DMZ_IP table $TABLE2

ip route add 0/0 table umedia via $I_IP dev $E_IF2
ip route add 0/0 table tonline via $I_IP dev $E_IF

ip route add 0/0 table umedia via $LOC_WLAN_IP dev $E_IF2
ip route add 0/0 table tonline via $LOC_WLAN_IP dev $E_IF

ip route add 0/0 table umedia via $LOC_DMZ_IP dev $E_IF2
ip route add 0/0 table tonline via $LOC_DMZ_IP dev $E_IF

$IP route add equalize default scope global nexthop via $E_IP dev $E_IF weight 1 nexthop via $E_IP2 dev $E_IF2 weight 1

$IP route flush cache


# Module laden
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe ip_conntrack  
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp      
/sbin/modprobe ipt_state       
/sbin/modprobe ipt_LOG         
/sbin/modprobe iptable_mangle                # wird hier nicht benoetigt
/sbin/modprobe iptable_nat                                              
/sbin/modprobe ip_nat_ftp                                               
/sbin/modprobe ipt_MASQUERADE                                           
/sbin/modprobe ipt_TCPMSS                                               
/sbin/modprobe ipt_mac                                                  

#Pakete fuer das DSL Modem passende MTU ummuenzen
$IPTABLES -I FORWARD -p TCP --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

# alle chains entleeren
# filter               

$IPTABLES -F
# nat       
$IPTABLES -t nat -F
# mangle
$IPTABLES -t mangle -F
# MACFILTER
$IPTABLES -X MACFILTER
#WLANFILTER
$IPTABLES -X WLANFILTER
#DMZFILTER
$IPTABLES -X DMZFILTER
$IPTABLES -N DMZFILTER

# Drop Chain "KICKIT" loeschen und neu aufbauen
$IPTABLES -X KICKIT
$IPTABLES -N KICKIT

# Richtlinien (policies) setzen
# filter
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
# nat
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT
# mangle
$IPTABLES -t mangle -P PREROUTING ACCEPT
$IPTABLES -t mangle -P INPUT ACCEPT
$IPTABLES -t mangle -P FORWARD ACCEPT
$IPTABLES -t mangle -P OUTPUT ACCEPT
$IPTABLES -t mangle -P POSTROUTING ACCEPT


#Forwarding aktivieren
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

# NAT/Masquerading aktivieren
$IPTABLES -t nat -A POSTROUTING -o $E_IF -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -o $E_IF2 -j MASQUERADE
$IPTABLES -A KICKIT -p tcp -j LOG --log-prefix "DROP TCP"
$IPTABLES -A KICKIT -p udp -j LOG --log-prefix "DROP UDP"
$IPTABLES -A KICKIT -j DROP
Und wenn ich das mache, dann laufen die Logs mit dem voll...
Code:
 Badness in dst_release at include/net/dst.h:154
Mar 25 19:38:07  kernel:  [<c0298d9e>] ip_route_me_harder+0x21e/0x2c0
Mar 25 19:38:07  kernel:  [<e0b1a33a>] ip_nat_out+0xba/0x150 [iptable_nat]
Mar 25 19:38:07  kernel:  [<c029867e>] nf_iterate+0x5e/0x90
Mar 25 19:38:07  kernel:  [<c02acd70>] ip_finish_output2+0x0/0x1a0
Mar 25 19:38:07  kernel:  [<c029895c>] nf_hook_slow+0x3c/0xd0
Mar 25 19:38:07  kernel:  [<c02acd70>] ip_finish_output2+0x0/0x1a0
Mar 25 19:38:07  kernel:  [<c02acba4>] ip_finish_output+0x44/0x210
Mar 25 19:38:07  kernel:  [<c02acd70>] ip_finish_output2+0x0/0x1a0
Mar 25 19:38:07  kernel:  [<c02ad177>] ip_output+0xe7/0x140
Mar 25 19:38:07  kernel:  [<c02ac8ab>] ip_dst_output+0x5b/0x70
Mar 25 19:38:07  kernel:  [<c02ab5ef>] ip_forward+0x1cf/0x2c0
Mar 25 19:38:07  kernel:  [<c02aa23b>] ip_rcv+0x35b/0x4e0
Mar 25 19:38:07  kernel:  [<c028e74f>] netif_receive_skb+0x21f/0x320
Mar 25 19:38:07  kernel:  [<e09f4b5d>] rtl8139_rx+0x1cd/0x340 [8139too]
Mar 25 19:38:07  kernel:  [<e09f4e94>] rtl8139_poll+0x44/0xe0 [8139too]
Mar 25 19:38:07  kernel:  [<c028e9cc>] net_rx_action+0x7c/0x150
Mar 25 19:38:07  kernel:  [<c0120c23>] __do_softirq+0x43/0xa0
Mar 25 19:38:07  kernel:  [<c0120ca6>] do_softirq+0x26/0x30
Mar 25 19:38:07  kernel:  [<c010562d>] do_IRQ+0x3d/0x60
Mar 25 19:38:07  kernel:  [<c0103e0a>] common_interrupt+0x1a/0x20
Mar 25 19:38:07  kernel:  [<e0830c5b>] acpi_processor_idle+0x10e/0x26f [processor]

Was ich noch nicht ganz verstanden hab, ist die Tatsachen was dann in der Kernel IP Routentabelle stehen muss?
Da hab ich ja dann auch noch eine default route.
Wenn ich die lösche gehts überhaupt nicht mehr.
Im Moment sieht das gute Stück so aus, wenn ich beide WAN Verbindungen laufen hab.
Code:
Kernel IP Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
217.0.116.222   0.0.0.0         255.255.255.255 UH    0      0        0 dsl0
192.168.25.0    0.0.0.0         255.255.255.0   U     0      0        0 eth3
192.168.8.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.60.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.28.0    0.0.0.0         255.255.255.0   U     0      0        0 eth2
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth3
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         217.0.116.222   0.0.0.0         UG    0      0        0 dsl0
-update-
Könnte das unter Umständen auch an dem rp_filter liegen ?
bis jetzt war der eingeschaltet und ich hab gerade hier http://ornellas.apanela.com/dokuwiki/pub:firewall_and_adv_routing gelesen,
das er stört...

Danke nochmal für die Hilfe

Grüße Beppo
 

spoensche

Moderator
Teammitglied
Beppo schrieb:
# Module entladen
/sbin/modprobe -r ipt_length
/sbin/modprobe -r ipt_MARK
/sbin/modprobe -r ipt_REDIRECT
/sbin/modprobe -r ipt_iprange
/sbin/modprobe -r ip_tables
/sbin/modprobe -r iptable_filter
/sbin/modprobe -r ip_conntrack
/sbin/modprobe -r ip_conntrack_ftp
/sbin/modprobe -r ip_nat_ftp
/sbin/modprobe -r ipt_state
/sbin/modprobe -r ipt_LOG
/sbin/modprobe -r iptable_mangle # wird hier nicht benoetigt
/sbin/modprobe -r iptable_nat
/sbin/modprobe -r ip_nat_ftp
/sbin/modprobe -r ipt_MASQUERADE
/sbin/modprobe -r ipt_TCPMSS
/sbin/modprobe -r ipt_mac

Warum entfernst du alle IP- Tables Module? Das ist doch totaler Quatsch und Blödsinn, wenn du die Module später sowieso wieder lädst.

iptable_mangle wird benötigt.

Beppo schrieb:
# nat
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT
# mangle
$IPTABLES -t mangle -P PREROUTING ACCEPT
$IPTABLES -t mangle -P INPUT ACCEPT
$IPTABLES -t mangle -P FORWARD ACCEPT
$IPTABLES -t mangle -P OUTPUT ACCEPT
$IPTABLES -t mangle -P POSTROUTING ACCEPT

Die Kernelparameter für Routing werden vor den Filterregeln gesetzt. Ausserdem musst du bei den Regeln auch mal die Schnittstellen angeben. (Was von wo nach wo und wie geroutet erden soll). Die Regeln sind so auch nicht korrekt.

http://www.karlrupp.net/de/computer/nat_tutorial
http://iptables-tutorial.frozentux.net/iptables-tutorial.html

Beppo schrieb:
Was ich noch nicht ganz verstanden hab, ist die Tatsachen was dann in der Kernel IP Routentabelle stehen muss?

In den Routing Tabellen steht, drin, wie man von dem einen Netz und über welchen Weg in das andere kommt. Du hast nur die Routen von den einzelnen Subnetzen ins Internet angelegt, nicht aber die, um von einem Subnetz ins andere zu kommen. (z.B. von 192.168.25.0 nach 192.168.28.0)
Dann musst du dann auch Masquerading aktivieren.

Beppo schrieb:
Da hab ich ja dann auch noch eine default route.
Wenn ich die lösche gehts überhaupt nicht mehr.

Also das ist doch wohl logisch, warum dann nichts mehr geht. Weil die default Route die Standard Route ist.


Code:
Kernel IP Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
217.0.116.222   0.0.0.0         255.255.255.255 UH    0      0        0 dsl0
192.168.25.0    0.0.0.0         255.255.255.0   U     0      0        0 eth3
192.168.8.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.60.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.28.0    0.0.0.0         255.255.255.0   U     0      0        0 eth2
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth3
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         217.0.116.222   0.0.0.0         UG    0      0        0 dsl0

Wie schon gesagt sind das nur die Routen um von den Subnetzen ins Internet zu kommen. Die Routen für Subnetz zu Subnetz fehlen noch.
 
OP
B

Beppo

Member
Hallo,

multiwan läuft generell nicht mit der SuSE 10.0, aufgrund eines Kernelbugs...
Bin jetzt umgestiegen auf Endian Firewall und damit gehts.

Danke für die Hilfe

Grüße Beppo
 
Oben