Kein routing von interner netzwerkkarte aus

A

ante

Guest
Hallo Forum.

Habe OpenBSD installiert und möchte den Rechner nun als Router nutzen.
Für die Installation bin ich nach der Anleitung von Jürgen Graf (http://www.fmi.uni-passau.de/~grafj/openbsd/3.5/index.html) vorgegangen.

Ein Einwahl ins Netz funzt, und ich kann auch einen ping absetzen. (z.B. www.google.de)

Versuche ich aber eine ping von der internen Netzwerkkarte abzusetzen klappt es nicht.
(z.B. ping -I rl0 www.google.de)

Von den anderen Rechnern im Netz möchte ich erst gar nicht anfangen, solange es nicht vom internen Interface am Router selbst klappt.

Bei der Einwahl be meinem Provider erhalte ich folgende (Fehler)meldung:

tun0: Warning 0.0.0.0/0: Change route failed_ errno: No such process

Da ich mich wie gesagt an obige installationanleitung gehalten habe sehen meine config files wie folgt aus:

ppp.conf
=========

default:
set log Phase Chat IPCP CCP tun command
set redial 15 0
set reconnect 15 10000

pppoe:
set device "!/usr/sbin/pppoe -i <interface>"
disable acfcomp protocomp
deny acfcomp
set mtu max 1454
set crtscts off
set speed sync
enable lqr
set lqrperiod 5
set dial
set login
set timeout 0
set authname "<benutzername>"
set authkey <passwort>
add! default HISADDR
enable dns
enable mssfixup

ppp.linkup
========
MYADDR:
! sh -c "/sbin/ifconfig pflog0 up"
! sh -c "/sbin/pflogd"
! sh -c "/sbin/pfctl -e -F all -f /etc/pf.conf"

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"

By the way: IP forwarding ist aktiviert

/etc/sysctl.conf
===========
net.inet.ip.forwarding=1

Ich bin für jeden Hinweis zum weiteren Debuggen/ Vorgehen dankbar.

Was möchte mir diese Fehlermeldung: No such process eigentlich sagen? Und vor allem was provoziert diese?

Gruss Anton
 
Ein Einwahl ins Netz funzt, und ich kann auch einen ping absetzen. (z.B. www.google.de)

Guter Anfang, damit wissen wir das Deine externe Karte (über tun0?) ein Standardgateway (höchstwahrscheinlich) per DHCP zugewiesen bekommt und dies auch funktionieren sollte.

Versuche ich aber eine ping von der internen Netzwerkkarte abzusetzen klappt es nicht.
(z.B. ping -I rl0 www.google.de)

Wie bewerkstelligst Du dies?
Aus der Manpage von "ping":
Specify the interface to transmit from on machines with multiple interfaces. FOR UNICAST AND MULTICAST PINGS.

Du brauchst bei einem "normalen" ping keine ausgehende Karte anzugeben, das System trifft die Routing-Entscheidungen anhand der Routingtabelle.
Wenn Du in Deinem Fall einen Rechner im internen Netz pingen willst wird die interne Karte benutzt.
Willst Du z.B www.bsdforen.de pingen und es wurden keine anderen Routen gesetzt wird die externe Karte benutzt und die Pakete an den Standardgateway geleitet.

Von den anderen Rechnern im Netz möchte ich erst gar nicht anfangen, solange es nicht vom internen Interface am Router selbst klappt.

Würde wenn Du in Deinen PF-Regeln einen ping request nach außen erlaubst wahrscheinlich sogar funktionieren. :)

Bei der Einwahl be meinem Provider erhalte ich folgende (Fehler)meldung:
tun0: Warning 0.0.0.0/0: Change route failed_ errno: No such process

Entschuldige, keine Ahnung bez. dieser Fehlermeldung.

Da ich mich wie gesagt an obige installationanleitung gehalten habe sehen meine config files wie folgt aus:

ppp.conf
=========

default:
set log Phase Chat IPCP CCP tun command
set redial 15 0
set reconnect 15 10000

pppoe:
set device "!/usr/sbin/pppoe -i <interface>"
disable acfcomp protocomp
deny acfcomp
set mtu max 1454
set crtscts off
set speed sync
enable lqr
set lqrperiod 5
set dial
set login
set timeout 0
set authname "<benutzername>"
set authkey <passwort>
add! default HISADDR
enable dns
enable mssfixup

ppp.linkup
========
MYADDR:
! sh -c "/sbin/ifconfig pflog0 up"
! sh -c "/sbin/pflogd"
! sh -c "/sbin/pfctl -e -F all -f /etc/pf.conf"

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"

Du hast oben geschrieben das die Einwahl funktioniert :)
Ich halte mich von den DSL wenn möglich fern.

By the way: IP forwarding ist aktiviert

/etc/sysctl.conf
===========
net.inet.ip.forwarding=1

So soll es auch sein. :)

Was möchte mir diese Fehlermeldung: No such process eigentlich sagen? Und vor allem was provoziert diese?

In diesem Zusammmenhang echt keinen Schimmer.
 
obsduser schrieb:
Wie bewerkstelligst Du dies?
Aus der Manpage von "ping":
Specify the interface to transmit from on machines with multiple interfaces. FOR UNICAST AND MULTICAST PINGS.

Nun mit "ping -I 192.168.0.2 www.google.de" setzt Du einen Ping vom Interface mit der IP 192.168.0.2 ab.

obsduser schrieb:
Du brauchst bei einem "normalen" ping keine ausgehende Karte anzugeben, das System trifft die Routing-Entscheidungen anhand der Routingtabelle.
Wenn Du in Deinem Fall einen Rechner im internen Netz pingen willst wird die interne Karte benutzt.
Willst Du z.B www.bsdforen.de pingen und es wurden keine anderen Routen gesetzt wird die externe Karte benutzt und die Pakete an den Standardgateway geleitet.

Ist schon richtig, wie gesagt der normale Ping funktioniert ja auch.
Der Vollständigkeit halber:
Meine Konfiguration sieht wie folgt aus: externe netzwerkkare = ne3, krigt IP etc von DSL gegenstelle

interne netzwerkkarte (die am switch hängt) ist ein rl0 = 192.168.0.2

Da es von der ne3 klappt einen ping ins internet abzustzen habe ich es explizit von der anderen Karte probiert.

Hätte ja eigentlich auch funzen müssen. Wie gesagt bevor ich weiter gehe und die clients configuriere wollte ich nur sicherstellen dass auf dem Server alles passt.


obsduser schrieb:
Würde wenn Du in Deinen PF-Regeln einen ping request nach außen erlaubst wahrscheinlich sogar funktionieren. :)

Firewall ist noch gar nicht aktiviert. Sollte dann also möglich sein.

Was mir nach wie vor nicht wirklich verstehe ist wie ich überprüfen kann ob die Pakete innerhalb des Rechners (also von einer Karte zur anderen) richtig geroutet werden.

Wie kann ich das überprüfen? Wie müsste für die interne Karte die default route aussehen?

Ich denke das würde mich schon weiter bringen.

Gruss Ante
 
Wenn ich das richtig verstanden habe, versuchst du einen Ping von deiner Internen Netzwerkkarte durch deinen Rechner über die externe Karte zu schicken!
Auf die Idee bin ich noch nicht gekommen! :rolleyes:
Ich denke das geht auch gar nicht.
Schick einen Ping ins Internet und du weißt, dass die Internetverbindung steht
Schick einen Ping an einen deiner Clients und du weißt, dass die Verbindung zum LAN steht

Schalte dann PF (inklusive NAT natürlich) ein und dann kannst du einen Ping (wenn das deine Firewall-Regeln erlauben) von einem deiner Clients ins Internet schicken.
 
ante schrieb:
Ist schon richtig, wie gesagt der normale Ping funktioniert ja auch.

Sehr gut!

Da es von der ne3 klappt einen ping ins internet abzustzen habe ich es explizit von der anderen Karte probiert.

Wozu?
Abgesehen davon das kein externer Router 192.168.0.0/24 routen wird.
Dediziert eine eigene Karte des Routers mit NAT zu "versorgen" um mit dieser ins Internet zu gelangen ist IMHO Blödsinn (ob's funktioniert ist wieder eine andere Sache)

Hätte ja eigentlich auch funzen müssen.

Denke ich nicht. Zepol hat schon geschrieben wie's funktionieren sollte.

Wie gesagt bevor ich weiter gehe und die clients configuriere wollte ich nur sicherstellen dass auf dem Server alles passt.

Das wird es wahrscheinlich schon :)


Was mir nach wie vor nicht wirklich verstehe ist wie ich überprüfen kann ob die Pakete innerhalb des Rechners (also von einer Karte zur anderen) richtig geroutet werden.

Sieh' dir die Routingtabelle an. Wenn diese in Ordnung (wovon ich ausgehe) wird richtig geroutet. Wie schon geschrieben wurde werden "Routingentscheidungen" anhand der Routingtabelle getroffen.

Wie kann ich das überprüfen? Wie müsste für die interne Karte die default route aussehen?

2 Optionen:
Kein default Gateway
1 default Gateway

Du willst Dein default Gateway für die externe Karte definieren.
 
Zurück
Oben