Route domain alapján

 ( redman | 2019. február 13., szerda - 16:30 )

Sziasztok,

Nagyjából utánanéztem, de szeretném a ti véleményeteket is hallani.
Mi szükséges ahhoz, hogy otthon (DIGI), ne port alaján tudjak belső gépeket elérni (minden portját), hanem domain név alapján.
rpi.example.com - 192.168.1.10
server.example.com - 192.168.1.20
camera.example.com - 192.168.1.30
stb...

Van ilyen lakossági router? Csak aranyáron találtam.
Most a portforward megoldja, de elgánasabb lenne a fenti megoldás, mint ez: example.com:1010, example.com:1020, example.com:1030
Ráadásul akkor tudnék külön domain neveket is adni a gépeknek és arra Let's Encrypt-tel https-t gyártani.

üdv: redman

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Mindent bedobsz a proxy szerverre, azzal meg tudod csinálni.

Fedora 28, Thinkpad x220

...a HTTP-vel és még 1-2 protocol-al.

----------------------------------^v--------------------------------------
"Probléma esetén nyomják meg a piros gombot és nyugodjanak békében!"

CNAME és reverse proxy-val, pl nginx megoldható. De IPv6 lenne az igazán elegáns.

Pontosan - Futass 1 DB reverse proxy servert - kulonbozo portokon a kulonbozo backendek. A backendekre gyartass letsencryptet. A backend portokrol proxy_forward a tulajdonkeppeni szolgaltatasra.

Miert a backendekre? A proxy-n magan jelentosen egyszerubb es egyazon helyen tud kezelni mindent.

Rosszul fejeztem ki magam. A backendeknek megfelelo domainnevek legyenek felkonfiguralva a proxyn mint egy name-virtual host es azokra legyen kerve letsencrypt.

Amúgy ja, tényleg ez lenne a legértelmesebb, már ha a minden port elérése nem a minden port elérését jelenti.

lan->lan irany: En egy kicsit mashogy kozelitenem meg a kerdest. Ha mar ilyen kell, akkor fix infrastrukturad van, magyaran barmely routerben be tudsz allitani host-IP osszerendelest.
Ha ez megvan, te mint uzemelteto tudod, hogy melyik IP micsoda, akar az elozo lista alapjan is. Utana mar csak ez a lista kell es nev alapjan meg tudod szolitani a gepeidet belso halozaton, ha te is ott vagy valamilyen modon es a routered a DNS kiszolgalod is egyben.
A legolcsobb szappantartoval is mennie kell.
Nekem mindenem rogzitve van xxx.lan.->1.2.3.4 formatumban es eleg a host nevet tudjam.

Ha wan->lan iranyban akarod megoldani, akkor valami olyan kell, ami tud reverse-proxy lenni, vagy mondjuk valakitol veszel egy tunneling szolgaltatast. CloudFlare tud a tuzfalad moge linkelodni szepen. (Hint argo tunnel).
Elso esetben nemileg okosabb router kell, de barmely openwrt kepes doboz jo erre egy nginx-szel. Minimal befektetes szerintem.
A CloudFlare Argo havi keves penzbe kerul es nem kell routert piszkalj. Itt mondjuk kicsit rugalmatlanabb a cucc. De nezz utana.
(En itt egy OpenWRT/Linux router + reverse proxy iranyba lepnek elsore.)

Digi hálózaton? IPv6 - mindegyiknek saját publikus IPv6 címe van.
Mikrotik vagy bármely OpenWRT képes SOHO router a barátod.

szvsz sokkal jobban jársz egy VPN-nel.
Akkor VPN kapcsolódás után, pont ugyan úgy eléred, mintha otthon lennél.

Ha "kitálalod" az otthoni cuccaidat, akkor rövid időn belül biztosan feltörik.
(Persze ha az a cél, hogy az egész világ elérje, akkor hajrá)

--
zrubi.hu

mikrotik?
Az FQDN-t mostmár egészen rendesen kezeli address-list-ben.
tűzfal szabály alapján pedig tudsz routing-mark -ot adni.

Bocs, elnéztem. Kifele OK, de befelé? hát nem tudom...

A minden portját kicsit fejtsd ki. Mert az valószínűleg nem nagyon fog menni, hogy minden portját elérd.

Sajnos a reverse proxyra nem találtam copy-paste configot, de elvileg nem tűnik lehetetlennek, hogy ahogy írták, a bejövő csomagokat megjelölve, a belső láb(ak)on annak megfelelően dobálod szét.

Én még azért a reverse-DNS-sel is óvatosan bánnék: a digi hálózatában sok a mezei swtich. Nem jó arra ébredni, hogy a környék összes gépe rajtad keresztül akarja feloldatni a domainét.
Valaki fentebb a VPN-t javasolta. Vele értek egyet.

+1, de szerintem az ssh-tunnel is elég lenne neki.

--
"Nem akkor van baj amikor nincs baj, hanem amikor van!"
Népi bölcsesség

Ez hogy függ össze ?

--
openSUSE 42.2 x86_64

"Mi szükséges ahhoz, hogy otthon (DIGI), ne port alaján tudjak belső gépeket elérni (minden portját), hanem domain név alapján."

Csoda :) Ha egy publikus ip címed van, 64k porttal, akkor azon nem fogsz elérni 3*64k portot :)

Amit a köznyelv NAT-ként ismer az valójában PAT. Persze ha csak egy gép lóg a soho router mögött az NAT, de általában ma már ez nem jellemző.
A valódi NAT több külső ip cím fordítását jelenti azonos számú (esetleg kevesebb) belső ip címre.
Sajnos az ISP-k külön általában felárért sem tudnak több fix ip címet adni egy címre. Ha mégis adna a DIGI ez már megoldás a 3*64k port problémára.
Ha nem ad csak egy fix ip címet akkor is van megoldás. Kell egy külső szerver valódi vagy virtuális több ip címmel. Felhőszolgáltatónál nem annyira fontos a nagy adatbiztonság, mert a külső ip címen úgysem lesznek adatok. Ami számít, hogy olcsó legyen az adatforgalom vagy ha lehet korlátlan. Ugyanis ezzel a megoldással minden adatforgalom ott fog átmenni. A külső szerver ip címeire kell belőni a domain neveket. VPN kapcsolatot kell létesíteni a külső szerver és az otthoni hálózat között. A külső ip címeket pedig NAT-tal (VPN kapcsolaton keresztül) a belső ip címekre kell fordítani a külső szerveren ami lényegében így router funkciókat lát el. Mivel a VPN feladata ebben a hálózati topológiában nem az adatok elrejtése lehet gyengébb titkosítást is alkalmazni, csökkentve a külső szerver terheltségét és ezáltal virtuális felhőszolgáltatás esetén az árát.
A a külső szerver ip címei mögött az otthoni hálózaton levő belső gépeket lehet elérni az összes portjukkal együtt. Érdemes jól átgondolni, hogy valóban szükség van-e erre, mert a fenti megoldás olcsóbb és hatékonyabb is ha elég 1*64k port összesen.
A külső szervernél domain nevek száma + 1 fix ip címre lesz szükség, mert magának a külső gépnek is kelleni fog egy az eléréséhez.
Operációs rendszernek a külső gépre ebben az esetben ajánlom a VyOS-t.

Szép levezetés volt ez (bár a sok varázslás helyett akkor már inkább ipv6), de szerintem itt mindösszesen egyébként annyi van, hogy néhány kitüntetett portot elérjen standard módon több fele, szóval jó eséllyel néhány proxy típusú cucc elég lehet neki. Ugye pl valami http proxy, ami mondjuk host header alapján szétszórja.

Én is IPv6-ot javasoltam fent.
Nagyon speciális eset lehet az, amikor többször kell az összes 64k port, ráadásul otthon laknak a szerverek DIGI hálózaton. Plusz csak IPv4 megfelelő.
A téma teljessége miatt írtam a fentit. :)

Egy port kell neki a pulic felé: 443
A reverse proxy majd Host header alapján szépen szétdobja a megfelelő backendre.

Már ha figyelmen kívül hagysz a httpn kívül minden mást.

Tegyél fel egy https://traefik.io

Intézi neked a letsencryptet, tudsz loadbalance-olni, SSL-t terminálni minden típusú backendhez.
Tudja neked az aldomaint regisztrálni a legtöbb értelmes DNS-be.
A backendet tudod dinamikusan hozzaadni a frontendhez k8s, docker-compose tagekkel, service discovery-bol pl Consullal stb.
Persze tudsz statikusan is backendeket beallitani.
Zseniális

A "minden portját" elismerem kicsit erős volt.

Valójában tényleg csak a belső gépek szolgáltatásait szeretném kívülről elérni port megadás nélkül

server.example.com
homeassistant.example.com
kitudjamegmivanaroutermogott.example.com

Tudok élni a mostani helyzettel, de ha megoldható egyszerűen és olcsón akkor megoldanám

üdv: redman

http://www.redphoto.hu

Többen javasolták már: vpn kell neked, nem domain.

--
"Nem akkor van baj amikor nincs baj, hanem amikor van!"
Népi bölcsesség