The userspace stuff of the Linux kernel doesn’t change all that much, and iproute2 (the ip command) has been around for a while. The only difference is that it’s a little easier to write Go programs now, and you don’t need to mess around with $GOPATH.
If you were looking to create testing for networking, i.e., simulating network dropouts for a client-server connections, is this something that you can use namespaces for, or would virtual machines be more fit for purpose?
While I am too familiar with it to suggest effort required, looking at the Openstack project and how they provision tenant networks may help.
It is just python with a three tier model with a message bus. But how they interface with libvirt may help if the namespace abstraction support for the 'ip' command is too clunky for you.
It doesn't give you independent stacks and openvswitch will let you build almost anything you would need.
Ok interesting I'll take a look. I was looking at libvirt, specifically how red hat was doing testing for its container ecosystem to see if there wasn't some juice to squeeze out of how they are managing it.
You can get a sort of "reader's digest" version of this by having a look at "bocker". It's about 120 lines of bash that implements the important bits of docker using nsenter, btrfs, cgcreate, etc.
23 comments
[ 2.7 ms ] story [ 70.3 ms ] threadhttps://www.polarsparc.com/xhtml/Containers-2.html
* The What, Why and How of Containers (https://www.annwan.me/computers/what-why-how-containers/)
* Containers from Scratch (https://ericchiang.github.io/post/containers-from-scratch/)
* Linux Containers From Scratch in C (https://www.lucavall.in/blog/barco-linux-containers-from-scr...)
* Life of a Container (https://indradhanush.github.io/blog/life-of-a-container/)
* 10-part series explaining all relevant Linux container mechanisms ( https://www.schutzwerk.com/blog/linux-container-intro/ )
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36
You could possibly just use network namespaces.
While I am too familiar with it to suggest effort required, looking at the Openstack project and how they provision tenant networks may help.
It is just python with a three tier model with a message bus. But how they interface with libvirt may help if the namespace abstraction support for the 'ip' command is too clunky for you.
It doesn't give you independent stacks and openvswitch will let you build almost anything you would need.
https://github.com/p8952/bocker/blob/master/bocker