Router routet nicht

SpecialAgent

BSD Trainee
Hallo Leute,

ich habe einen OpenBSD 3.6 Server und habe ihn nach der Anleitung von Jürgen Graf (http://www.fmi.uni-passau.de/~grafj/openbsd/3.5/index.html) für OpenBSD 3.5 installiert und konfiguriert.

Ich habe keinen TimeServer und kein DNS Server installiert, weil bei der Installation des Paketes von Jügen Graf OpenBSD mir sagt das irgendeine lib fehlt.
Ports Tree hab ich auch noch nicht installiert.

Der Server wählt sich ins Internet über ppp ein und die Clients konfigurieren sich über den DHCP Server. Das funktioniert alles. Mit sysctl habe ich auch dem Router gesagt "routen!", also ip.forwarding eingeschaltet.

Allerdings weigern die Clients(WinXP) sich ins Internet zu gehen... was mach ich falsch? Evtl. brauch ich den DNS Server? Wenn ja warum? Gateway ist doch eingetragen! :-)

Vielen Dank für die Antworten und frohe Weihnachten!

Gruss SA


Unten: pf.conf, dhcpd.conf, ifconfig -a

pf.conf:
### VARIABLEN ###

Ext = "tun0" # Device an dem das Internet angeschlossen ist
Int = "rl0" # Device an dem das interne Netz haengt
IntNet = "192.168.0.0/24" # Adressraum des internen Netzes
RouterIP = "192.168.0.1" # 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
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# !! Achtung: Der unten stehende Wert von 100Kb (Kilobit) macht natuerlich
# !! nur fuer den Standard DSL Anschluss mit 128kb upstream Sinn. Hat man
# !! eine Verbindung mit groesserer Bandbreite beim upload, dann muss
# !! dieser Wert entsprechend angepasst werden.
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
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)




dhcpd.conf:
# $OpenBSD: dhcpd.conf,v 1.1 1998/08/19 04:25:45 form Exp $
#
# DHCP server options.
# See dhcpd.conf(5) and dhcpd(8) for more information.
#

# Network: 192.168.0.0/255.255.255.0
# Domain name: my.domain
# Name servers: 192.168.0.1
# Default router: 192.168.0.1

# Addresses: 192.168.0.32 - 192.168.0.127
#
shared-network LOCAL-NET {
option domain-name "my.domain";
option domain-name-servers 192.168.0.1;

subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.1;

range 192.168.0.32 192.168.0.127;

default-lease-time 43200;
max-lease-time 43200;
}
}

ifconfig -a :

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33224
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x6
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
address: 00:40:f4:61:64:1d
media: Ethernet 10baseT
status: active
inet6 fe80::240:f4ff:fe61:641d%rl0 prefixlen 64 scopeid 0x1
ne3: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500
address: 00:e0:7d:c7:01:39
media: Ethernet autoselect (10base2)
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
inet6 fe80::2e0:7dff:fec7:139%ne3 prefixlen 64 scopeid 0x2
pflog0: flags=0<> mtu 33224
pfsync0: flags=0<> mtu 2020
enc0: flags=0<> mtu 1536
tun0: flags=8011<UP,POINTOPOINT,MULTICAST> mtu 1500
inet 213.54.161.185 --> 62.26.136.40 netmask 0xffffffff
 
ich würde erst mal den ganzen pf weglassen (außer den nat teil) und dann mal mit traceroute testen, ob was geht, zum bsp auf den winxp kisten tracert 195.185.185.195

marty
 
seh gerade, das du in der dhcpd.conf option domain-name-servers 192.168.0.1 eingetragen hast, ich denke du hast kein DNS installiert ?! stell mal zum testen auf den winxp kisten den 195.185.185.195 ein

marty
 
SpecialAgent said:
Evtl. brauch ich den DNS Server? Wenn ja warum? Gateway ist doch eingetragen! :-)
Ein Gateway leitet IP-Pakete weiter. Ein DNS-Server wandelt Hostnamen in IP-Adressen um. Kleiner Unterschied, denke ich mal. Versuche zuerst auf dem Router und dann auf den Clients folgende Befehle:
Code:
ping 216.239.59.104
ping www.google.de
Ersteres sollte immer und überall gehen, zweiteres nur, wenn auf der jeweiligen Kiste ein DNS-Server erreichbar ist.
 
Hey,

au mann! Ich hab den Fehler... danke nochmal den Anstoss zum nachgrübeln... der Fehler war, das in der pf.conf das interne Device auf das externe gesetzt war! *anKopfHau! ;-)

So, kann nu auch mit der Firewall vom Windows Rechner google.de über die IP Adresse anpingen. Allerdings nur über die IP. Jetzt fehlt noch der DNS Server... dann müßte es funktionieren.

Gibt es für den normalen Homebenutzer eigentlich einen Vorteil wenn ich einen richtigen DNS Server anstatt nur einer leichtgewichtigen Variante wie aus der Anleitung der dnsmasq zu benutzen ist?

Mal ne ganz andere Frage, wenn ich bei NetCologne bin, die ja bekanntlich unterbinden einen anderen Provider als sich selbst zu benutzen. (Wie auch kein CallByCall funzt). Ich hab es nicht ausprobiert, aber vom verständniss können die das technisch doch eigentlich gar nicht unterbinden? Oder doch?

Ok, gruss SA
 
Was ist für dich ein "richtiger" DNS-Server? Bind 9? Wenn du sowas brauchst, dürftest du das wissen :) Ansonsten reicht ein DNS-Caching. Für kleine LANs verwende ich ebenfalls dnsmasq:
Code:
/usr/local/sbin/dnsmasq --listen-adress=$INTERNE_IP --user=nobody
Schneller kann man eigentlich nicht fertig werden und es reicht für die meisten Anwendungsgebiete völlig aus.
 
Hey,

ja ich meinte mit nicht richtiger, weil in der Anleitung steht, das dnsmasq nur ein caching dns server ist und kein richtiger.. naja.. egal...

leider finde ich den nicht in den ports und auch nicht in den packages... habe also nur das package von der Anleitung.

Lässt sich wunderbar mit pkg_add installieren, aber beim start bekomme ich fogende fehlermeldung:

/usr/local/sbin/dnsmasq can't load library 'libc.so.30.3'

liegt es evtl. daran, das das package für openbsd 3.5 gedacht ist?

Woher bekomme ich diese lib und wie installiere ich die richtig?

Mit den ports wäre es ja kein prob... aber so! :-(

:-)

Also... vielleicht nochn Tipp.... bin halt nen Newbie!

Gruss
SA
 
So, funktioniert nun alles! :-)
Hab dnsmasq komplett neu kompiliert mit dem Nachteil, das es kein package ist.


Supi!

Für die Nachwelt:

OpenBSD Router HowTo von Jürgen Graf:
http://www.fmi.uni-passau.de/~grafj/openbsd/
zum nachlesen.

mit
Code:
sysctl -w net.inet.ip.forwarding=1
im Kernel routen "einschalten"

aus der Anleitung die pf.conf übernehmen und NICHT das externe Interface für das interne halten! ;-)

pf mit
Code:
 /sbin/pfctl -e -F all -f /etc/pf.conf
starten.

oder aber mit der /etc/ppp/ppp.linkup Datei (siehe HowTo) sie automatisch bei jedem einwählen starten lassen.

den neusten dnsmasq von http://thekelleys.org.uk/dnsmasq/doc.html
hohlen, ins home Verzeichniss kopieren, auspacken mit tar xzvf dnsmasq.tar.gz, ins Verzeichniss gehen und installieren mit:
Code:
make
make install

starten mit

Code:
/usr/local/sbin/dnsmasq -i <internes Interface> -z

versteht sich das alles mit sudo gemacht werden muss!

Clients(WinXP) :

Wenn man nicht den dhcp Server mit OpenBSD nutzt (siehe HowTo) dann dem Client einfach eine IP geben(auf Subnetze achten!), die richtige Subnet Maske, als Gateway den OpenBSD Router und den gleichen als DNS Server eintragen.

Wenn nicht läuft, dann folgende Schritte in der MSDOS Eingabeaufforderung(Client):

(vorausgesetzt das der Server im Internet ist und alles funzt, lynx, ping auf server und so)

pingen auf www.google.de:
Code:
 ping 216.239.59.99
Wenn es nicht klappt. ip.forwarding im Kernel aktiv?? pf ausgeschaltet?? Router im Netz? ifconfig alles ok?

Wenn man pingen kann, dann funzt das normale routen.
dann,
Code:
 ping www.google.de
wenn es nicht klappt, dann funkioniert allerhöchstwahrscheinlichkeit dnsmasq nicht einwandfrei! Überprüfen!
Wenn es klappt, dann Juhu!

mit tracert www.google.de (oder ip) kann man sich die Paket Stationen, die es durchläuft anzeigen lassen.

So, hoffe das dies für alle die die gleichen Probleme haben wie ich sie hatte ein wenig geholfen hat! :-)

Gruss SA.
 
Back
Top