ArtNet is not conforming to RFCs

For all the Network Techs out there. I have a Interesting one, on reddit there was a post about a L2 switch killing the port when ArtNet was sent over it. Using my Network experience, I pulled the devices manual, a the Device in question is a GSD-1002M L2/L4 switch. I wrote up how I would configure it. Long story short it was the DOS protection on this switch. I dug in deeper, made this nice RCA for this issue,

Anyways Enjoy,

I used Wireshark and checked some of the default settings in the GSD-1002M Manual

Wireshark packet of UDP ArtNet from Lightfactory

The Highlighted data of the Source and Destination ports. are the same!

From the Switch’s manual. Here is the default for the DOS settings

The highlighted settings are the items of interest the UDP and TCP BLAT settings.

What is a Blat Attack – These switch result from sending a specially crafted packet to a machine where the source host port is the same as the destination host port. The system attempts to reply to itself, resulting in system lockup.

This attack could be compared to setting up a mic IN FRONT of your Main PA 1″ Away from the speaker. Then Turning it on full blast.

Looking at RFC6056

Recommendations for Transport-Protocol Port Randomization

These attacks rely on the attacker’s ability to
guess or know the five-tuple (Protocol, Source Address, Destination
Address, Source Port, Destination Port) that identifies the transport
protocol instance to be attacked.

Says this needs to happen on the Source port. so the source port is random but the destination is set


Looking at RFC1948

Defending Against Sequence Number Attacks from May 1996
In summary “source port == destination port” is a bad practice.


This Bug has been fixed for a long time in the Linux Kernel networking subsystem to avoid this issue

The commit that fixed the port bug in the kernel back in 2007.

Following up at that Lets look at the man page for ip(7)

Looking at how to Get a Source socket, to open two way coms with a remote server, (or multicast group)

When connect(2) is called on an unbound socket, **the socket is automatically bound to a random free port or to a usable shared port with the local address set to INADDR_ANY.



So in closing,

source port == dest port. Is triggering the Blat DOS detection.

Now lets look at the Protocol spec.,
Looking at ArtNet’s spec Here

From page 10 the Hex 0x1936 is 6454 in base 10


It states that the programmer must use, source port of 6454 to contact the destination  listing port 6454 of the server.



That is Not conforming to Multiple RFCs and is using a bad practice.

Work around Disable BLAT protection.


Root Cause ArtNet protocol says to use the same source port(client) as the destination port (server). is causing the issue.

Posted in Lighting, Networking (computers), Programing, Uncategorized | Comments Off on ArtNet is not conforming to RFCs

Test Signals Time Code work

Nightcore – Here’s To Never Growing Up

V1 of TIme Code show WIP

F. Bell 1/28/2023

Nightcore – Here’s To Never Growing Up
Posted in ART, Lighting | Comments Off on Test Signals Time Code work

LGBTQ anime night – Test signals

I am doing a light show, each Saturday night, as content for “Testing the streaming platform” .

Anyways Here is last nights show

The project meets a few goals. First Checking stream quality. Second Its fun 🙂 and Third to give my artist friends a better reference for stage lighting interactions.

Anyways its on Saturday night @ 6:30P -> 7P Then anime after that till about 1AM

Anyways more Information about the LGBTQ anime Austin group can be found at their site

https://lgbtqanime.club

Posted in Uncategorized | Comments Off on LGBTQ anime night – Test signals

Slinging code on the Pi

I am working on making my python 3 script better. I am also adding a mode to control the venue lights. I am getting used to

subprocess.run("command", "args")

which is the more accepted way of calling other programs. I am using it to call shell scripts to implement different things. I know I could call ssh directly…. or whatnot. I feel the shell scripts are the best way to go.

take a look at my work in progress code at https://github.com/rainfay/sound_control

Posted in Uncategorized | Comments Off on Slinging code on the Pi

Another day another Just for fun, project

I’m still working on this song…. I am busking this song vs creating cues, for it.

Gorillaz 19-2000 (Soulchild Remix) WIP

Posted in Uncategorized | Comments Off on Another day another Just for fun, project

I2C Adafruit 16×2 LCD Pi Plate

Hi y’all,

Today I am going to write up a project I am working on.

Problem: I have a USB headphones with cat ears. The Mixers only output analog. Also Needs to be headless.

Solution: Use a ADC and pulseaudio to convert it to a signal that the USB headphones can use.

I used a Raspberry pi, a LCD board and a Behringer UCA222

The UCA222 converts the analog signal to digital. then I am using pacat from pulseaudio to receive it then a pipe to send it to the headphones via pacat.

Now for the headless part I am using the Adafruit 16×2 and button board to control the system. The system is controlled through a python3 program, that reads the buttons and does what is needed based off input.

Currently I am having a issue of getting the script to start on boot. when it is called via crontab the system calls do not work, Looks like I get to deep dive that call.

—-Update —-

To get the script to work, I had to start up pulseaudio daemon. It appears that the daemon is started on login. since I am starting my program via crontab….
I had to build a quick bash script to spawn it and then kick off my python program.

Posted in Uncategorized | Comments Off on I2C Adafruit 16×2 LCD Pi Plate

html video splash screen

Hello everyone,

Today I have found a useful code snipit to add a Static image to the HTML5 video player

add poster=”Image_here” to the the tag

for example it would look like

<video.... src="" controls poster="/cropped-bg.png"></video>

Posted in Uncategorized | Comments Off on html video splash screen

Need to start bloging again.

I need to actually start blogging again.
I am going to try once a week by Thursday, since Wensday and Thursday are my two days off in my work week.

Posted in Uncategorized | Comments Off on Need to start bloging again.

Just another sketch

I am trying to improve my sketching skills, by trying to sketch once or twice a week.

anyways here is todays sketch.

Posted in Uncategorized | Comments Off on Just another sketch

New design using the idea of the Angle Beats stage.

its still some WIP, but its going to be cool when done.

Posted in Uncategorized | Comments Off on New design using the idea of the Angle Beats stage.