URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 74844
[ Назад ]

Исходное сообщение
"Передача DNS по локалке w/ Pdnsd."

Отправлено Heretiqu3 , 24-Июн-07 17:36 
Доброго времени суток!

OS: Redhat EL4.
eth0 = ip-10.1.4.26, gw-10.1.0.2, dns-80.70.224.2 & 80.70.224.4
eth1 = ADSLwebplus ip 195.131.217.x dns-194.131.52.130 & 194.8.160.90
eth2 = ip-192.168.0.1 (сеть с winXP)

OS: WinXP
ip-192.168.0.3

На линуксе настроен PDNSD dns server, работает отлично, но только на нем.
Не могу понять, почему могут не работают ДНСы на винде?


Iptables:
-A POSTROUTING -s 192.168.0.0/255.255.255.0 -o eth0 -j MASQUERADE
53й порт открыт.


На линуксе работает и локалка и инет:
[root@Here etc]# nslookup
> zett.local
Server:         192.168.0.1
Address:        192.168.0.1#53

Non-authoritative answer:
Name:   zett.local
Address: 10.1.12.250
> yahoo.com
Server:         192.168.0.1
Address:        192.168.0.1#53

Non-authoritative answer:
Name:   yahoo.com
Address: 216.109.112.135
Name:   yahoo.com
Address: 66.94.234.13

Resolv.conf:
[root@Here etc]# cat resolv.conf
nameserver 192.168.0.1
;nameserver 194.8.190.60
;nameserver 80.70.224.2
;nameserver 195.131.52.130
;nameserver 80.70.224.4

Pdnsd.conf:

[root@Here etc]#cat /etc/pdnsd.conf
global{
perm_cache=2048;
cache_dir="/var/cache/pdnsd";
max_ttl=204800;
run_as="nobody";
paranoid=on;
server_port=53;
server_ip="192.168.0.1";
}
server{
ip="80.70.224.2";
timeout=260;
interval=900;
uptest=none;
ping_timeout=500;
purge_cache=off;
caching=on;
}
server{
ip="80.70.224.4";
timeout=260;
interval=900;
uptest=none;
ping_timeout=500;
purge_cache=off;
caching=on;
}
server{
ip="194.8.160.90";
timeout=260;
interval=900;
uptest=none;
ping_timeout=500;
purge_cache=off;
caching=on;
}
server{
ip="195.131.52.130";
timeout=260;
interval=900;
uptest=none;
ping_timeout=500;
purge_cache=off;
caching=on;
}
source{
ttl=86400;
owner="localhost.";
serve_aliases=on;
file="/etc/hosts";
}
/*
rr{
ttl=86400;
owner="localhost.";
name="localhost.";
a="192.168.0.1";
soa="localhost.","root.localhost.",42,86400,900,86400,86400;
}
rr{
ttl=86400;
owner="localhost.";
name="1.0.168.192.in-addr.arpa.";
ptr="localhost.";
soa="localhost.","root.localhost.",42,86400,900,86400,86400;
}*/


Уже совсем не знаю что и сделать. Извините за большое сообщение, я просто в отчаянии уже.


Содержание

Сообщения в этом обсуждении
"Передача DNS по локалке w/ Pdnsd."
Отправлено SDenis , 24-Июн-07 19:43 
>Доброго времени суток!
>
>OS: Redhat EL4.
>eth0 = ip-10.1.4.26, gw-10.1.0.2, dns-80.70.224.2 & 80.70.224.4
>eth1 = ADSLwebplus ip 195.131.217.x dns-194.131.52.130 & 194.8.160.90
>eth2 = ip-192.168.0.1 (сеть с winXP)
>
>OS: WinXP
>ip-192.168.0.3
>
>На линуксе настроен PDNSD dns server, работает отлично, но только на нем.
>
>Не могу понять, почему могут не работают ДНСы на винде?
>
>
>Iptables:
>-A POSTROUTING -s 192.168.0.0/255.255.255.0 -o eth0 -j MASQUERADE
>53й порт открыт.
>
>
>На линуксе работает и локалка и инет:
>[root@Here etc]# nslookup
>> zett.local
>Server:         192.168.0.1
>Address:        192.168.0.1#53
>
>Non-authoritative answer:
>Name:   zett.local
>Address: 10.1.12.250
>> yahoo.com
>Server:         192.168.0.1
>Address:        192.168.0.1#53
>
>Non-authoritative answer:
>Name:   yahoo.com
>Address: 216.109.112.135
>Name:   yahoo.com
>Address: 66.94.234.13
>
>Resolv.conf:
>[root@Here etc]# cat resolv.conf
>nameserver 192.168.0.1
>;nameserver 194.8.190.60
>;nameserver 80.70.224.2
>;nameserver 195.131.52.130
>;nameserver 80.70.224.4
>
>Pdnsd.conf:
>
>[root@Here etc]#cat /etc/pdnsd.conf
>global{
>perm_cache=2048;
>cache_dir="/var/cache/pdnsd";
>max_ttl=204800;
>run_as="nobody";
>paranoid=on;
>server_port=53;
>server_ip="192.168.0.1";
>}
>server{
>ip="80.70.224.2";
>timeout=260;
>interval=900;
>uptest=none;
>ping_timeout=500;
>purge_cache=off;
>caching=on;
>}
>server{
>ip="80.70.224.4";
>timeout=260;
>interval=900;
>uptest=none;
>ping_timeout=500;
>purge_cache=off;
>caching=on;
>}
>server{
>ip="194.8.160.90";
>timeout=260;
>interval=900;
>uptest=none;
>ping_timeout=500;
>purge_cache=off;
>caching=on;
>}
>server{
>ip="195.131.52.130";
>timeout=260;
>interval=900;
>uptest=none;
>ping_timeout=500;
>purge_cache=off;
>caching=on;
>}
>source{
>ttl=86400;
>owner="localhost.";
>serve_aliases=on;
>file="/etc/hosts";
>}
>/*
>rr{
>ttl=86400;
>owner="localhost.";
>name="localhost.";
>a="192.168.0.1";
>soa="localhost.","root.localhost.",42,86400,900,86400,86400;
>}
>rr{
>ttl=86400;
>owner="localhost.";
>name="1.0.168.192.in-addr.arpa.";
>ptr="localhost.";
>soa="localhost.","root.localhost.",42,86400,900,86400,86400;
>}*/
>
>
>Уже совсем не знаю что и сделать. Извините за большое сообщение, я
>просто в отчаянии уже.

Не знаю как в PDNSD, в BIND делается просто.

Если нужно дать доступ к внешним днс серверам из локалки, использую iptables,
то делается это примерно так:

iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -d 0/0 --sport 1024:65535 --dport 53 -o eth0 -j SNAT --to-source 10.1.4.26

iptables -A FORWARD -s 192.168.0.0/255.255.255.0 --sport 1024:65535 -d 0/0 --dport 53 --j ACCEPT

iptables -A FORWARD -d 192.168.0.0/255.255.255.0 --dport 1024:65535 --sport 53 -d 0/0 --j ACCEPT