Routing Probleme

crashnb

Member
Hi Leute,

bin noch sehr unerfahren mit OpenBSD hab mich aber dennoch drangewagt!
Hab jetzt nur ein kleines Problem beim Routing.

Mein Aufbau sieht so aus:

Subnetz-1 <-----> eth1
Subnetz-2 <-----> eth2 Server eth0 <-----> rl0 Router en3(tun0) <-----> Internet
Subnetz-3 <-----> eth3

Subnetz-R 192.168.1.0/24 <---> eth0 192.168.1.100
Subnetz-1 192.168.2.0/24 <---> eth1 192.168.2.100
Subnetz-2 192.168.3.0/24 <---> eth2 192.168.3.100
Subnetz-3 192.168.4.0/24 <---> eth3 192.168.4.100

rl0 192.168.1.254

Server hat SuSE Linux 9.1
Router hat OpenBSD 3.5 (wurde nach Howto http://www.fmi.uni-passau.de/~grafj/openbsd/3.4/ installiert)

Problem:

Ich kann vom Router aus ins Internet aber nicht vom Server oder von einem Client. Pingen von client auf Router funz. Ich kann auch von einem Client auf die externe IP-Adresse pingen aber ein Ping ins Internet geht nicht! Auch ein Browseraufruf geht nicht! Habe noch mal das ganze Howto durch gecheckt aber keinen Fehler gefunden!!!

Firewall habe ich auf "pass quick all" gesetzt.
Auf dem Router läuft kein FTP, DHCP, Dynamic DNS, Identd diese passagen hab ich übersprungen! Da hab ich aber auch nichts gefunden, was mein Prob lösen könnte!

Gegoogled hab ich auch schon! An dem Prob häng ich jetzt schon 3 Tage!

Hoffe, das Ihr mir weiter helfen könnt!

mfg

CrashnB

;'(
 
Zuletzt bearbeitet:
crashnb schrieb:
Hi Leute,

bin noch sehr unerfahren mit OpenBSD hab mich aber dennoch drangewagt!
Hab jetzt nur ein kleines Problem beim Routing.

Mein Aufbau sieht so aus:

Subnetz-1 <-----> eth1
Subnetz-2 <-----> eth2 Server eth0 <-----> rl0 Router en3(tun0) <-----> Internet
Subnetz-3 <-----> eth3

Subnetz-R 192.168.1.0/24 <---> eth0 192.168.1.100
Subnetz-1 192.168.2.0/24 <---> eth1 192.168.2.100
Subnetz-2 192.168.3.0/24 <---> eth2 192.168.3.100
Subnetz-3 192.168.4.0/24 <---> eth3 192.168.4.100

rl0 192.168.1.254

Server hat SuSE Linux 9.1
Router hat OpenBSD 3.5 (wurde nach Howto http://www.fmi.uni-passau.de/~grafj/openbsd/3.4/ installiert)

Problem:

Ich kann vom Router aus ins Internet aber nicht vom Server oder von einem Client. Pingen von client auf Router funz. Ich kann auch von einem Client auf die externe IP-Adresse pingen aber ein Ping ins Internet geht nicht!
Hoert sich nach einem Natting Problem an.
Auch ein Browseraufruf geht nicht! Habe noch mal das ganze Howto durch gecheckt aber keinen Fehler gefunden!!!

Firewall habe ich auf "pass quick all" gesetzt.
Und das nat ?
Auf dem Router läuft kein FTP, DHCP, Dynamic DNS, Identd diese passagen hab ich übersprungen! Da hab ich aber auch nichts gefunden, was mein Prob lösen könnte!

Gegoogled hab ich auch schon! An dem Prob häng ich jetzt schon 3 Tage!

Hoffe, das Ihr mir weiter helfen könnt!
Wir geasgt, wie sieht deine pf.conf aus ?
nat steht drin ?
 
Hi,

erst mal danke für die schnelle Antwort!!!!

Meine pf.conf sieht so aus:

/etc/pf.conf
### VARIABLEN ###

Ext = "tun0" # Device an dem das Internet angeschlossen ist
Int = "rl0" # Device an dem das interne Netz haengt
IntNet = "192.168.1.0/24" # Adressraum des internen Netzes
RouterIP = "192.168.1.254" # IP Adresse des Routers
Loop = "lo0" # Loopback Device

# Adressen die auf dem externen Device nicht geroutet werden
# (Adressbereich des internen Netzes muss man wegen der Weiterleitungen zulassen)
table <NoRoute> { 127.0.0.1/8, 172.16.0.0/12, 192.168.0.0/16, !$IntNet, 10.0.0.0/8, 255.255.255.255/32 }

# Ports die geoeffnet werden sollen
#InServicesTCP = "{ ssh, ftp, auth }"


### OPTIONS ###

# Macht Statistiken fuer die DSL-Verbindung (pfctl -s info)
set loginterface $Ext

# Beendet inaktive Verbindungen schneller - geringerer Speicherverbrauch.
set optimization aggressive

# Fragmentierte Pakete saeubern
scrub on $Ext all fragment reassemble random-id

# Queueing
altq on $Ext priq bandwidth 100Kb queue { q_pri, q_def }
queue q_pri priority 7
queue q_def priority 1 priq(default)


### NAT & FORWARD ###

# NAT aktivieren (unter Linux als Masquerading bekannt)
nat on $Ext from $IntNet to any -> $Ext static-port

# Active FTP - Umleitung zu unserem ftp-proxy
#rdr on $Int proto tcp from !$RouterIP to !$IntNet port 21 -> 127.0.0.1 port 8021

rdr-anchor redirect


### FILTER ###

# Zum Debuggen....
pass quick all # Alles durchlassen

# Generelle Block Regel
block on $Ext

# Freiwillig machen wir keinen mucks ;)
block return log on $Ext

# Wir wollen kein IPv6.0
block quick inet6

# Loopback Device darf alles
pass quick on $Loop

# Erschwert scannen mit nmap und co.
block in log quick on $Ext inet proto tcp from any to any flags FUP/FUP
block in log quick on $Ext inet proto tcp from any to any flags SF/SFRA
block in log quick on $Ext inet proto tcp from any to any flags /SFRA
block in log quick on $Ext os NMAP

# IP Spoofing verhindern
block in log quick on $Ext inet from <NoRoute> to any
block in log quick on $Ext inet from any to <NoRoute>

# Active FTP erlauben
pass in quick on $Ext inet proto tcp from any to any port > 49151 user proxy flags S/SAFR keep state

# Ping akzeptieren (ablehnen ist uebrigends wenig sinnvoll)
pass in quick on $Ext inet proto icmp all icmp-type 8 code 0 keep state

# Ports nach aussen oeffnen
pass in quick on $Ext inet proto tcp from any to any port $InServicesTCP flags S/SAFR keep state label ServicesTCP

anchor passin

# Raus darf (fast) alles
pass out quick on $Ext keep state queue (q_def,q_pri)

mfg

CrashnB
 
crashnb schrieb:
Hi,
Code:
/etc/pf.conf
    ### VARIABLEN ###

    Ext = "tun0"            # Device an dem das Internet angeschlossen ist 
    Int = "rl0"      # Device an dem das interne Netz haengt
    IntNet = "192.168.1.0/24"      # Adressraum des internen Netzes
    RouterIP = "192.168.1.254"       # IP Adresse des Routers
    Loop = "lo0"                   # Loopback Device

 [...]

    ### NAT & FORWARD ###

    # NAT aktivieren (unter Linux als Masquerading bekannt)
    nat on $Ext from $IntNet to any -> $Ext static-port

[...]
Nur mal so auf die schnelle ... (bin hier auf der Arbeit und kann mich jetzt nicht vollstaendig in die pf.conf von dir einlesen)

Kommentier mal deine nat on $Ext .... zeile aus und fuege mal diese:
Code:
nat on $Ext from $Int:network to any -> ($Ext)
ein.
 
Moin!

Eigentlich sollte das schlicht mit Klammern schon gelöst werden können. Du kannst also deine alte pf.conf so stehen lassen nur Klammern um ext setzen.

Code:
    ### NAT & FORWARD ###

    # NAT aktivieren (unter Linux als Masquerading bekannt)
    nat on $Ext from $IntNet to any -> ($Ext) static-port

"$Int:network" is also nich notwendig meiner Ansicht nach, wie von MateJunk vorgeschlagen.

Herakles
 
Hi Leute,

danke für eure Antworten, leider hat mich das alles nicht weiter gebracht!

es ist immer noch so wie vorher! als ob sich garnicht verändert hätte!

mfg

CrashnB ;'(
 
crashnb schrieb:
Hi Leute,

danke für eure Antworten, leider hat mich das alles nicht weiter gebracht!

es ist immer noch so wie vorher! als ob sich garnicht verändert hätte!
Mmmh. Also du kannst vom Router aus ins Internet und du kannst auch von einem Client im Internen Netz auf die externe IP-Adresse pingen.
Mit externe IP-Adresse meinst du die IP-Adresse deines tun0 Interfaces ?
Dann kann es nur ein natting Prob sein, nach meiner Meinung.

Dann schau dir doch mal die pf rules mit:
# pfctl -s rules
und
# pfctl -s nat
an, bzw. poste die mal.

Vielleicht koenntest du mal auf deinem Router folgenden Befehle absetzen:
# tcpdump -i tun0 icmp
und mal wahlweise von deinen Clients und dann von deinem Router ins Internet pingen. Zum Beispiel einmal mit der IP 193.99.144.71 und einmal mit www.heise.de
und das Ergebnis mal posten.

Gegebenenfalls auch folgendes ueberpruefen:
# netstat -rnf inet
und die default route mit
# ifconfig tun0
vergleichen.
# sysctl -a net.inet.ip.forwarding

(... jaja ich weiss, hast du alles so eingerichtet ...)

Dann haette ich noch einen vorschlag:
Probier mal folgendes:
# ppp -nat -ddial pppoe
Dafuer solltest du allerdings die Nat Rule aus dem pf rausnehmen. Vielleicht mal pf ganz abschalten. Ist ja nur mal kurz zum testen. Kannst ja mal auch hier den tcpdump test durch fuehren.
 
Hallo Leute,

war jetzt des WE nicht da! hab aber heute mal eure Tips beherzigt!
Wenn ich das NAT aus der pf.conf rausnehme und mit
ppp -nat -ddail pppoe
einwähle, dann geht es!
Jetzt ist nur noch dir Frage wie der richtige nat aufruf in der pf.conf lauten muss?!

mfg

CrashnB
 
Hast du mal dies ausprobiert
Code:
nat on $Ext from $IntNet to any -> ($Ext)

ohne
Code:
static-port
 
crashnb schrieb:
Hallo Leute,

war jetzt des WE nicht da! hab aber heute mal eure Tips beherzigt!
Wenn ich das NAT aus der pf.conf rausnehme und mit
ppp -nat -ddail pppoe
einwähle, dann geht es!
Habs mir fast gedacht.
Jetzt ist nur noch dir Frage wie der richtige nat aufruf in der pf.conf lauten muss?!
Ich glaub das ist kein pf.conf prob.
Hast du dir mal pfctl -s rules und pfctl -s nat angeschaut als du noch mit pf.conf "genattet" hast ? Wetten wir, das da nix drin steht !
Ich habe auch einpaar Konfigurationen, von der Seite (http://www.fmi.uni-passau.de/~grafj/openbsd/3.4/) uebernommen. NTP, ppp.conf, ppp.linkup und ppp.linkdown.
Bzgl. ppp.linkup und .linkdown war ich etwas skeptisch, da ich schon in der Vergangenheit damit Probs hatte. Egal uebernommen und schon hatte ich wieder die Probs. Mein PPP fuerht zum Beispiel nicht ppp.linkup aus, wenn er nach 24 Std. reconnecten muss. Frag mich bitte (noch) nicht warum, ich versuch es noch rauszufinden.
Ich glaube du hast das gleiche Problem oder so ein aehnliches (koenntest deine ppp.linkup, ppp.linkdown und ppp.conf mal posten).
Wenn also pfctl -s nat nichts anzeigt dann mach einfach folgendes:
Aendere ppp.linkdown und ppp.linkup wie folgt ab:
Code:
---- ppp.linkdown ----
MYADDR:
# ! sh -c "/sbin/pfctl -d -F all"
# ! sh -c "kill `cat /var/run/pflogd.pid`"
# ! sh -c "/sbin/ifconfig pflog0 down"
 ! sh -c "/sbin/route delete default"
Code:
---- ppp.linkup -----
MYADDR:
# ! sh -c "/sbin/ifconfig pflog0 up"
# ! sh -c "/sbin/pflogd"
# ! sh -c "/sbin/pfctl -e -F all -f /etc/pf.conf"
 ! sh -c "/etc/ppp/reset_ntp"
und lade die pf rules einfach per Hand:
# pfctl -ef /etc/pf.conf
fertig. Dann sollte es auch funktionieren.
 
@MateJunk
Wenn er pflog benutzt sollte er aber nur die Zeilen ausklammern:
! sh -c "/sbin/pfctl -e -F all -f /etc/pf.conf"
! sh -c "/sbin/pfctl -d -F all"

PS: Seit meinem Update von 3.4 auf 3.5 stable hab ich mit PF und den uplink script auch das Problem, dass PF nicht gestartet wird.
Ich muss das aber auch erst noch analysieren!
 
Zepol schrieb:
PS: Seit meinem Update von 3.4 auf 3.5 stable hab ich mit PF und den uplink script auch das Problem, dass PF nicht gestartet wird.
Ich muss das aber auch erst noch analysieren!

Huh also bin ich doch nicht so blöd das zu konfigurieren. Habe das selbe Problem mit OpenBSD/sparc 3.5
Verwunderlicherweise wird z.B. ddclient einwandfrei gestartet. Kann es vielleicht daran liegen, das pfctl mit den von MateJunk genannten Flags (die ich auch verwende, tjaja die selbe howto *g) etwas in den Output schreibt ? Denn die anderen Scripte in meiner ppp.linkup machen das nicht :o
 
MateJunk schrieb:
Habs mir fast gedacht.

Aendere ppp.linkdown und ppp.linkup wie folgt ab:
Code:
---- ppp.linkdown ----
MYADDR:
# ! sh -c "/sbin/pfctl -d -F all"
# ! sh -c "kill `cat /var/run/pflogd.pid`"
# ! sh -c "/sbin/ifconfig pflog0 down"
 ! sh -c "/sbin/route delete default"
Code:
---- ppp.linkup -----
MYADDR:
# ! sh -c "/sbin/ifconfig pflog0 up"
# ! sh -c "/sbin/pflogd"
# ! sh -c "/sbin/pfctl -e -F all -f /etc/pf.conf"
 ! sh -c "/etc/ppp/reset_ntp"
und lade die pf rules einfach per Hand:
# pfctl -ef /etc/pf.conf
fertig. Dann sollte es auch funktionieren.
Ups, da ist mir ein fehler unterlaufen !
Man sollte die Zeilen mit dem # davor loeschen !
 
DoomWarrior schrieb:
Kann es vielleicht daran liegen, das pfctl mit den von MateJunk genannten Flags (die ich auch verwende, tjaja die selbe howto *g) etwas in den Output schreibt ?

Mmmh, das waere doch mal ein anhaltspunkt. Werd ich mal testen.
 
Zurück
Oben