Windows 10 DLNA - hálózatfelderítés portok és protokollok

Sziasztok!

Szenvedek két napja ezzel, és mivel nem sikerült megoldanom megannyi próbálkozás után sem, megkérdezem itt, hátha más is csinált hasonlót. Adott egy Synology NAS és egy Windows 10 Pro-t futtató PC, és pár "okos TV". Az egész onnan indult hogy az IOT eszközeim (nálam ide tartozik a TV is) el szeretném választani a belső hálózattól, ezért külön VLAN-ba tettem őket. A tűzfal szoftver PfSense CE, 2.6 verzió.

Bevezetőnek: ez egy nagyon jó kis írás, ha valaki még nem olvasta volna (és igen, magyar):

https://www.jtechlog.hu/2022/01/05/dlna-otthoni-mediahalozat.html

Az SSDP felderítés rész a lényeg. A Python kód nagy segítség volt nekem is, a Synology NAS szépen válaszol is.

Eddig eljutottam:

- Engedélyeztem a tűzfalon hogy az érintett forrásokból a 239.255.255.250 címre érkező kéréseket fogadja az 1900-as UDP porton
- UDP Broadcast relay-el elküldöm a másik érintett VLAN-ba is a discovery üzeneteket: https://github.com/marjohn56/udpbroadcastrelay
- A tűzfalon engedélyeztem a szükséges portokat a VLAN-ok egyes eszközei között: https://community.synology.com/enu/forum/17/post/15530

Ez eddig szuperül működik is, a Synology NAS-ról az engedélyezett eszközökről elérhető a tartalom a másik VLAN-ból, működik a felderítés is, királyság. Na de ami nem sikerül: a Windows saját DLNA szerverét hasonlóan felderíthetővé / elérhetővé tenni. Az érdekes az, hogy az a Python szkript amivel tesztelek, nem is jelez választ a Windows-os gépről. Két Windows-os gép egy alhálózatban pedig szépen látja egymást. Jól sejtem hogy a Windows nem ezt a fajta hálózatfelderítést használja? Gyanítom nem, egy sima VLC-nek is sokkal több idő kell hogy észlelje a Windows-os gépeket mint a NAS-t. Kérdésem: milyen portokat / protokollt használ a Windows beépített DLNA szervere? Miket kell engedélyezzek a tűzfalon? Azt már sikerült kideríteni hogy a VLC magát a tartalmakat a 2869-es porton szedi, de a felderítés hogyan működik? Linkelek két oldalt amiket átnéztem, véleményem szerint releváns információkat tartalmaznak, de így sem sikerült megoldanom.

https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-ssdp/d…

https://answers.microsoft.com/en-us/windows/forum/all/windows-firewall-…

Köszönöm a segítséget!

Hozzászólások

sub

én 3 éve próbálok működő leírást találni site-2-site VPN 2 oldala között átvinni DLNA-t opnsense-n keresztül, semmire nem jutottam

Szerintem ez megoldható, én így állnék neki:

- Layer 2 (OpenVPN esetén TAP) VPN legyen
- Engedélyezd a tűzfalban az adott interfészeken a 239.255.255.250 címre UDP 1900 porton érkező kéréseket
- Előbbinél fontos, hogy legyen bekapcsolva az "IP Options" flag
- A VPN mindkét oldalára kell egy-egy broadcast relay - lásd a nyitó hozzászólásban a linket, plusz ezt:
  https://www.michaelcalabrese.me/how-to-setup-udpbroadcastrelay-on-pfsen…
- Engedélyezd a tűzfalon a megfelelő irányból és irányba jövő csomagokat
  (A Synology NAS esetén ezek az 50001 és az 50002 TCP portok.)

Használd azt a kis Python-ban írt tool-t amit korábban linkeltem.

Én openvpn bridge irányba indulnél el ha van rá mód :)

Hell is empty and all the devils are here.
-- Wm. Shakespeare, "The Tempest"

Ezt nekem címezted? Esetemben nincs / nem kell VPN, egy helyen vannak az alhálózatok, csak eltérő VLAN-ban. Ha ricsip a címzett akkor még annyit tennék hozzá hogy a bridge azért problémás, mert akkor egy IP tartományba teszed őket, ha van DHCP szerver akkor az csak a VPN egyik oldalán lehet, így ha nincs VPN kapcsolat, nincs IP cím kiosztás sem. Az OpenVPN-nek nem kell hogy bridge-elve legyen a helyi hálózatra ahhoz hogy a végpontok között Layer 2 kapcsolat legyen. Ha pedig már van 1-1 interfész ami Layer 2-n össze van kötve, akkor mehet az általam javasolt broadcast relay, ami áttolja a megfelelő hálózatfelderítés csomagokat a megfelelő interfészekre. Így önállóan is életképesek a hálózatok, nem tolod át feleslegesen az összes broadcast és pláne nem internetkapcsolat forgalmat a tunnel-en, és szerintem működne.

ricsipnek ment, bocsi.

Nyilván a bridge úgy működik, ahogy kell neki, van ahol ez járható és jó, valahol nem, b opcóként az általad leírt relayezés is opció (ezt nem próbáltam még.)

A topik kérdést próbáltad úgy, hogy a windowsban kikapcsolod a defender tűzfalat, hogy úgy megy-e?

Hell is empty and all the devils are here.
-- Wm. Shakespeare, "The Tempest"

Köszi, de ez már bele van merge-elve az eredetibe is: https://github.com/marjohn56/udpbroadcastrelay/commits/master

Sajnos nem értem a működését a Windows SSDP-nek. Ebben kellene igazán a segítség. Nálam a sima alap "SSDP (Roku Discovery, DLNA Media, Sonos, UPnP + More)" beállítással fut a relay, ezek a csomagok át is mennek, de azt nem tudom hogy milyen portokat kell engedélyezzek a tűzfalon a Windows-os gép felé, hogy tudjanak kommunikálni. A Windows tűzfalat majd hozzá igazítom, természetesen.

Nekem a routeren az IGMP proxy beállítása és a switch-en az IGMP snooping segített, bár nem teljesen ugyanez a felállás.

Ez konkrétan a Windows 10 médiaszervere (DLNA) kapcsán működött? Jó lenne tudni hogy a Windows melyik multicast címre dobálja a csomagjait, mert akkor átlőném relay-el azt is. Eddig nem sikerült megtalálnom az infót hogy a Windows beépített DLNA (-val ezek szerinte nem teljesen kompatibilis) szervere hogyan kommunikál (milyen portokon, milyen multicast címen). Ez az infó kellene.

Részeredmények vannak. A Windows tűzfalat kikapcsoltam a teszt erejéig. Elfeledkeztem róla hogy van egy Kaspersky Internet Security is a gépen, abban is kikapcsoltam. A routeren (PfSense) engedélyeztem hogy a Windows-os gép felé minden kommunikáció engedélyezve legyen. Telnet-el látom is hogy nyitva a 2869-es TCP port. Az UDP Broadcast relay-nek köszönhetően a VLC meg is jeleníti a Windows-os gépet a másik VLAN-ban. Sajnos csatlakozni már nem lehet hozzá. A PfSense szerint csak a 2869-re csatlakozna. A lejátszás sajnos sikertelen.

A routerre/tűzfalra PIM-et kell telepítened.

L3 multicast routolására nem elég az IGMP proxy + egyebek.

Köszi, de pont a PIMD kiváltására került fel az UDP Broadcast relay... PIM-el sem működött, és most nem az a kérdés hogyan toljak át multicast csomagokat a VLAN-ok között (hiszen ez már meg van oldva), hanem hogy hogyan működik, milyen protokollokon és portokon a Windows (10) beépített "DLNA" szervere. Ezt szeretném működésre bírni. A "szabvány" DLNA működik, csak ez az MS-féle megoldás fekete doboz még.

Szerkesztve: 2023. 02. 19., v – 14:41

Belefutottam egy másik hibába. Ugyan a VLAN-ok közötti DLNA UDP broadcast működik a nyitó hozzászólásban leírtak szerint, de mivel a relay ráül (bind) a figyelt portokra, sajnos megöli az UPnP-t. :(

Nem kevés próbálkozás után összeraktam PIMD-vel, egyelőre működik. Volt 3-4 kernel panic, írnak is róla hogy a pimd tud ilyet művelni. Egyelőre úgy tűnik annyi kellett ennek elkerüléséhez hogy minden hozzárendelt aktív interfészhez kellett 1-1 tűzfal szabály (IGMP protokoll + IP Options). Várok így vele, meglátjuk pár nap alatt mi történik, stabil-e. Így egyelőre jó a DLNA és az UPnP is.

Szerkesztve: 2023. 07. 25., k – 22:41

Á, hagyjuk.