VNFs and Containers: Heptagonal Pegs and Triangle Holes
One of my readers sent me this question:
It would be nice to have a blog post or a webinar describing how to implement container networking in case when: (A) application does not tolerate NAT (telco, e.g. due to SCTP), (B) no DNS / FQDN, is used to find the peer element and (C) bandwidth requirements may be tough.
The only thing I could point him to is the Advanced Docker Networking part of Docker Networking Fundamentals webinar (available with free subscription) where macvlan and ipvlan are described.
However, I couldn’t help adding…
I would be very skeptical about running something that cannot tolerate IP address changes or use DNS in a container. It’s like trying to fit a heptagonal peg with spikes into a triangle hole.
His response didn’t surprise me in the least:
In mobile networks, pushing a square peg through a round hole is a common and repetitive task. A while ago, special hardware was used to get performance. Now, we put everything into a cloud and use commodity HW. No wonder we lose performance, and as a result, we need special accelerators and other tricks… thus we end up with something that’s not scalable nor commodity any more.
That’s why I opened a bag of popcorn when the whole “NFV/VNF will allow service providers to use free software on commodity hardware” hype started, and I’m still enjoying the show.
In my experience, the biggest issue with the whole VNF story is that they still use the same (legacy) assumptions and HA mechanisms they did in the baremetal world. So things like VRRP between container/VMs is a common thing. One of the worst things you can see though is some dataplane VNFs requiring dynamic routing peering with the network underlay. Think OSPF+BFD with BGP on top that need to peer with your TOR switch. In the end, after you've satisfied all their requirements, the VNF gets pinned to a single server, which effectively turns it back into a baremetal NF, with a few intermediate container and VM layers in between. Let's call this 5G.