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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2016-01-07 16:01:47

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Doczepianie lokalnej domeny w zapytaniach DNS

Mam u siebie sieć lokalną, która ma domenę mhouse.lh . Na routerze siedzi sobie dnsmasq (DNS+DHCP). Na swoim kompie mam pobieraną konfigurację via DHCP za wyjątkiem serwerów DNS. Te serwery mam konfigurowane statycznie i w sumie plik resolv.conf wygląda tak:

Kod:

nameserver 127.0.0.1
search mhouse.lh

Ten 127.0.0.1 to adres dnsmasq, który mam zainstalowany lokalnie na kompie i robi on za zwykły cache zapytań DNS. Mam tam określone min. takie wpisy:

Kod:

server=127.0.2.1#5353
server=/pool.ntp.org/208.67.222.222
server=/mhouse.lh/192.168.1.1#53

Zatem wszystkie zapytania DNS na moim kompie trafiają do dnsmasq, a ten z kolei rozdziela je na poszczególne serwery DNS. Ten 127.0.2.1 to dnscrypt-proxy, który szyfruje zapytania i śle je dalej w świat. Pozostałe dwa wpisy odpowiadają za zapytania o poszczególne domeny. I tak pool.ntp.org (serwery czasu) leci bezpośrednio do 208.67.222.222, a zapytania o moją lokalną domenę są przesyłane do dnsmasq na routerze. W takim przypadku jeśli wpiszę nazwę routera (the-mountain), to nie muszę określać samej domeny, co wygląda mniej więcej tak:

Kod:

# ping the-mountain
PING the-mountain.mhouse.lh (192.168.1.1) 56(84) bytes of data.
64 bytes from gateway (192.168.1.1): icmp_seq=1 ttl=64 time=4.29 ms
^C
--- the-mountain.mhouse.lh ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 4.298/4.298/4.298/0.000 ms

Jak widać wpisałem  the-mountain , a ping poszedł do the-mountain.mhouse.lh .

Do tej pory wszystko działa zgodnie z planem. Niemniej jednak, gdy odpalę torrenta, to do tego routera w sieci dociera cała masa zapytań DNS, które mają ustawioną domenę mhouse.lh . I to jest o tyle ciekawe, bo przecie nie powinno się tak dziać. Statystyki wyglądają mniej więcej tak:

Kod:

dnsmasq[1598]: time 1452171721
dnsmasq[1598]: cache size 10000, 0/931 cache insertions re-used unexpired cache entries.
dnsmasq[1598]: queries forwarded 1102, queries answered locally 1379
dnsmasq[1598]: queries for authoritative zones 0
dnsmasq[1598]: server 192.168.1.1#53: queries sent 283, retried or failed 0
dnsmasq[1598]: server 208.67.222.222#53: queries sent 2, retried or failed 0
dnsmasq[1598]: server 127.0.2.1#5353: queries sent 817, retried or failed 2

Analizując zapytania DNS, mogę zobaczyć, że:

Kod:

IP 192.168.1.150.61575 > 192.168.1.1.53: 52322+ A? tracker.istole.it.mhouse.lh. (45)
IP 192.168.1.150.48486 > 192.168.1.1.53: 26976+ AAAA? tracker.istole.it.mhouse.lh. (45)

Zatem do adresu trackera (tracker.istole.it) została dodana moja lokalna domena (mhouse.lh). I tu się nasuwa pytanie WTF? xD

Póki co, udało mi się ten problem wyeliminować przez usunięcie "search mhouse.lh" z pliku /etc/resolv.conf . Tylko jeśli nie będę miał tej linijki, to mi nie będą działały zapytania pod kątem samego hostname.

Dodam, że nie wszystkie trackery mają doczepianą lokalną domenę, np. tracker.openbittorrent.com już nie ma. Pinngując te dwie przykładowe domeny, okazuje się, że tracker.istole.it nie odpowiada, natomiast tracker.openbittorrent.com działa.

Sprawdziłem przykładową domenę (dupaa.com), ona również nie odpowiada i w logu mam coś takiego: dupa.com.mhouse.lh

Kod:

15:45:32.035381 IP 127.0.0.1.18520 > 127.0.2.1.5353: 1536+ A (QM)? dupaa.com. (27)
15:45:37.040620 IP 127.0.0.1.18520 > 127.0.2.1.5353: 1536+ A (QM)? dupaa.com. (27)
15:45:38.045687 IP 127.0.2.1.5353 > 127.0.0.1.18520: 1536 ServFail 0/0/1 (38)

15:45:38.046118 IP 192.168.1.150.6289 > 192.168.1.1.53: 57153+ A? dupaa.com.mhouse.lh. (37)

Zatem dupaa.com trafia do dnsmasq na lokalnej maszynie, jest podawana dnscrypt-proxy i ten zgłasza błąd. Czemu tutaj nie zakańcza się przetwarzanie tej domeny? Czemu za chwilę doczepiany jest do niej mhouse.lh mimo, że dupaa.com ma przecież domenę. xD Coś w konfiguracji lokalnego dnsmasq trzeba dopisać czy poprawić? Jak coś to tu jest mój plik konfiguracyjny dnsmasq: http://pastebin.com/r2p5eC3f

Ostatnio edytowany przez morfik (2016-01-07 16:04:27)

Offline

 

#2  2016-01-07 16:23:50

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Doczepianie lokalnej domeny w zapytaniach DNS

o ile pamiętam dnsmasq korzysta z /etc/hosts (lub innego pliku który mu podasz). czyli skasowanie search w resolv.conf i dopisanie lokalych adresów powinno pomóc...


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#3  2016-01-07 16:51:00

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Doczepianie lokalnej domeny w zapytaniach DNS

No tak tylko, że jeśli mam powiedzmy 100 kompów w sieci, to dopisywanie każdego w /etc/hosts trochę się raczej mija z celem. xD

Offline

 

#4  2016-01-07 18:38:13

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Doczepianie lokalnej domeny w zapytaniach DNS

[quote=morfik]No tak tylko, że jeśli mam powiedzmy 100 kompów w sieci, to dopisywanie każdego w /etc/hosts trochę się raczej mija z celem. xD[/quote]
Coś mi się zdaje, ze zaczynasz od dupy strony.

Jeśli np serwer DNS  (DNSMASQ) odpowie dla XXX adresów zawsze adresem 192.168.19.112, na którym będzie sobie wisiał np Nginx, i przepisywał adresy [b]REQUEST_URL/REQUEST_URI[/b] na [b]REQUEST_URL.mhouse.lh/REQUEST_URI[/b] zwracając nagłówek 301, to będziesz miał dokładnie to, o co pytasz.

Da się to zrobić przy pomocy zmiennych serwera i kawałka regexa (wycinającego nazwę domeny ze zmiennej), na każdym serwerze WWW.

Chociaż przy 100 kompach to chyba raczej [b]Squid[/b] byłby właściwszy do takich zabaw, ale nie mam pomysłu, jak w jego konfigach wyrzeźbić dynamiczne dopisywanie domeny [b]mhouse.lh[/b] do REQUEST_URL - choć to na pewno wykonalne.

Ostatnio edytowany przez Jacekalex (2016-01-07 18:42:03)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#5  2016-01-07 19:06:57

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Doczepianie lokalnej domeny w zapytaniach DNS

Chodzi generalnie o znajdywanie kompów w sieci. xD Przykład, jeśli mam powiedzmy kilka kompów, i chcę się logować na ssh do nich, to musiałbym wpisywać IP albo całą nazwę+domenę. A tak to tylko "ssh hostname" i problem z głowy. xD To samo tyczy się pozostałych usług i generalnie ten dnmasq jest w stanie wszystkie takie zapytania obrobić i dodać im domenę. Wszystko jedno czy ten lokalny dnsmasq czy ten na routerze. Różnica jest tylko w tym, że ja na swoim kompie nie korzystam z DNS tego co mam na routerze. Wszystkie pozostałe kompy w sieci używają DNS routera. Dlatego mam taki rozdział na swoim kompie, by te zapytania z mhouse.lh szły do tego routera w sieci, tak na wszelki wypadek, gdybym coś tam później kombinował z tym lokalnym DNS.

Na dobrą sprawę to próbuję ustalić dlaczego jest wysyłane to drugie żądanie DNS.

Ostatnio edytowany przez morfik (2016-01-07 19:09:04)

Offline

 

#6  2016-01-09 15:18:54

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Doczepianie lokalnej domeny w zapytaniach DNS

Popytałem trochę na liście mailingowej dnsmasq i w sumie wychodzi na to, że tego się nie da tak zrobić jak ja bym chciał. xD

Zarówno opcja "search" jak i "domain", które można określić w pliku /etc/resolv.conf będą doklejać "mhouse.lh" w przypadku, gdy zapytanie do upstreamowego serwera DNS się nie powiedzie. To taki fallback czy coś.

Można wymusić by system tego nie robił przez dopisanie kropki na końcu domeny, np. "dupaa.com.", tylko chyba żadna aplikacja tego nie robi. xD No i jak się ma ten "search" czy "domain" wpisane, to można przekierować człowieka gdzie się tylko chce, zwłaszcza w sieciach niezaufanych. To chyba tyle w tym temacie.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)

[ Generated in 0.009 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00009 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00090 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='18.191.62.68' WHERE u.id=1
0.00148 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.191.62.68', 1732761333)
0.00051 SELECT * FROM punbb_online WHERE logged<1732761033
0.00074 SELECT topic_id FROM punbb_posts WHERE id=295087
0.00109 SELECT id FROM punbb_posts WHERE topic_id=28067 ORDER BY posted
0.00060 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=28067 AND t.moved_to IS NULL
0.00004 SELECT search_for, replace_with FROM punbb_censoring
0.00081 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=28067 ORDER BY p.id LIMIT 0,25
0.00078 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=28067
Total query time: 0.00708 s