[AUDIO LOGO]
So now that we've seen a little bit more
about how our IS-IS adjacencies work,
let's take a little bit of a closer
look at that communication.
Now, we did look a little bit, of course,
at the hello packets themselves.
We did see that it uses a different type of hello
for a LAN or a point-to-point interface or network type.
But in this video, we're going to focus more on the packets
that it uses for the actual database exchange.
So let's get in and take a look at the formatting
of those packets and the different types
that we have to support, both for IPv4 and for IPv6.
So as we jump into the IS-IS packet types,
the first thing to keep in mind is
that these are called PDUs, or Protocol Data Units.
That's just the generic name for the packet type.
Now, these PDUs are broken down into three major categories.
The first is the hello packets, which we have sort of looked
at a little bit already.
We know that there's actually two different types
of the hello packets--
one type for LAN and one type for point to point.
Then we have the Link-State Packets, or the LSPs.
These are the ones that actually distribute
the routing information.
So these are the ones actually carrying
the bulk of the information for the IS-IS database.
Then there's the sequence number packets.
And these are really just to control
the distribution of the LSPs.
It's to make sure that we get all of them,
we get them in order, we don't miss any.
So these are really just for checking the LSPs.
So like we said, the hello packets
are broken down into, well, sort of two major categories
for the LAN.
And then those are broken up into level one versus level two
hellos.
And these are PDU types 15 and 16.
If you remember, we saw these in the previous video.
And then, of course, there's the hello
for the point-to-point network, which is the type 17.
Again, we saw these as well.
But there's three total different hello types--
two for LAN, one for point to point, but two
overall categories of LAN versus point to point.
Now, the LSPs also have subcategories.
There's the LSPs for level one, and these
are going to be type 18.
And then we have the level two LSPs that are type 20.
So these are for carrying, of course,
the database information for the different levels.
The sequence number packets are also broken into subcategories.
As you can see, there's, again, sort of a major category
where we have level one and level one versus, of course,
the level two and the level two.
And what makes these different, of course, from each other is
there's a complete for each one, and there
is a partial for each one.
Each of these, of course, have their own types--
24, 25, 26 and 27.
So as we see, these are sequential.
These are, again, used to verify the receipts of the LSPs.
The way this works is if I'm getting the complete database,
essentially, I will do a complete sequence number.
And I'll do a partial if we're just
updating certain parts of the database that have changed.
Now, all of these PDUs do follow the same overall packet
structure.
The first thing we have is a common header.
This is followed by a specific header.
This is going to be, of course, based on the type of PDU.
And then we have the TLVs, which is where we're actually
carrying the data that this PDU is supposed to be carrying.
So the common header, to break it down
in a little more detail, contains
all of these fields, each one of these being 1 byte.
The first is the intradomain routing protocol discriminator.
This is going to be set to 0x83.
Next is the length indicator.
Now, this is going to, of course,
be the length of the header.
And it's going to be in bytes.
So this could vary, of course, because there's going
to be different packet sizes.
That's why we need the length field
to begin with is because it can be variable header lengths.
So this is giving that information.
Next is the version and protocol ID.
This is currently going to be set to 0x01.
Then we have the ID length.
This is going to tell us the length of the NSAP
address and the NET ID.
Again, those can vary, so we need something
to tell us the length.
This is followed by a reserved byte.
This is, of course, going to be set
to zero since it's reserved.
Next is the PDU type.
This is what's going to tell us what comes next.
So if you want to compare this to TCP/IP operation, in a way,
this is sort of like the next header field.
This is going to be talking about what type of PDU
this is based on what we talked about on the previous slide.
Next is the version.
Again, this is currently going to be set to 0x01.
And then the maximum area addresses.
And this is the maximum number of area addresses
that we're going to be carrying in the PDU.
Now, each PDU type has its own specific headers.
This is talking about this field right up here.
There's a lot of information here,
which we probably don't really have to have memorized.
But I will give you a reference to that towards the end
of the video here.
Now, again, the last section of the header
are the Type Length Values, or the TLVs.
And again, there are a lot of these as well.
These are some of the major ones, things like the area
address of the source node, the neighboring routers, if it's
intradomain routes.
What networks are actually supported?
So for example, again, are we supporting IPv4, IPv6,
maybe just CLNS, which wouldn't be very likely?
But that is what this was created for.
Whether it's an external route.
What are the actual addresses of the interfaces?
There's, of course, a corresponding one for IPv6
as well.
We'll be focusing in more on the TLVs
for IPv6 in the skill based around IPv6 IS-IS support.
As I mentioned a few moments ago,
you can refer to ISO Standard 10589 and RFC
1195 for more information, if you really
want to know all those different TLV
values and those PDU-specific headers
for every single packet type.
Let's wrap up this video with just a quick look
at a Wireshark capture so we can see
where some of this type information
is actually carried in those IS-IS packets.
So let's start off looking at packet three, which is actually
a point-to-point hello coming from router one.
If we expand the IS-IS hello and then scroll down
a little bit, some of the things we can see,
we can see the protocol supported being 129.
So if we open that section up, we
can see that as of right now, it is a type 129,
and it is currently supporting just IP.
So there's no IPv6 on here at the moment.
It's just IP.
But you can see where it's carrying
the information about what's actually supported here.
Also, notice our type 132, where it's carrying the actual IP
interface addresses.
And if we open that up, scroll down a little bit,
we can see where it's actually advertising router
one's, IPv4 interface address.
The other thing we can look at here
is packet 17, which is a complete sequence number
packet.
So if we highlight packet 17, we can open up the ISO header.
And we go to LSP entries.
We can actually see all of the entries being
exchanged in this complete sequence number packet.
So in this video, we jumped in, and we
looked at a little bit more detail
on the different packet types that are used by IS-IS
as well as a little bit of what's in those packets.
Then, of course, we jumped in here to Wireshark.
And we took a look at some of those packets,
how they look on the wire, and what's actually
in some of those headers.
I hope this has been informative for you,
and I'd like to thank you for viewing.