Portál AbcLinuxu, 20. července 2025 19:30
A odkud na ně chcete komunikovat, z internetu?Z té VPN. Z Internetu se na RFC1918 adresy komunikovat samozřejmě nedá. Problém je v tom, že si nemůžu do zóny přidat
intranet.hrach.eu IN A 10.11.22.33a pak nastavit klientovi VPN a jemu by to pak fungovalo. Ale je pravda, že tazatel má site-to-site, takže má nejspíš resolver pod kontrolou.
A co tedy řešíš?Řeším, jak se odkazovat se na zařízení ve vnitřní síti přes DNS jména, a to i v případě, kdy uživatelé nepoužívají resolver z té sítě - například protože public DNS zrovna frčí, nebo protože se tam připojují VPNkou z domova, kde používají svůj vlastní resolver.
Jinak bych doménu hrach.eu poslal přeložit na internet a pro intranet.hrach.eu bych vrátil tu privátní IP.To právě nejde, protože některé resolvery je začaly blokovat jako ochranu proti DNS rebindingu.
Problém je v tom, že si nemůžu do zóny přidatProč by to nešlo?intranet.hrach.eu IN A 10.11.22.33a pak nastavit klientovi VPN a jemu by to pak fungovalo.
Co pamatuju, tak proxy.pac socks 5 rozumí a Google mi to potvrzuje.Řeč ale nebyla o SOCKS5 obecně, ale o tom, že se požadavky na SOCKS5 proxy posílají s DNS názvy a ne s IP adresami, takže DNS názvy pak překládá ten proxy server. Tedy to, co dělá Firefox, když zapnete volbu „Použít proxy server pro DNS při použití SOCKS v5“. Jak se tohle nastavuje v proxy.pac?
return "SOCKS5 localhost:8080; SOCKS5 localhost:8081";pro jistotu schéma větvení (zdroj)
function FindProxyForURL(url, host) { // variable strings to return var proxy_yes = "PROXY 10.130.16.60:8082";tak by to na proxy mělo odesílat ten provoz, co je definovaný, ať už to je IP nebo nějaké FQDN.
var proxy_no = "DIRECT";
if (shExpMatch(url, "http://finance.yahoo.com*")) { return proxy_no; }
if (shExpMatch(url, "http://news.yahoo.com*")) { return proxy_no; }
if (shExpMatch(url, "http://www.google.com*")) { return proxy_no; }
if (shExpMatch(url, "http://video.google.com*")) { return proxy_no; }
if (shExpMatch(url, "http://zh-cn.facebook.com*")) { return proxy_no; }
if (shExpMatch(url, "http://10.130.16.150/*")) { return proxy_no; }
// Proxy anything else return proxy_yes;
isResolvable()
, isInNet()
nebo dnsResolve()
.
Takže DNS resolver, má-li být použitelný, musí umět tu ochranu pro určitou doménu vypnout, nebo jí umět vypnout alespoň globálně.Mně šlo o to, když se do VPN připojují vzdáleně uživatelé, u kterých netuším, jaký resolver používají (a může se to měnit když se přesunou). Jediné co mě napadlo je nastavit jim (např. v OpenVPN přes
push dhcp-option DNS
) svůj resolver pro všechno…
Jediné co mě napadlo je nastavit jim (např. v OpenVPN přes push dhcp-option DNS) svůj resolver pro všechno…To se přeci s VPN běžně dělá. Jinak by vám nefungovaly při připojení přes VPN DNS názvy v místní síti. Bohužel je pořád ještě doba, kdy jsou naprosto běžné IPv4 NATy, privátní IPv4 adresy a domény
.local
.
To se přeci s VPN běžně dělá.Mně to přijde jako prasárna: 1) šmíruju tím nesouvisející aktivity uživatele, 2) uživatel nemůže být (bez fakt husté konfigurace zahrnující vlastní resolver a delegace) připojen do dvou VPN současně.
Jinak by vám nefungovaly při připojení přes VPN DNS názvy v místní síti.Já strkám názvy z vnitřní sítě do veřejného DNS stromu.
Bohužel je pořád ještě doba, kdy jsou naprosto běžné IPv4 NATyŘešení „hurá, zahodíme openvpn a všude bude ipsec“, které navrhuje Michal Kubeček výše, a které by se mi taky docela líbilo, podle mě narazí na to, že zatímco pro openvpn stačí povolený jeden TCP nebo UDP port, ipsec bude z různých veřejných sítí blokován buď úmyslně, nebo chybnou konfigurací.
privátní IPv4 adresyTrochu se bojím, že to někoho napadne i u fc00::/7.
.local
a podobné, není jiné řešení. Ono je dokonce běžné do VPN směrovat celý provoz, oproti tomu jsou DNS dotazy prkotina. A i když to tak není, připojení do dvou VPN bude často problém i z důvodu konfliktu rozsahů privátních adres. IPv4 způsobuje mnohem víc problémů, než jenom NAT…
Já strkám názvy z vnitřní sítě do veřejného DNS stromu.Já to tak také dělám. Když už musíme používat privátní IPv4 adresy, je to pořád lepší, než používat ještě privátní domény. Blokovat privátní rozsahy v DNS resolverech je chyba a je potřeba to řešit v těch resolverech.
Řešení „hurá, zahodíme openvpn a všude bude ipsec“, které navrhuje Michal Kubeček výše, a které by se mi taky docela líbilo, podle mě narazí na to, že zatímco pro openvpn stačí povolený jeden TCP nebo UDP port, ipsec bude z různých veřejných sítí blokován buď úmyslně, nebo chybnou konfigurací.
Ať čtu původní dotaz jak chci, vyznívá mi jako dotaz na implementaci permanentního propojení dvou (nebo více) firemních poboček, ne jako dotaz na to, jak umožnit lidem připojení do sítě tak, aby to nějak fungovalo i z všelijakých podivných hotelových, letištních či obchoďákových sítí. A pro takový účel mi vxlan + IPsec připadá jako zdaleka nejvhodnější (pokud nestačí IPsec samotný).
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.