What is an Autonomous System?¶
The Internet is a collection of arbitrarily connected Autonomous Systems. An Autonomous System (AS), is classically defined as a set of routers under a single technical administration. Those routers use an interior gateway protocol to route packets within the AS, and then use an exterior gateway protocol to route packets to other Autonomous Systems. Even when multiple interior configurations are constructed, the administration of an AS appears to other ASs to have a single, coherent interior routing plan and presents a consistent picture of what destinations are reachable through it.
AS’s are assumed to be administered by a single administrative entity, at least for the purposes of representation of routing information to systems outside of the AS.
How are Autonomous Systems connected?¶
Autonomous systems are connected in two ways. The first way is physically, there is a direct connection between two AS’s. The second way is through a BGP connection, which is a protocol that travels over a TCP connection (port 179) between the two AS’s BGP daemons. An AS communicates to another AS over a BGP session. This BGP session communicates routes taht can be reached through the advertising AS.
The primary function of a system that speaks BGP is to exchange network reachability information with other BGP systems.
References¶
- RFC 1771:BGP-4
- RFC 1772:Application of the Border Gateway Protocol in the Internet
- RFC1965: Autonomous System Confederations for BGP
- RFC1997: BGP Communities Attribute
- RFC2545: Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing
- RFC2796: BGP Route Reflection An alternative to full mesh IBGP
- RFC2858: Multiprotocol Extensions for BGP-4
- RFC2842: Capabilities Advertisement with BGP-4
routing daemons¶
- bird
Bird is internet routing daemons which manages TCP/IP based routing protocols with full support of all modern routing protocols, easy to use configuration interface and powerful route filtering language. . It supports OSPF, RIPv2 (No v1), BGP and redistribution between the protocols with a powerful configuration syntax.
- mrt
MRT uses novel approaches to routing architecture design, and incorporates features such as parallel lightweight processes, multiple processor support, and shared memory. The object-oriented, modular design of the software encourages the rapid addition and prototyping of experimental routing protocol and inter-domain policy algorithms. . You can use MRT applications and libraries to: * Serve as the backbone routing software for your IPv6 or IPv4 network connection. * Simultaneously handle tasks such as routing policy communication, routing policy calculation, and maintenance of a RIB, and distribute these tasks over multiple processors or multiple machines * Generate and analyze route flap statistics * Generate real-time graphical maps of Internet routing * Capture a BGP peering session and monitor it in real time * Record and replay sequences of events, such as routing failures
- quagga
GNU Quagga is free software which manages TCP/IP based routing protocols. It supports BGP4, BGP4+, OSPFv2, OSPFv3, IS-IS, RIPv1, RIPv2, and RIPng as well as the IPv6 versions of these. . As the precessor Zebra has been considered orphaned, the Quagga project has been formed by members of the zebra mailing list and the former zebra-pj project to continue developing. . Quagga uses threading if the kernel supports it, but can also run on kernels that do not support threading. Each protocol has its own daemon. . It is more than a routed replacement, it can be used as a Route Server and a Route Reflector.
- routed
fill in the blank - xorp
Description: eXtensible Open Router Platform XORP is the eXtensible Open Router Platform. It implements a number of routing protocols for IPv4 and IPv6 and a unified means to configure them. It is stable and fully featured enough for production use, and flexible and extensible enough to enable network research. . The following network protocols are currently supported: BGP, OSPF, RIP/RIPng, IGMP/MLD and PIM-SM.
- zebra
Zebra turned into Quagga - openbpd
OpenBGPD is an OpenBSD BGP implementation. It allows ordinary machines to be used as routers exchanging routes with other systems speaking the BGP protocol. Started out of dissatisfaction with other implementations, OpenBGPD nowadays is a fairly complete BGP implementation, powering many sites. Users often praise its ease of use and high performance, as well as its reliability. There is no fully functional linux port, but there is a [partially functional one->http://hasso.linux.ee/doku.php/english:network:openbgpd] that is full of hacks and just commented out code. it seems to be faster than quagga for the author's needs
Learning BGP¶
One way to figure out BGP would be to setup a routing daemon in a simulated environment. Doing this in the production environment would be ill-advised, but maybe it could be done locally on a pair of home machines that talk to each other over the internet, or perhaps over a shared VPN connection.
Another possibility would be to try marionnet which is a virtual network laboratory and simulation tool. The description reads, “It allows users to define, configure and run complex computer networks without any need for physical setup. Only a single, possibly even non-networked GNU/Linux host machine is required to simulate a whole Ethernet network complete with computers,
routers, hubs, switchs, cables, and more. As Marionnet is meant to be used also by inexperienced people, it features a very intuitive graphical user interface (using GTK2).”