Anmeldungsdatum:
21.11.2005 Beiträge: 185 Wohnort: Fuwa |
Verfasst am: 10.06.2006, 22:01
DNS Namensauflösung meiner DynDNS adresse
Hallo. Ich hab ein relativ verzwicktes
Thema hier. Als ich mein WG-Netz aufgebaut hab hab ich mittels
Howtos und ähnlichem auch einen DHCP und einen Bind9 als DNS-Server auf
meinem Router der unter SuSE Linux 8.x läuft aufgesetzt. Eigentlich ist
ein Update auf ein aktuelles Linux längst überfällig, jedoch tu ich mich
da noch ein wenig schwierig. Momentan hab ich eigentlich das
Problem das ich von intern nicht über meine DynDNS, die auf die externe IP
des Router gelinkt ist, zugreifen kann. Szenario: Intern
läuft ein CVS-Server der über Port 2401 erreichbar ist. Dafür hab ich im
Router den Port auf die IP des Server geforwardet. Wenn ich nun von extern
auf diesen Server zugreifen will kann ich das ganz normal mittels DynDNS
name machen. Will ich aber von intern drauf zugreifen, so kann ich nicht
den DynDNS namen nehmen, sondern muß die interne IP angeben. Mein
DHCP ist so konfiguriert das er als DNS den Router angibt. Soweit
funktioniert der ja einwandfrei, jedoch wenn ich von einem Clienten von
intern ein nslookup auf meine dyndns adresse mache liefert lookup mir
folgendes Ergebnis:
Code:
> xxx.dyndns.org Server: ns.wgaral.home
Address: 192.168.1.1
Nicht autorisierte Antwort:
Name: xxx.dyndns.org Address: 217.80.83.7
Wie man sieht liefert der DNS mir als erstes seine
eigene IP, die für mich aber nutzlos ist, da ich ja auf diese IP keinerlei
Portforwardings oder ähnliches habe. Ich bräuchte genau die zweite
Antwort, um rauszugehen und anschließend wieder von extern reinzukommen,
und das Protforwarding auf den CVS zu nutzen. Meiner Meinung nach
ist die config des DNS nicht richtig, aber ich hab von dem noch nicht
wirklich viel Ahnung und richte mich somit an euch in der Hoffnung ihr
könnt mir sagen was ich ändern müßt, damit ich die externe IP bekomme.
Bin zwar kein Freund von langen Config files die man hier anhängt,
aber ich denke in dem Falle ist es von Nöten das ihr diese seht.
Code:
[i]named.conf[/] options {
# The
directory statement defines the name server's working directory
directory "/var/lib/named";
#
Write dump and statistics file to the log subdirectory. The
# pathenames are relative to the chroot jail.
dump-file "/var/log/named_dump.db";
statistics-file "/var/log/named.stats";
# The
forwarders record contains a list of servers to which queries
# should be forwarded. Enable this line and modify the IP
address to # your provider's name server. Up to
three servers may be listed.
forwarders {
194.25.2.129; 141.28.224.1; 195.85.254.254; };
#
Enable the next entry to prefer usage of the name server declared in
# the forwarders section.
forward
first;
# The listen-on record contains a list of
local network interfaces to # listen on. Optionally
the port can be specified. Default is to # listen
on all interfaces found on your system. The default port is
# 53.
#listen-on port 53 {
127.0.0.1; };
# The listen-on-v6 record enables or
disables listening on IPv6 # interfaces. Allowed
values are 'any' and 'none' or a list of # addresses.
#listen-on-v6 { any; };
# The
next three statements may be needed if a firewall stands between
# the local server and the internet.
#query-source address * port 53; #transfer-source *
port 53; #notify-source * port 53;
#
The allow-query record contains a list of networks or IP addresses
# to accept and deny queries from. The default is to
allow queries # from all hosts.
#allow-query { 127.0.0.1; };
# If notify is set
to yes (default), notify messages are sent to other #
name servers when the the zone data is changed. Instead of setting
# a global 'notify' statement in the 'options' section, a
separate # 'notify' can be added to each zone definition.
notify no; };
# The following zone
definitions don't need any modification. The first one # is the
definition of the root name servers. The second one defines #
localhost while the third defines the reverse lookup for localhost.
zone "." in { type hint; file
"root.hint"; };
zone "localhost" in { type
master; file "localhost.zone"; };
zone
"0.0.127.in-addr.arpa" in { type master;
file "127.0.0.zone"; }; zone "wgaral.home" {
notify no; type
master; file "wgaral.home"; };
zone "1.168.192.in-addr.arpa" {
notify no; type master;
file "192.168.1.zone"; };
Code:
[i]wgaral.home[/i] @ IN
SOA ns.wgaral.home. hostamster.wgaral.home. (
200509011 ; Serial
8H ; Refresh
2H ; Retry
1W ;
Expire
1D) ; Minimum TTL
NS
ns.wgaral.home.
ns A
192.168.1.1
router CNAME
ns
monster A
192.168.1.10
monster_static A
192.168.1.11
stefan A
192.168.1.12
Myogenic A 192.168.1.13
wgaralserver A 192.168.1.100
maximus A 192.168.1.20
sarah A 192.168.1.23
morphium A 192.168.1.33
berlin A 192.168.1.30
Tina A 192.168.1.31
dudu A 192.168.1.32
voip_eg A 192.168.1.252
AP
A 192.168.1.253
|
Moderator
Anmeldungsdatum:
31.08.2005 Beiträge: 13244 Wohnort: Karlsruhe |
Verfasst am: 10.06.2006, 22:09
Biege doch einfach innerhalb des eigenen
Netzes mithilf der /etc/hosts die Domain auf ihre interene IP. Also
angekommen dein CVS Server hat die interne IP 192.168.0.10, dann trage
einfach in die /etc/hosts deines Client die Zeile
Code:
192.168.0.10 wasauchimmer.dyndns.org ein. Ist
zwar Quick&Dirty, funktioniert aber
Tschuess Christoph
Zuletzt bearbeitet von Chrissss am 11.06.2006,
01:08, insgesamt einmal bearbeitet
|
Anmeldungsdatum:
21.11.2005 Beiträge: 185 Wohnort: Fuwa |
Verfasst am: 10.06.2006, 22:16
Ja, finde auch dass das sehr Dirty ist.
Problem ist da aber auch das der Client ein Laptop ist, und somit
auch von extern zugreift
Wärs nur eine Workstation könnt ich ja ohne Probleme die interne nehmen.
|
Moderator
Anmeldungsdatum:
17.10.2005 Beiträge: 4187 Wohnort: Hamburg-Altona |
Verfasst am: 11.06.2006, 00:32
Hatte dasselbe Problem. Ich hab's noch
dreckiger gelöst, indem mein eigener DNS-Server den externen Domain-Namen
auf die interne IP auflöst. Wenn ich wieder zu Hause bin, poste ich die
Konfig.
|
Moderator
Anmeldungsdatum:
17.10.2005 Beiträge: 4187 Wohnort: Hamburg-Altona |
Verfasst am: 11.06.2006, 06:24
example.dyndns.org.db:
Code:
$TTL 24h @ IN SOA server.lan. email.server.lan. (
2005062800 ; Seriennummer
5h ; Refresh
1200 ; Retry
4w ;
Expire 3600 ;
Minimum )
example.dyndns.org. IN NS
server.lan. example.dyndns.org. IN NS
gateway.lan.
example.dyndns.org. IN A
192.168.5.5
named.conf:
Code:
zone "example.dyndns.org" {
type master; file
"example.dyndns.org.db"; };
|
Anmeldungsdatum:
21.11.2005 Beiträge: 185 Wohnort: Fuwa |
Verfasst am: 11.06.2006, 17:23
Also ich weiß jetzt nicht ganz genau was du da
gemacht hast. So bin ich in der DNS Materie auch nicht drin
Aber ich habs versucht anzupassen an meine Config, jedoch ohne
erfolg. Immer noch kommt als erste Antwort die interne IP.
|
Moderator
Anmeldungsdatum:
17.10.2005 Beiträge: 4187 Wohnort: Hamburg-Altona |
Verfasst am: 11.06.2006, 17:44
Re: DNS Namensauflösung meiner DynDNS adresse
Daimonion hat Folgendes geschrieben:
Code:
> xxx.dyndns.org Server: ns.wgaral.home
Address: 192.168.1.1
Das ist nur die
Adresse des Nameservers, der gefragt wird, und der auf deinem Router
läuft.
Zitat:
Also ich weiß jetzt nicht ganz genau was du da gemacht
hast. Der DNS-Server fragt jetzt nicht mehr extern nach
der Adresse von example.dyndns.org, sondern liefert gleich eine Antwort,
nämlich die interne Adresse. (Weil er denkt, er wäre dafür zuständig.)
D.h. example.dyndns.org wird intern und extern immer "richtig" aufgelöst.
Dadurch kann ich von überall mit dem Notebook drauf zugreifen.
host, nslookup und dig müssten dir in deinem internen Netz jetzt
immer deine interne IP liefern, wenn du deine dyndns-Adresse aufrufst.
|
Anmeldungsdatum:
21.11.2005 Beiträge: 185 Wohnort: Fuwa |
Verfasst am: 11.06.2006, 18:18
Re: DNS Namensauflösung meiner DynDNS adresse
otzenpunk hat Folgendes geschrieben:
host, nslookup und dig müssten dir in deinem internen
Netz jetzt immer deine interne IP liefern, wenn du deine dyndns-Adresse
aufrufst.
Mmh, okay verstanden, aber ich will ja
von intern die externe IP haben, damit ich beim cvs-clienten immer
dieselbe adresse wgaral.dyndns.org angeben kann.
|
Moderator
Anmeldungsdatum:
17.10.2005 Beiträge: 4187 Wohnort: Hamburg-Altona |
Verfasst am: 11.06.2006, 18:41
Re: DNS Namensauflösung meiner DynDNS adresse
Daimonion hat Folgendes geschrieben:
Mmh, okay verstanden, aber ich will ja von intern die
externe IP haben, damit ich beim cvs-clienten immer dieselbe adresse
wgaral.dyndns.org angeben kann. Ne, an die externe kommst
du ja nicht ran. Deswegen willst du intern die interne IP haben.
Egal, wo du bist, der Dyndns-Name funktioniert dann immer.
|
Anmeldungsdatum:
21.11.2005 Beiträge: 185 Wohnort: Fuwa |
Verfasst am: 11.06.2006, 19:05
hmm, vielleicht erklär ich noch mal kurz warum
ich die externe brauch.
Mein CVS-Server steht ganz normal hinter
dem Router (DNS, DHCP). Wenn ich den von intern ansprechen will kann ich
ja ganz normal die interne IP angeben. Ergo, funktioniert auch! Wenn ich
von extern auf den CVS-Server zugreifen will, muß ich ja die Dyndns
angeben. Funktioniert auch einwandfrei.
Da mein CVS-Client aber
die Links in Dateien ablegt (Tortoise CVS legt versteckte Verzeichnisse
mit Files an wo die Informationen drinstehen) müßte ich jedes mal wenn ich
mich mit dem CVS-Server connecten will entweder die interne oder die
externe angeben, je nachdem ob ich in meinem Netz surfe, oder nicht.
Da dies aber ein nicht zu haltender Aufwand wäre will ich alles
über die externe IP erledigen. Bisher ist mir ja da immer das Problem
dazwischen gekommen das ich von intern nicht die externe IP bekomme,
sondern die interne des Routers. Und auf das interne Interface ist ja kein
Forwarding eingetragen.
Ergo: Wenn ich von intern über meine
Dyndns auf den CVS zugreifen möchte, bekomm ich eine IP wo auf dem
entsprechenden Port kein CVS zu finden ist.
Würde ich die externe
IP bekommen, so besteht in den iptables ein eintrag für ein Forwarding der
dann auch genutzt wird und die Anfrage an meinen CVS-Server weiterleitet,
oder?
Bei nem Hardwarerouter gehts ja auch. Es kann ja auch sein
das die Iptables nicht richtig eingestellt sind und so verliert sich das
Paket irgendwo in meinem Netz.
|
Moderator
Anmeldungsdatum:
17.10.2005 Beiträge: 4187 Wohnort: Hamburg-Altona |
Verfasst am: 11.06.2006, 19:22
Hab ich schon verstanden, wofür du das
brauchst.
Daimonion hat Folgendes geschrieben:
Da mein CVS-Client aber die Links in Dateien ablegt
(Tortoise CVS legt versteckte Verzeichnisse mit Files an wo die
Informationen drinstehen) müßte ich jedes mal wenn ich mich mit dem
CVS-Server connecten will entweder die interne oder die externe angeben,
je nachdem ob ich in meinem Netz surfe, oder nicht. Und du
willst da den Dyndns-Namen eintragen, so dass er immer auf den CVS-Server
zeigt.
Daimonion hat Folgendes geschrieben:
Da dies aber ein nicht zu haltender Aufwand wäre will ich
alles über die externe IP
erledigen. Denkfehler. Du willst es über den Namen
erreichen, die IP ist nicht wichtig. (Oder akzeptiert der Client keine
DNS-Namen, sondern nur IPs? Wozu brauchst du dann überhaupt den
Dyndns-Namen?)
Daimonion hat Folgendes geschrieben:
Bisher ist mir ja da immer das Problem dazwischen gekommen
das ich von intern nicht die externe IP bekomme, sondern die interne des
Routers. Und auf das interne Interface ist ja kein Forwarding
eingetragen. Das wird sich auch nicht ändern.
Daimonion hat Folgendes geschrieben:
Ergo: Wenn ich von intern über meine Dyndns auf den CVS
zugreifen möchte, bekomm ich eine IP wo auf dem entsprechenden Port kein
CVS zu finden ist. Nicht, wenn der DNS-Server direkt die
interne IP des CVS-Servers, nicht des Routers, rausgibt. Dann brauchst du
gar kein Forwarding, sondern greifst direkt drauf zu, als wenn du die
interne IP verwendest. Einziger Nachteil: Du kannst dann nicht
mehr mit dem Dyndns-Namen auf den Router zugreifen. Wenn du das auch
benötigst, kannst du bei Dyndns Wildcards einschalten, und intern nicht
example.dyndns.org, sondern cvs.example.dyndns.org verbiegen.
|
Anmeldungsdatum:
21.11.2005 Beiträge: 185 Wohnort: Fuwa |
Verfasst am: 11.06.2006, 19:33
otzenpunk hat Folgendes geschrieben:
Daimonion hat Folgendes geschrieben:
Da dies aber ein nicht zu haltender Aufwand wäre will ich
alles über die externe IP
erledigen. Denkfehler. Du willst es über den Namen
erreichen, die IP ist nicht wichtig. (Oder akzeptiert der Client keine
DNS-Namen, sondern nur IPs? Wozu brauchst du dann überhaupt den
Dyndns-Namen?) Ja, du hast recht ich mein den Namen.
bin grad nur so im Auflösen und nicht auflösen das ich IP geschrieben
habe.
otzenpunk hat Folgendes geschrieben:
Daimonion hat Folgendes geschrieben:
Bisher ist mir ja da immer das Problem dazwischen gekommen
das ich von intern nicht die externe IP bekomme, sondern die interne
des Routers. Und auf das interne Interface ist ja kein Forwarding
eingetragen. Das wird sich auch nicht
ändern. Stimmt, soll sich ja eigentlich auch nicht.
Bei Hardwareroutern funktioniert die ganze Geschichte ja. Dort kann
ich ganz normal immer die Dyndns angeben und egal ob intern oder extern
bekomme ich zugriff.Also muß es auch mit der richtigen Config bei nem
Linux Router funktionieren.
otzenpunk hat Folgendes geschrieben:
Daimonion hat Folgendes geschrieben:
Ergo: Wenn ich von intern über meine Dyndns auf den CVS
zugreifen möchte, bekomm ich eine IP wo auf dem entsprechenden Port
kein CVS zu finden ist. Nicht, wenn der DNS-Server
direkt die interne IP des CVS-Servers, nicht des Routers, rausgibt. Dann
brauchst du gar kein Forwarding, sondern greifst direkt drauf zu, als
wenn du die interne IP verwendest.
Einziger Nachteil: Du kannst
dann nicht mehr mit dem Dyndns-Namen auf den Router zugreifen. Wenn du
das auch benötigst, kannst du bei Dyndns Wildcards einschalten, und
intern nicht example.dyndns.org, sondern cvs.example.dyndns.org
verbiegen. [/quote] Ne, das ist mit meinen mitteln ja
gar nicht so wirklich möglich. Die interne IP ist ja eine 192.168.x.x,
also nicht routbar.
|
Anmeldungsdatum:
21.11.2005 Beiträge: 185 Wohnort: Fuwa |
Verfasst am: 11.06.2006, 19:35
otzenpunk hat Folgendes geschrieben:
Daimonion hat Folgendes geschrieben:
Da dies aber ein nicht zu haltender Aufwand wäre will ich
alles über die externe IP
erledigen. Denkfehler. Du willst es über den Namen
erreichen, die IP ist nicht wichtig. (Oder akzeptiert der Client keine
DNS-Namen, sondern nur IPs? Wozu brauchst du dann überhaupt den
Dyndns-Namen?) Ja, du hast recht ich mein den Namen.
bin grad nur so im Auflösen und nicht auflösen das ich IP geschrieben
habe.
otzenpunk hat Folgendes geschrieben:
Daimonion hat Folgendes geschrieben:
Bisher ist mir ja da immer das Problem dazwischen gekommen
das ich von intern nicht die externe IP bekomme, sondern die interne
des Routers. Und auf das interne Interface ist ja kein Forwarding
eingetragen. Das wird sich auch nicht
ändern. Stimmt, soll sich ja eigentlich auch nicht.
Bei Hardwareroutern funktioniert die ganze Geschichte ja. Dort kann
ich ganz normal immer die Dyndns angeben und egal ob intern oder extern
bekomme ich zugriff.Also muß es auch mit der richtigen Config bei nem
Linux Router funktionieren.
otzenpunk hat Folgendes geschrieben:
Daimonion hat Folgendes geschrieben:
Ergo: Wenn ich von intern über meine Dyndns auf den CVS
zugreifen möchte, bekomm ich eine IP wo auf dem entsprechenden Port
kein CVS zu finden ist. Nicht, wenn der DNS-Server
direkt die interne IP des CVS-Servers, nicht des Routers, rausgibt. Dann
brauchst du gar kein Forwarding, sondern greifst direkt drauf zu, als
wenn du die interne IP verwendest.
Einziger Nachteil: Du kannst
dann nicht mehr mit dem Dyndns-Namen auf den Router zugreifen. Wenn du
das auch benötigst, kannst du bei Dyndns Wildcards einschalten, und
intern nicht example.dyndns.org, sondern cvs.example.dyndns.org
verbiegen. Ne, das ist mit meinen mitteln ja gar nicht
so wirklich möglich. Die interne IP ist ja eine 192.168.x.x, also nicht
routbar. Mittlerweile tunnele ich halt jedesmal vorher den Port
auf den Router. Geht auch aber wär natürlich schön wenns auch "normal"
gehen würde
Zuletzt bearbeitet von Daimonion am 11.06.2006,
19:38, insgesamt einmal bearbeitet
|
Anmeldungsdatum:
07.06.2006 Beiträge: 124 Wohnort: Hanau |
Verfasst am: 11.06.2006, 19:38
otzenpunk hat Folgendes geschrieben:
Hatte dasselbe Problem. Ich hab's noch dreckiger gelöst,
indem mein eigener DNS-Server den externen Domain-Namen auf die interne
IP auflöst. Wenn ich wieder zu Hause bin, poste ich die
Konfig. Ich glaube ihr redet ein wenig aneinander
vorbei. So wie ich Daimonion verstanden habe, möchte er mit seinem Laptop
vom LAN aus seinen CVS Server mit der DynDNS-Adresse erreichen, aber auch
vom WAN aus. Wenn er das so durchzieht wie du es geschildert hast, kann er
vom WAN aus die DynDNS-Adresse vergessen, oder müsste seinen DNS
umkonfigurieren. Und das ist genau der Aufwand den Daimonion zu verhindern
versucht. Leider kann ich bei dem Problem direkt nicht helfen - sorry.
|
Moderator
Anmeldungsdatum:
17.10.2005 Beiträge: 4187 Wohnort: Hamburg-Altona |
Verfasst am: 11.06.2006, 19:53
Bei mir sieht das so aus: Mein Server hat
intern die Adresse 192.168.5.5. Notebook im LAN will auf
example.dyndns.org zugreifen und fragt meinen Nameserver nach der Adresse.
Nameserver antwortet: 192.168.5.5. Notebook verbindet zu 192.168.5.5.
Notebook woanders will auf example.dyndns.org zugreifen und fragt
einen anderen über DHCP zugewiesenen Nameserver nach der Adresse.
Nameserver fragt bei dyndns.org nach und antwortet dann: 82.83.100.111.
(Nur Beispiel für externe Adresse.) Notebook verbindet zu 82.83.100.111.
-> Port-Weiterleitung vom Router.
Daimonion hat Folgendes geschrieben:
Bei Hardwareroutern funktioniert die ganze Geschichte ja.
Dort kann ich ganz normal immer die Dyndns angeben und egal ob intern
oder extern bekomme ich zugriff.Also muß es auch mit der richtigen
Config bei nem Linux Router funktionieren. Vielleicht geht
das auch, wenn du auch für das interne Interface (z.B. eth0) eine
Umleitung erstellst:
Code:
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 22 -j
DNAT --to-destination 192.168.5.5 Hab ich bei mir aber nicht
getestet, weil ich das wie oben gelöst hab. Weiß nicht mehr warum, aber
gab 'nen Grund.
|