►
As you may have noticed, I write about BGP from time to time. When coming up with example configurations, there's always the challenge of which AS numbers and IP addresses/prefixes to use...
Full article / permalink - posted 2015-04-24
▼
As you may have noticed, I write about BGP from time to time. When coming up with example configurations, there's always the challenge of which AS numbers and IP addresses/prefixes to use. Although it's unlikely people will simply copy numbers and addresses from examples into their own BGP configurations, experience with NTP has shown that this can be a real problem, so it's a good idea to avoid "real" addresses and numbers in examples.
One obvious choice for IPv4 addresses in examples is the RFC 1918 space: 10.0.0.0/8, 172.16.0.0/12 and 192.168.0.0. For IPv6, you could use the unique (site) local addresses (ULA, RFC 4193: fc00::/7, or, more precisely, the ones you get to generate yourself in fd00::/8. I wouldn't recommend using the original site local IPv6 addresses (fec0::/10), as these are "deprecated" in RFC 3879.
For AS numbers, there's the private range 64512 - 65534 (16 bit) and 4200000000 - 4294967294 (32 bit) in the IANA registry.
However, there are also address and AS number ranges specifically set aside for example and documentation use. These have the advantage that they can easily be recognized as being intended for documentation, and won't clash with ranges used in private networks. They are:
- 16-bit AS numbers: 64496 - 64511 (RFC 5398)
- 32-bit AS numbers: 65536 - 65551 (RFC 5398)
- IPv4 addresses: 192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24 (RFC 5737)
- IPv6 addresses:2001:db8::/32 (as in "debate") (RFC 3849)
I actually didn't know about the documentation AS number ranges and the second and third IPv4 documentation ranges. The extra IPv4 ranges will be very useful, as just 192.0.2.0/24 often isn't enough in more complex BGP examples, especially as I don't want to give the impression that it's possible to deaggregate a /24 into smaller parts. The 16-bit documentation AS numbers will also be useful. Unfortunately, the 32-bit ones aren't really useful as they look too much like 16-bit numbers. However, the 65552 - 131071 range is "reserved" so I guess I'll continue to use AS numbers in the 9xxxx range as examples of 32-bit ASNs.
Permalink - posted 2015-04-24
At the RIPE-70 meeting next month in Amsterdam I'll be doing a tutorial on BGP: "Get Your Hands Dirty with BGP".
This is the "light" version of the regular BGP training that I do several times a year: the theory part will be around 30 minutes and then about two hours of hands-on BGP using the Quagga routing software running in a virtual machine on the participant's laptops.
If you're attending the RIPE meeting and you're interested in participating, please go to this page and send me an email so I know how many people to expect.
Permalink - posted 2015-04-15
Yesterday I wrote about my new printer, which supports IPv6. I posted a photo on Twitter with the printer's IPv6 address, and before long people attempted to print over the internet. Eventually, two succeeded.
I'm not very happy that Canon allows this by default, and doesn't give you any way to block this other than to disable IPv6 or put the printer behind a firewall.
Here's another link to that part of the story, as the title I used yesterday doesn't mention IPv6 or firewalling.
Permalink - posted 2015-03-04
So HTTP 2 multiplexes multiple transfers over a single TCP session. It would be cleaner to do this using SCTP, which implements multiple streams natively. But having to figure out whether you can use SCTP or need to use TCP would be a significant complication, while negotiating the use of HTTP 2 over TCP port 80 should be relatively straightforward.
I'm glad the mandatory encryption didn't happen. Encryption is important, but there are times where it's unneeded, and forcing people to use it when they don't want/need it would just make for even more carelessness with certificates than we're already seeing today. For instance, the server serves the exact same copy of this webpage to anyone who requests it, so there's no point in encrypting it. Encryption would just add more time consuming round trips, use more battery power, and require me to buy a certificate.
Apparently most of the browser makers are already on the case, no mention of Safari, though. I'm interested to see how much faster HTTP 2 will be in practice.
Permalink - posted 2015-02-18
►
Over the weekend, I wrote posts about trying out OpenBGPD and BIRD.
Here's a bunch more information about these two and other open source routing software...
Full article / permalink - posted 2015-02-02
▼
Over the weekend, I wrote posts about trying out OpenBGPD and BIRD.
Here's a bunch more information about these two and other open source routing software:
Basically, OpenBGPD's filtering system has scalability issues, and it uses a lot of CPU in large deployments. And it concerns me that these mention OpenBGPD 4.8 and 5.0, while the website only has 4.6.
And I guess I have some homework: install Xorp, a Juniper-like open source routing platform.
Permalink - posted 2015-02-02
▼
Yesterday, I talked about my first experience with OpenBGPD. Which of course raised the question: why not use BIRD instead? It's a lot more mature. So I gave it a try.
The BIRD Internet Routing Daemon supports RIP, OSPF, BGP and BFD. Unlike Zebra/Quagga, all the protocols are combined in a single daemon with a single configuration file. I once again made good use of the FreeBSD ports, although BIRD has so many dependencies that the 2 GB drive that I had configured for my VM wasn't big enough...
I edited the included example bird.conf file and got a BGP session working. However, I had somewhat of a hard time: BIRD's configuration system isn't like anything I've used before. But worse, the birdc tool that lets you interact with the daemon is very non-obvious. And although BIRD's documentation is pretty decent for an open source project, it doesn't discuss the operational aspects of BGP. To add insult to injury, birdc doesn't have any built-in knowledge of BGP. Rather, BGP is handled as a generic protocol instance. This means that the built-in tab-to-complete and ?-to-show-options don't show you what you can do. The wiki has a few examples but is still not very helpful.
As such, BIRD is definitely not recommended for casual experimentation with BGP. For that, Quagga or even Zebra (which I can run on my Mac!) are much better, as the way they are configured is more Cisco-like, which means the skills gained are relatively easy to transfer to Cisco or Brocade routers. Or, if that's not important, try OpenBGPD.
On the other hand, BIRD does indeed seem to be much more mature and well-supported than OpenBGPD or Quagga (while Zebra has been dead for a decade): BIRD is currently being used as a route server at several internet exchanges. So for production use, BIRD is probably a good choice. However, expect a shallow learning curve.
(Pet peeve: a steep learning curve implies that you improve a lot in a short amount of time. So something that's hard has a shallow learning curve, not a steep one.)
Permalink - posted 2015-02-01
older posts
- newer posts