Very interested in this and wondering about the possibilities of creating a software load-balancing instance with Go - rewriting source & destination addresses on the fly and tracking session states to failover between instances of the program.
Theoretically that is totally possible. I think the channels functionality would really make managing the different streams easy. Go routines could also greatly improve performance.
It would be interesting to see how it performs under load. After all, that's what Go is meant for. I'll think about writing some code to test that out.
Hey there, I wrote that page. I didn't even have an account here and didn't realize there were comments. I tracked down this page because of the referrals I was getting. The write up is meant to help anyone and everyone so share it wherever you would like.
A minor issue, on your second snippet (open devices for live capture), you miss the "github.com/google/gopacket" import.