Re: [LARTC] Solved: Using more than 1 Internet Line

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



 ...
 > > dead. This is *very* cool on UDP, and will make UDP failover to another
 > > route fully transparent.  However, it will not fix stateful protocols in
 > > which the server on the other side keeps state on the IP address it was
 > > talking to, such as SSH.

Sending packets with the same source address out another link only 
helps UDP if it's not necessary to get replies, in which case I
wouldn't call it a "connection".  If you didn't need the replies then
you could do the same thing for TCP.  

Note that this trick only works at all if your ISPs are not doing the 
ingress filtering they should - a safe assumption for now, but I hope
not in the future.

The problem is that you normally don't have any control over the
routing between two places.  Even though your ISPs will let you send
out packets with the source addresses belonging to each other, the
replies will be routed to the one that "should" have sent the packets,
and if that one is down you can't get the replies.

This problem could be fixed by extending TCP (and of course, changing
the kernel) to support multiple IP addresses.  I suggest a new option
that says "here's another IP address for me" (or perhaps, here's an
alternative IP/port).  The kernel then has to merge these two input
streams.  On the output side (when you send to someone who has told
you about alternative addresses) I can think of several ways to
control which address you send to.  I suppose the application should
have some way to influence that, but as a first stab, I suggest that
whenever tcp has to resend a packet, it should move to the next
address.

Anyone interested in trying to implement it?  Put it on your queue and
post to the list if you ever get to it.  Also please post to the list
any bugs (and fixes) you see in the proposal.



[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux