Nogle af de mest genstridige integrationsproblemer er også de mest usynlige. En sensor i et teknikrum udsender stille og roligt sine målinger. Et alarmpanel melder sin status ud på det lokale netværk. En ældre styringsenhed venter på, at en server svarer den. Det hele fungerer perfekt — lige indtil udstyret og den software, der skal høre det, ender på hver sit netværk. UDP-broadcast krydser ikke routere. Pakken råbes ud på den lokale ledning, lytterne på den ledning hører den, og alt på den anden side af den første router opdager aldrig, at det skete.
UDP Relay er Allegro IT's svar på det problem. Det er et lille, open source-værktøj, der placeres inde på udstyrets netværk, lytter efter de UDP-pakker og videresender dem — i begge retninger — til en applikation, der befinder sig et helt andet sted: en anden lokation, en VPN eller skyen. Det er gratis under MIT-licensen, og det er præcis den slags ujålede infrastrukturarbejde, der holder eksisterende udstyr i brug i stedet for at tvinge en dyr udskiftning.
Hvorfor UDP sætter sig fast
UDP-broadcast er måden, hvorpå rigtig meget hardware præsenterer sig selv — sensorer, alarmer, PLC'er, discovery-protokoller og telemetri bygger alle på det. Det er hurtigt, forbindelsesløst og perfekt til at "råbe det ud til alle, der lytter på dette netværk". Hagen ligger i selve designet: en broadcast er begrænset til sit lokale segment. Routere videresender den ikke, så i det øjeblik din overvågningsapplikation flytter til en anden bygning, et datacenter eller en cloud-server, bliver den døv.
De sædvanlige udveje er dyre. Genprogrammér udstyrets firmware, så det taler en routbar protokol — ofte umuligt på forseglet eller certificeret udstyr. Byg netværket om, så alt deler ét segment — sjældent praktisk muligt. Eller udskift velfungerende hardware med noget cloud-native — kostbart og forstyrrende. UDP Relay vælger den billige vej i stedet: det lader udstyret være præcis, som det er, og fragter stille og roligt trafikken over grænsen.
Hvad UDP Relay gør
Installér det på en vilkårlig maskine, der deler netværk med udstyret. Det lytter efter udstyrets broadcasts og videresender hver pakke til et eksternt endpoint, du vælger. Når den eksterne server svarer, fragter relayet svaret tilbage til udstyret — så request/response-protokoller fortsætter med at virke, som om alt sad på samme ledning. Adresser og porte ligger i en almindelig XML-fil, så det aldrig kræver genoversættelse at pege relayet mod en anden server eller flytte det til et andet LAN.
Sådan virker det
Relayet kører to uafhængige videresendelsesopgaver, så trafikken løber begge veje — udstyrets udgående broadcast og serverens svar får hver sin vej.
1. Lyt på LAN'et
Relayet sidder på udstyrets netværk og lytter efter dets UDP-broadcasts (eller unicast-pakker) på den port, du konfigurerer. Sæt interfacet til 0.0.0.0 for at lytte på alle interfaces.
2. Send videre til serveren
Hver opfanget pakke videresendes til det eksterne endpoint, du vælger — din server på en anden lokation, bag en VPN eller i skyen. Den oprindelige payload sendes uændret videre.
3. Opfang svaret
Relayet lytter også efter serverens svar på sin egen port — den anden videresendelsesopgave, der kører parallelt med den første.
4. Send det tilbage
Svaret sendes tilbage på udstyrets netværk, så request/response-protokoller fuldføres normalt — udstyret behøver aldrig at vide, at serveren ikke er lokal.
Under motorhjelmen er det fire endpoints — to at lytte på, to at sende til — hver et simpelt "lyt her, send dér"-par defineret i XML. En socket-timeout kan sættes per host (sæt den til at blokere uendeligt for altid-tændt lytning). Intet er hardkodet, så den samme binær betjener alle installationer.
Teknik bygget til drift i den virkelige verden
Et relay, der kun virker på en udviklers skrivebord, er en demo — ikke et værktøj. UDP Relay er bygget til at stå og køre i hjørnet af et serverrum i månedsvis, uden at nogen tænker over det.
Kør det, hvor det passer
Kør det som en altid-tændt Windows Service med Event Log-integration og færdige installationsscripts, eller kør den tværplatforms-konsol på Windows, Linux eller macOS. Samme motor under hjelmen, dit valg af host.
Moderne .NET, bred rækkevidde
Host-applikationerne kører på .NET 8, 9 og 10. Kernemotoren er bygget mod .NET Standard 2.0, så den kan indlejres i alt fra klassiske .NET Framework-apps til det nyeste .NET. Både IPv4 og IPv6 understøttes og registreres per endpoint.
Bygget til at blive oppe
Hvis det eksterne endpoint kortvarigt er utilgængeligt, ryster relayet det af sig og kører videre i stedet for at dø lydløst — en regressionstestet garanti. Annullerbar async-I/O giver rene, hurtige nedlukninger og deterministisk oprydning af sockets.
Testet og automatiseret
En xUnit-testsuite dækker motoren — inklusive en loopback-rundtur og tilfældet med et utilgængeligt endpoint — og GitHub Actions kører hele build- og testforløbet ved hver ændring.
Logning er pluggbar via det standardiserede Microsoft.Extensions.Logging-pipeline, så det samme relay kan skrive til konsollen, mens du sætter det op, til en roterende logfil i produktion og til Windows Event Log, når det kører som service — alt sammen uden at røre kernen.
Open source, klar til at indlejre
UDP Relay er open source på GitHub under MIT-licensen — klon det, læs det, kør det eller fork det til dine egne behov. Vil du hellere bygge videre på motoren end køre host-applikationerne, er relay-motoren udgivet på NuGet som UDP_Relay_Core — føj den til dit eget .NET-projekt med en enkelt dotnet add package UDP_Relay_Core. Og vil du bare køre det, leverer hver tagget release selvstændige Windows- og Linux-builds, der ikke kræver nogen .NET-runtime installeret — hent det, redigér XML'en og start det.
Hvor den slags arbejde betaler sig
UDP Relay findes, fordi problemer som det bliver ved med at dukke op i den virkelige verden:
- Sensorer, alarmer og IoT-enheder, der broadcaster målinger på et lokalt netværk, mens overvågningsapplikationen ligger på en anden lokation eller i skyen.
- Ældre industri- og bygningsautomatik, der kun taler LAN-lokal UDP og ikke kan omkonfigureres eller udskiftes.
- Discovery- og telemetri-protokoller, der skal nå en central server på tværs af et segment, de aldrig var tænkt til at forlade.
Det er hverdagsarbejdet med at forbinde udstyr, der ikke kan ændres, med systemer, der har brug for dets data — og det er præcis det, Allegro IT laver. Vedligehold og modernisering af legacy-systemer, omhyggeligt integrationsarbejde og at holde liv i ting, der stadig har forretningsværdi, frem for at smide dem ud. UDP Relay er ét lille, offentligt eksempel på den tilgang.
Har du en enhed på den forkerte side af netværket?
UDP Relay startede som et konkret kundeproblem og voksede til et værktøj, der var værd at gøre open source. Har du hardware strandet bag en router, et legacy-system, der skal nå skyen, eller en integration, hvor "pakkerne bare skal frem", så er det netop den slags opgaver, vi tager. Kontakt Allegro IT for at vende det — eller kig i kildekoden på GitHub.






