Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Tak się zastanawiałem, czy szło by zrobić Serwer Cache DNS w Sieci Lokalnej, przykładowo:
Mam Serwer w sieci lokalnej, z bind9, który miałby działać jako 'zbierający Cache' z innych komputerów w sieci lokalnej a sam miałby ustawione dnsy open np.
nameserver 208.67.222.222
nameserver 208.67.220.220
PC'ty lokalne miałyby ustawione 'nameserver {IP Serwera z bind9}'.
I teraz np. gdy użyłbym na komputerze lokalnym 'dig www.example.com' i Czas odpytania zmalałby do ok. 2-10MS, to czy dzięki temu Serwerowi lokalnemu, utrzymywałoby to się na stałym poziomie 2-10MS? czy po prostu bind9 po jakimś czasie kasuje ten 'cache' z pamięci?
Czy jest możliwość wykonania takiego Cache Serwera?
Z góry dzięki za odpowiedź.
Ostatnio edytowany przez sqrtek (2014-07-16 21:43:31)
Offline
Mały cache DNS w domu na kompie, do firmy wystarczy zmienić parametr listen (dopisać adresy faktycznych interfejsów) i otworzyć port 53 tcp/udp na interfejsie do sieci lan.
Tak wygląda mój named.conf:
acl "xfer" { none; }; acl "trusted" { }; options { listen-on-v6 { ::1; }; listen-on { 127.0.0.1; 10.0.0.1; }; allow-query { trusted; }; allow-query-cache { trusted; }; allow-transfer { none; }; allow-update { none; }; forward first; forwarders { 208.67.220.220; 208.67.222.222; 8.8.8.8; 8.8.4.4; 2620:0:ccc::2; 2620:0:ccd::2; 2001:4860:4860::8888; 2001:4860:4860::8844; }; dnssec-enable yes; dnssec-validation yes; minimal-responses yes ; }; logging { channel default_log { print-time yes; print-severity yes; print-category yes; }; category default { default_log; }; category general { default_log; }; }; controls { }; trusted-keys { }; view "lokalny" { allow-transfer { none; }; allow-notify { none; }; recursion yes; zone "127.in-addr.arpa" IN { type master; notify no; }; zone "." in { type hint; }; }; view "external" { match-clients { any; }; recursion no; allow-query {none;}; };
Działa dość grzecznie, adresy do forwardu tam masz wprowadzone.
Całego Binda konfiguruję zazwyczaj przy pomocy Webmina, moduł do Binda jest w nim wystarczająco skuteczny.
Ostatnio edytowany przez Jacekalex (2014-07-16 23:51:24)
Offline
Dzięki, skonfigurowałem binda na Serwerze wzorując się na Twoim konfigu i nie jestem pewny czy on poprawnie działa hmm..
named.conf
acl "trusted" { }; options { empty-zones-enable no; listen-on-v6 { ::1; }; listen-on { 127.0.0.1; 192.168.0.153; 192.168.0.152; }; allow-query { trusted; }; allow-query-cache { trusted; }; allow-transfer { none; }; allow-update { none; }; forward first; forwarders { 208.67.220.220; 208.67.222.222; 8.8.8.8; 8.8.4.4; 2620:0:ccc::2; 2620:0:ccd::2; 2001:4860:4860::8888; 2001:4860:4860::8844; }; dnssec-enable yes; dnssec-validation yes; minimal-responses yes ; }; logging { channel default_syslog { file "/etc/bind/log_named"; print-time yes; severity warning; print-severity yes; print-category yes; }; category default { default_syslog; }; category general { default_syslog; }; }; controls { }; trusted-keys { }; view "lokalny" { allow-transfer { none; }; allow-notify { none; }; recursion yes; zone "127.in-addr.arpa" IN { type master; file "/etc/bind/db.127"; notify no; }; zone "." in { type hint; file "/etc/bind/db.root"; }; zone "db.local" IN { type master; file "/etc/bind/db.local"; notify no; }; }; view "external" { match-clients { none; }; recursion no; allow-query {none;}; };
/var/log/daemon.log
Jul 17 01:50:25 arm named[31110]: reading built-in trusted keys from file '/etc/bind/bind.keys' Jul 17 01:50:25 arm named[31110]: using default UDP/IPv4 port range: [1024, 65535] Jul 17 01:50:25 arm named[31110]: using default UDP/IPv6 port range: [1024, 65535] Jul 17 01:50:25 arm named[31110]: no IPv6 interfaces found Jul 17 01:50:25 arm named[31110]: listening on IPv4 interface lo, 127.0.0.1#53 Jul 17 01:50:25 arm named[31110]: listening on IPv4 interface eth0, 192.168.0.152#53 Jul 17 01:50:25 arm named[31110]: generating session key for dynamic DNS Jul 17 01:50:25 arm named[31110]: sizing zone task pool based on 3 zones Jul 17 01:50:25 arm named[31110]: set up managed keys zone for view lokalny, file 'XXX.mkeys' Jul 17 01:50:26 arm named[31110]: set up managed keys zone for view external, file 'XXXX.mkeys' Jul 17 01:50:26 arm named[31110]: the working directory is not writable
I teraz najważniejsze pytanie, bo gdy konfiguruję komputer lokalny i dodaje adres serwera czyli np. 192.168.0.152, to przy testowaniu szybkości odpytywania konkretnej strony, to wszystko działa elegancko czasy 2-4MS. Tylko że gdy pozostawię na komputerze lokalny WYŁĄCZNIE adres tego serwera czyli 192.168.0.152, to w ogóle nie wczytuje mi stron i muszę dodać również nameservery 208.67.220.220; 208.67.222.222.. czy to tak ma działać? Czy sam adres serwera lokalnego powinien wystarczyć?
Offline
Powinien wystarczyć, ewentualnie patrz w logach, dlaczego nie odpowiada.
for x in $(seq 1 5); do sleep 3 && dig onet.pl | egrep -i '(server:|msec)'; done; ;; Query time: 25 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1)
SOA#1
Ostatnio edytowany przez Jacekalex (2014-07-17 04:44:42)
Offline
Hmm wydaje mi się że to naprawiłem, tylko że: Komputer za 1 razem jak odpytuje np. onet.pl to ma czas na poziomie 50MS, potem już 2-5MS, ale po jakimś czasie znowu to powraca do 50MS.. czy to tak ma być? Czy po prostu mozna z tym jeszcze coś zrobić?.
Offline
Po przekroczeniu TTL wpisy wygasają
Offline
Time (s) | Query |
---|---|
0.00015 | SET CHARSET latin2 |
0.00006 | SET NAMES latin2 |
0.00112 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='52.14.209.100' WHERE u.id=1 |
0.00071 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '52.14.209.100', 1732826697) |
0.00042 | SELECT * FROM punbb_online WHERE logged<1732826397 |
0.00080 | DELETE FROM punbb_online WHERE ident='3.135.206.25' |
0.00070 | DELETE FROM punbb_online WHERE ident='3.142.98.60' |
0.00069 | DELETE FROM punbb_online WHERE ident='3.21.159.223' |
0.00081 | DELETE FROM punbb_online WHERE ident='85.208.96.194' |
0.00346 | SELECT topic_id FROM punbb_posts WHERE id=271669 |
0.00007 | SELECT id FROM punbb_posts WHERE topic_id=26137 ORDER BY posted |
0.00063 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=26137 AND t.moved_to IS NULL |
0.00006 | SELECT search_for, replace_with FROM punbb_censoring |
0.00125 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=26137 ORDER BY p.id LIMIT 0,25 |
0.00058 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=26137 |
Total query time: 0.01151 s |