I'm working on a small experiment which utilizes multiple outbound links (in the experiments case multiple consumer 3G connections [to 2 Sprint/2 Verizon/1 AT&T], Time Warner Cable Modem and an SBC Global DSL connection.
What is the best way to do outbound traffic engineering? I would like to be able to determine the best path possible and send traffic out the appropriate link.
Could this be done with a copy of the BGP tables?
Obviously as they are consumer connections, I wouldn't get a BGP feed so would need to download a copy, which has the risk of stale data. Perhaps some sort of multihop BGP setup?
I have done some research and found a lot of references to small site multihoming without BGP for link redundancy but not for traffic engineering.
I've played with that before. Essentially just EBGP Multi-hop with next-hop rewrites on various community prefixes. Of course I had access to a donor feed, that is probably the largest hurdle.
There is good use in general for a public no-distribute feed but I have yet to find such a thing. Is there a reason for that, or could I bribe my datacenter to give me a feed and then create my own public server with some el-cheapo Quagga and a bag of rainbows for hope?
Obviously as they are consumer connections, I wouldn't get a BGP feed so would need to download a copy, which has the risk of stale data. Perhaps some sort of multihop BGP setup?
I have done some research and found a lot of references to small site multihoming without BGP for link redundancy but not for traffic engineering.
I've played with that before. Essentially just EBGP Multi-hop with next-hop rewrites on various community prefixes. Of course I had access to a donor feed, that is probably the largest hurdle.
My first job was at a place with a direct ARIN allocation and BGP to Sprint and AT&T. I'm still friends with the remaining ops person and can probably setup a peering session with him. I also have another buddy with the ability to do BGP via Cogent.
There is good use in general for a public no-distribute feed but I have yet to find such a thing. Is there a reason for that, or could I bribe my datacenter to give me a feed and then create my own public server with some el-cheapo Quagga and a bag of rainbows for hope?
Obviously as they are consumer connections, I wouldn't get a BGP feed so would need to download a copy, which has the risk of stale data. Perhaps some sort of multihop BGP setup?
I have done some research and found a lot of references to small site multihoming without BGP for link redundancy but not for traffic engineering.
I've played with that before. Essentially just EBGP Multi-hop with next-hop rewrites on various community prefixes. Of course I had access to a donor feed, that is probably the largest hurdle.
My first job was at a place with a direct ARIN allocation and BGP to Sprint and AT&T. I'm still friends with the remaining ops person and can probably setup a peering session with him. I also have another buddy with the ability to do BGP via Cogent.
There is good use in general for a public no-distribute feed but I have yet to find such a thing. Is there a reason for that, or could I bribe my datacenter to give me a feed and then create my own public server with some el-cheapo Quagga and a bag of rainbows for hope?
I will write everything up there as well as post back results here.
So changing my search terms a bit to utilizing bgp feeds outbound traffic engineering, returns http://www.caida.org/workshops/isma/0210/ISMAagenda.xml which seems to be near what I want. It certainly provides some interesting reading and ways to measure / analyze the necessary data.
There is good use in general for a public no-distribute feed but I have yet
to find such a thing. Is there a reason for that
answering that question is easy. Yes, there are a number of reasons
that nobody provides one:
1) most people don't want the details of their internal routing policies
known to outside entities. Perhaps I pay Level3 for routes, but don't
want the rest of the world to know it; if I provide a BGP feed, unless I
very carefully sanitize it before it goes out, it will become clear to
people outside that there are prefixes seen across the path that would
not be seen by an ordinary peer.
2) It requires careful filtering to ensure that nobody recieving the feed
accidentally or intentionally uses the routing information in their
forwarding table without altering next-hops as appropriate; nobody
wants to end up carrying unexpected traffic.
3) Requires ongoing support personnel to maintain and keep it up
and running; while not a huge cost, it nonetheless presents a
continuous, residual drain on resources that few companies are
willing to underwrite
4) It would be of limited value, unless it covers a relatively large swath
of the Internet with relatively good splay; having a BGP feed that
simply shows a default route from your upstream's upstream's
upstream wouldn't really give much useful data to work with.
5) Much of the data is already available with a bit of delay from RIS/RIPE
and routeviews; unless you really need the real-time aspect, you might
as well just get the data from there.
or could I bribe my
datacenter to give me a feed and then create my own public server with some
el-cheapo Quagga and a bag of rainbows for hope?
I'd recommend OpenBGPd -- it's been scaling much better for me, and
converges about 8 times faster than Quagga on the internal route collectors
I run.
This sort of thing is usually done with some sort of multi-port outbound
NAT device that chooses the source interface to NAT from based on some
"quality" metric it generates for the destination, and a state table it
keeps for all the outside IPs.
Products that do this include FatPipe, Radware Linkproof, and Mushroom
networks.
From: Charles Wyble [mailto:charles@thewybles.com]
Sent: Tuesday, November 04, 2008 12:32 PM
To: NANOG list
Subject: On the subject of multihoming
I'm working on a small experiment which utilizes multiple outbound
links
(in the experiments case multiple consumer 3G connections [to 2
Sprint/2
Verizon/1 AT&T], Time Warner Cable Modem and an SBC Global DSL
connection.
What is the best way to do outbound traffic engineering? I would like
to
be able to determine the best path possible and send traffic out the
appropriate link.
Could this be done with a copy of the BGP tables?
Obviously as they are consumer connections, I wouldn't get a BGP feed
so
would need to download a copy, which has the risk of stale data.
[ resent to list, was sent from the wrong address -sd ]
Charles Wyble wrote:
I'm working on a small experiment which utilizes multiple outbound links (in the experiments case multiple consumer 3G connections [to 2 Sprint/2 Verizon/1 AT&T], Time Warner Cable Modem and an SBC Global DSL connection.
What is the best way to do outbound traffic engineering? I would like to be able to determine the best path possible and send traffic out the appropriate link.
Not sure if this is useful, but I thought I'd contribute a point on the
curve...
Obquote: from Paul Vixie's presentation,
from Stan Barber's notes, here is the "meat of the matter":
_ _ _ _ _ _ _
Per-interface Default Route
* BSD TCP binds outbound route to PCB on SYN-ACK
* Our trick: remember the inbound interface identity from the SYN
* Each interface has its own "default route"
* For outbound TCP and all UDP, a normal default is also needed.