[ih] History question -- multi-homing

Karl Auerbach karl at iwl.com
Tue Sep 15 14:29:26 PDT 2026


On 9/15/26 12:10 AM, Jack Haverty via Internet-history wrote:

> Re: the question of when these issues first surfaced...here's what I 
> remember:
>
> POLICY ROUTING

Back in the '80's I worked a bit with ... I hope you are sitting down 
... IBM's SNA LU6.2.  It was very much in line with traffic engineered 
paths such as MPLS and ATM in which paths were centrally computed and 
then disseminated to the routing nodes. (SNA also did a lot of protocol 
conversions in the path, so often that pre-computed path focused on a 
protocol-conversion site somewhere in the middle.)

I called this kind of path-nailing "Yenta Networking" after the 
legendary role of a matchmaking Yenta.  (I do believe that this kind of 
arranged client-server binding does have a place on today's net.  My 
memory is also saying to me, in the voice of Dave Bridgham, "don't 
forget the Nimrod proposals" which used IP source routing.)

===

> In the early 1980s Internet, we used such end-middle traffic to create 
> a diagnostic tool called a "Flakeway".

In the last couple of decades I have extrapolated from Jon's "flakeway" 
concept.  I've moved it down a layer, so that it lives down at the 
Ethernet layer, essentially an Ethernet bridge (that does not 
participate in things like Spanning Tree, and forwards some of the 
mysterious frames defined by IEEE such as "Pause".)  (I've also added a 
lot of frame/packet classification so that different kinds of traffic 
can be run through different sequences of "bad things".)

I experimented with digging into packets and changing the contents - I 
demonstrated some of this at an Interop show a couple of decades ago, in 
the Interop Labs, where I injected words in to VOIP sessions (on the RTP 
protocol.)

But that kind of active perturbation of content was hard to do on fast 
links.  (A modern 10G or higher link can move a lot of frames a second - 
in both directions.)  So we moved that into a different test tool.  
  (And we did generalize it to do "fun things" such as a thing we called 
a "constipation engine" - a device to plop in front of busy web servers 
that were being hit with bogus traffic. The device would slow the 
packets from the server, sometimes splitting them, and managing the TCP 
window, so that the attacker would perceive that the connection was open 
and working, but it was very, very, very slow.  Attackers who were 
simply running scripts, aka "script kiddies", would perhaps not notice 
that attack scripts that once took seconds now took hours.)

So in my later stuff I've most dropped back to what I call "basic 
impairments" - latency (fixed and variable), duplication, drop, packet 
re-sequencing, rate limitation.  (All of these have umpteen control 
knobs to vary what is being done, such as statistical distributions of 
variable delay, and change things over time [like changing packet drop 
to emulate a low earth satellite as it rises from the horizon, crosses 
overhead, and descends.)  (I still have older code that can change 
packet contents.)

My latest implementation does the heavy lifting down in the FreeBSD 
kernel, so it can achieve reasonable packet (actually "frame") rates.  
(And doing this stuff can require some heavy lifting from multiple 
processor cores and use a lot of non-pageable, locked-down memory - 
simulating things like earth-to-JWST-delays (more than ten seconds, one 
way), especially if we add latency variation and allow packet 
re-ordering, can burn a lot of memory for a 10G link.)

These have been rather useful tools for developers.  These tools push 
protocol implementations into realms that are not typically found in 
developer lab networks or even the Internet on a good day.

We've pushed a lot of IP stacks over the edge, even the Linux one (it 
can run out of memory for packet reassembly if subjected to some of the 
more perverse patterns of IPv4 fragmentation over a period of time.)  
We've also made some people unhappy - like a phone vendor who had 
hundreds of thousands of phones out that that collapsed when we ran some 
tests of infrequent but legitimate traffic patterns against them.  And I 
remember at one SIPit event I was able to push nearly every 
implementation into the danger zone simply by collecting packets into a 
"dam" for maybe a 0.2 seconds then let that "dam burst" but releasing 
the packets in an order different than arrival.  I also remember one 
very large vendor of servers in which we found that their TCP stack 
properly did congestive back-off, but failed to climb back to speed 
afterwords.

(My favorite one is to re-frame an IP packet into an Ethernet frame that 
is larger than necessary.  A lot of stacks use the Ethernet length 
rather than the IP length and thus end up running into the unknown data 
in that slop space between the end of the IP packet and the end of the 
Ethernet frame.)

         --karl--



More information about the Internet-history mailing list