When I first heard that OSPFv3 introduced even more link-state advertisement (LSA) types, I despaired. As if the original seven didn’t take us long enough to memorise!
Then I actually learned what they do – and honestly, it’s hard to imagine why we ever did it any differently. They make so much sense, and it’d made me super excited. In fact, I don’t think I’ve been this excited since the time former United Nations Secretary-General Ban Ki-moon turned up at my 18th birthday party! It’s true: he gave me Switzerland as a special gift.
I wanted to make a post about it (the new LSA types, not my legal ownership of Switzerland), because writing helps lock things down in my brain. And, because I love you, I thought I’d share it with you too.
QUICK PRE-REQUISITE FOR UNDERSTANDING THIS POST
This article assumes you know IPv4 OSPF’s LSAs, and that you understand OSPF in general.
This post assumes nothing else about you. For example: are you currently clothed or nude? Do you prefer your rice egg-fried or jasmine? It takes all sorts in this crazy world, and let me tell you now: you’re all welcome here. Unless you’re someone who disputes my ownership of Switzerland, in which case please kindly log off of my website immediately. I haven’t got time for troublemakers.
WHY DID THEY CHANGE THE LSAs FOR OSPFv3?
You’ll remember that OSPF has seven link-state advertisement types. Let’s quickly remind ourselves about the first one: Router LSAs, otherwise known as Type 1 LSAs.
Router LSAs advertise the fact that a router is in the area; the links attached to that router; and the IP networks on those links. This means that if an IP address is changed on an interface, or if a link goes down, the router generates a new LSA with the change in topology. This LSA gets flooded throughout the area, and then each router eagerly and hungrily re-runs the SPF algorithm, as if the routers were junkies, but junkies addicted not to meth, but to maths.
In IPv4, a link on a router generally only has one IP network on it, and the address generally stays the same, so it’s not such a big deal for the SPF calculation to have to re-run every time there’s a change. But IPv6 is a bit different, because you can, and often do, have multiple IPv6 prefixes on one link. Which means that every time a new IPv6 prefix is added, the SPF algorithm would need to be run again – even though there’s been no change in the physical topology!
This seems pretty inefficient. All the routers already know the best path to get to the link. The addition of a new IPv6 prefix shouldn’t generate such unnecessary workload for our routers. Wouldn’t it be better to somehow separate the physical topology information from the IPv6 address information, so we can add IPv6 addresses ?
That’s exactly what some wise boffins did: in OSPFv3, the IP address information has been taken out of the Router LSA, which now exists only to advertise the physical links on a router. Instead, IPv6 address advertisements now happen in the two brand new LSA types: Link LSAs (Type 8), and Intra-Area Prefix LSAs (Type 9).
THE NEW LSA TYPES, EXPLAINED
Let’s start with the new Type 9 Intra-Area Prefix LSAs, a long name that actually tells us exactly what it does: this advertisement contains a list of all the IPv6 address prefixes on an interface.
If you’re interested in exactly how it does this, maybe you’d like to read this post I wrote, where we dive deep into the OSPFv3 database. But in short, Intra-Area Prefix LSAs contain, among other things, four key pieces of information: the IPv6 network address, the prefix length, the Router ID, and an ID for the link, which we can look up in the lovely physical topology information from our Router LSA.
The Type 8 Link LSAs contain information just about the link-local IPv6 prefixes. This is quite a unique LSA, because it isn’t advertised throughout the area like most advertisements. Instead, it’s shared only across the local link.
Here’s a list of all nine OSPFv3 LSAs, next to the equivalent LSA in IPv4 OSPF.
|OSPFv3 LSA TYPE||LSA NAME||OSPFv2 LSA TYPE||LSA NAME|
|0x2001||Router LSA||1||Router LSA|
|0x2002||Network LSA||2||Network LSA|
|0x2003||Inter-Area Prefix LSA||3||Summary LSA|
|0x2004||Inter-Area Router LSA||4||ASBR Summary LSA|
|0x4005||AS-External LSA||5||AS-External LSA|
|0x2006||Multicast LSA||6||Multicast LSA|
|0x2007||Not-So-Stubby-Area LSA||7||Not-So-Stubby-Area LSA|
|0x2009||Intra-Area Prefix LSA|
Apart from the occasional name change, most of the LSAs are the same. For example, Type 3 LSAs have changed name from “Summary LSA” to “Inter-Area Prefix LSA”, but they’re functionally exactly the same.
However, you might notice something that’s very different: the LSA Type. This is the number that tells our routers what kind of LSA it is. Previously this would just be written as a decimal number between 1 and 7. Now though, we see a hexadecimal number. Let’s take a look at why this was changed.
THE LSA TYPE FIELD
The new LSA Type is a four-digit hex number, and as you’ve probably already guessed, the final digit is what we’d usually refer to as the LSA Type. For example, when the final digit is a 1, we have a Router LSA. When it’s a 9, we have an Intra-Area Prefix LSA. And when it’s a 69, things have gotten very sexy indeed.
(It’s never a 69.)
The first digit in the hex number is also helpful: it tells us how far within our network the advertisement will be flooded – the “flooding scope”, if you will. And believe me, you will.
Notice that the first digit can be 0, 2, or 4. Most of the LSA Type numbers start with a 2, which means the LSA stays within the area. Only one of the LSA Types begins with a 4: the “AS External LSA”, which contains routing information for prefixes that have been imported into OSPF from an external source. It makes sense that this LSA has its own flooding scope, as it’s the one LSA that’s flooded throughout the entire autonomous system, not just the area. There’s also only one that begins with a 0: that’s the link-local LSA we talked about earlier. This doesn’t get flooded through the area; instead, it’s flooded just to the next router, and it stops there.
In short, look for this number at the start of the LSA Type, and you’ll immediately know what its flooding scope is:
0 = LINK LOCAL ONLY
2 = AREA ONLY
4 = ENTIRE AUTONOMOUS SYSTEM
What’s that? You’re after a handy way to memorise these numbers? Okay Claudia, here’s a little tip for you: say the numbers out loud, 500,000 times. Keep repeating them until your tongue bleeds. Simple!
Hey, thank you so much for reading! I hope this post helped you to understand the new LSA types. This is part one of two posts. Part two is all about actually reading the new OSPFv3 database. Click here to give it a read.
If you enjoyed this post, I’d love you to share it with nerdy friends and colleagues, either by emailing them the link directly, or by sharing it around on your social media of choice.