Jinak to trochu smrdí :-)
V zasade je to poziadavka zakaznika, aby si mohol pridat zariadenie, ktore je v inom subnete.
Je to v c# a broadcast cez udp
To ti neprojde pres router. Pokud je síť routovaná tak se na ni nedostanes.
Samozrejme, v tomto pripade nie.
trochu to tu opat obnovim, nakolko sme to zacali aktivne riesit. tak ako som spominal, riesime to cez UDP broadcast, zariadenia maju nejaku port, na ktory sa posiela sprava a prijata odpoved je dane zariadenie. Cize napr. 10.42.8.255 atd. Dopatral som sa k jednej moznosti a to konkretne directed broadcast. Myslite, ze to je mozna cesta?
Jsou dvě varianty broadcastu:
A) globální broadcast = cílová adresa 255.255.255.255 .
Toto podle mého neproleze routerem, nejspíš to ani není konfigurovatelné (na Ciscu).
V rámci L2 LAN globální broadcast funguje velmi dobře. Pokud hledaná zařízení ještě ani nemají IP adresu ve správném subnetu (mají nějaký default), můžete použít broadcast pro dotaz i odpověď, případně pro druhou transakci, ve které nastavíte žádanou unikátní IP adresu a masku, aby se dál už dalo bavit unicastem v rámci legitimního subnetu.
B) lokální = per subnet = "directed" broadcast, např. 192.168.3.255/24 (vymyslel jsem si).
Toto lze na routerech zapnout - přinejmenším na Ciscu. Příkaz "no ip directed-broadcast" býval v začátečnických kursech Cisco mezi zcela základními bezpečnostními pravidly, od verze 12 se jedná o default (který není vidět v "show running") - ale dá se stále povolit.
Pokud routeru předáte paket s cílovou adresou, která je lokálním broadcastem v některém "directly connected" subnetu, tak ji přeloží na L2 broadcast s kýženým výsledkem.
Pozor, pokud se pokusíte broadcastem oslovit subnet, který router *nezná* jako "directly connected", tak se directed broadcast mine účinkem (skončí na default routu, nebo na nějakém specifickém routu který není "directly connected", pokud takový existuje v konfiguraci).
V rámci L2 segmentu (bez průchodu routerem) samozřejmě můžete "directed broadcast" používat zcela svobodně, pokud vám Vaše programovací prostředí dovolí. Ale jste omezen znalostí lokálního subnetu, a musí s ním umět pracovat i oslovené slave zařízení = musí být už nakonfigurované na správný subnet a mít přidělenou IP adresu (a jenom se znuděně ozve "jo jasně, tady jsem", klidně unicastem). Ještě jsem uvažoval tím směrem, že by slave mohl poslouchat na raw socketu (nebo lipbcap), aby vzal úplně všechno bez ohledu na subnet, a pokud vidí directed broadcast (= "konkrétní IP adresu" ale na L2 broadcast FF:FF:FF:FF:FF:FF) tak se ho může "chytit" - ovšem pokud nemá zatím přidělenu IP adresu z dotyčného subnetu, tak by si nemělo žádnou konkrétní svévolně vzít, tzn. jako řešení vidím jedině, použít v odpovědi opět "directed broadcast" adresu, a to jako cíl i jako zdroj. Možná by v tom případě bylo jednodušší, aby si slave prostě po zapnutí líznul DHCP. Pak může chytat directed broadcasty normálně přímo, bez blbnutí s raw socketem apod.
A pak mě ještě napadá, zkusit to multicastem :-) Ale je s tím spíš práce navíc, má to svoje problémy a bugy a konfigurace na routerech (a switchích!) apod. Radši se držte broadcastu, ten by měl prolézt aspoň v rámci L2 všude.
Tzn. docela důležitou otázkou zůstává: je to skrz router, nebo jenom v rámci L2 média? ...