[music]
Next is IPB4 over IPB6 session so pretty much the opposite of
what we did in that last section there. Let's switch over
to the command line and we're going to start with
Router BGP100 on Router 3. In this case, we're not going
to turn off the IPB4 address family because we
actually want to use it. In fact, we'll actually say and
you can do it right here. We can say neighbor 2001DB8:100:39::9
remote AS300 and if I say do show run section BGP
what we should have is that neighbor is going
to automatically be activated for the IPB4 address family so
that's already to go as the default. Let's go to Switch
3, Router BGP300 neighbor 2001DB8:100:39::3 these
should come up and by the way you could really-- let's see,
have some going on here. It's active. 2001 DBA:100:39::3.
Let's go back over and look at Router 3. 3 is not showing
anything at all. So let's see router bgp 100 neighbor.
It's not taking that at all. He's not even showing it.
Nothing. Well, address family IPv4 unicast-- shouldn't have to
do this. It's supposed to be the default, but it could just be
because-- and again you have different things
happen on different codes, so sometimes it's just
not even worth arguing about it so neighbor activate.
As you can see the switch is doing it for us, but this
one, the router here doesn't seem to be actually doing it
by default. There we go. Now it's up. That's how it
should have been. So it didn't activate the IPv4 address
family by default just because it's on IPv6 neighbor.
And I usually just do it under the address family anyway.
It's the best way to do it. I was just trying to shortcut
there a little bit and you see what happens when you
do that, right? So switch didn't need it but this guy does.
Let's go ahead and bring in a network statement. So
network, it almost advertises loopback 10.9.9.9 mask,
it's a /32, do show ip bgp. There we go. He's injecting his
IPv4 network. And by the way, I think I mentioned this before,
maybe not, the show ip BGP you're technically not supposed
to use anymore. Do show bgp ipv4 unicast because that's so
much easier. But it's more uniform with where we're headed
with the commands now that we're supporting address families.
Now, the real fun. Let's go over to Router 3 and say
do show bgp ipv4 unicast, and check out the next hop.
For some reason, the router doesn't think this is reachable,
which I think is a little odd myself, but for some reason he
says he can't get there. I'll save the jokes, I guess,
here. If you go back and look at our diagram,
there's not that address anywhere. That address
does not exist. Do show ip route. You're going to look
at the entire routing table. There is no
32 anywhere in our entire topology. Our entire topology
is 10s for loopbacks, 50s for some of the VLANs up at
the top and some of the VLANs down at the bottom like
where RIP is running and 173 in most places. So
there's a whole bunch of OSPF routes for IPv4. The 204.186s,
these are for underneath the DMVPN cloud, so you
don't even have to worry about those. But they're
not 32s either, okay? The fact of the matter is this next
hop is completely and totally useless. Now, I'm
going to explain where it comes from, and in
Cisco's defense here, they had to put something,
and here's where the issue comes in. I'm going to send
you an IPB4 network over and I'll show you right,
the do show TCP [?] this is literally only an IPB6 session.
What's he supposed to set the next hop to? In the
router's defense it's not like he has a whole lot of choices.
He pretty much has to guess. He has to make something up.
Now, how they chose to make it up, I can't say I completely
agree with, but, none the less, they had to just make
something up. Of course, what they did, the 32, well,
that's 20 out of the beginning out of the IPB6 address of the
neighbor. 1 is 01 13 well, what would be 0D, but of course we
drop the leading 0 so it's just the D and then 184 is B8.
It took the first 32 bits out of the network portion of the IPB6
address of the peer and put that in as the next hop.
Like I said and that's supposed to be useful how?
I don't know. It's not helpful, but again, they have
to put something in, so there it is. Now, they could've
of, a lot of people look at this and say, well, they
could've taken the end of it. I'm not saying I
completely disagree, but the problem with taking
the end of it, is I mean, just take a look at our example here,
there is a 64 bit network portion 2001DB8:100:39::9.
That means that the entire last 64 bits are all zeros with a
nine at the end. What would our next hop have been?
0.0.0.9 well, that's not a valid IP address. That's not
a valid next hop anyway. In fact, you wouldn't be able to
advertise it. It's an invalid next hop. It's not even an
IP address. By taking the beginning, even though it's
pretty much not very useful, at least they know
there's going to be bits there. At least they know there's going
to be some addressing to take. Even if it becomes
32.1.0.0 because we did 2001::9 which technically
you could do, wouldn't be a real thing, but they just wanted
to make sure that there were actually going to be bits there.
That it wasn't going to be all zeros. Because it could
have easily been 0.0.0.9 here and that wouldn't have been
any more helpful for one thing and certainly not helpful
in this case. To fix this, to actually send IPB4 over IPB6
we're pretty much not going to have any choice but to
do something we did in a previous lesson. Go back
to switch 3, route map RM2R3 for B4 set IP next hop
250.1 .39.9 and this should yell at us. There we go. Warning:
Next hop address is our address, and I look
at that and I say oh good, thank you. Now I know I didn't
make a typo. Here is the thing. Why is it yelling at you?
You have to remember that route maps were designed,
not what we are using them for right now. They were designed
for policy-based routing. Where you would basically say
match on this type of traffic and set the next hop to this
guy. Match on this type of traffic, set the next hop to
that guy over there. You would never, in policy-based routing,
set the next hop to your own address. I mean that would
be like the world's smallest routing loop. They would
never even leave the router. You might as
well set it to 127.0.0.1 at that point because it's
not going anywhere so that's why it's yelling at us. Is that
if we tried to use this route map for policy based routing,
we could be creating a real problem for ourselves here.
It's nice, It's trying to tell us, "Hey, do you know
what you're doing here?" I'm going to look at that and
go, "Oh, that's so nice of you, I know what I'm doing, be
quiet." I know that I'm going to use this to
manipulate a BGP route, I'm not going to be using this
for policy based routing so it's okay. So Router BGP300 on
this guy, okay and then, by the way, this is just
a stupid little trick I'll do. I'll just show it to you real
quick. You're working on a lot of devices, complex
topology and stuff, you forget what VGB is running on this
router. Now obviously, there's tons of other show
commands to find out, but a lot of times, I'll
just say Router VGB, oh what was it again but 1 boom.
You can only run one instance of BGP on the router. Just say
1 and it'll tell you, no, no, I'm already running as AS300
and I go, "Oh, that's right, thanks, got it." Address family
IPB4 unicast for neighbor 2001DV8:100:39::9 no, 3 route
map RM2R3 for V4 out. Hop over to Router 3, much
better. Now, it's 50.1.39.9 and I'm following it through BGP
10999 do show IP route for 10999 and it's going to be a
BGP learned route, no problem. This one, fairly easy to see,
but I want to show you another aspect of this that can be a
little trickier to see. Again, I'm sure by this point,
you're getting a trend that when you're doing IPB6 and BGP.
Really, when you're doing IPB4 and BGP you always have
to be concerned with next hop issues, right.
It's just that it seems to be a little bit more of an issue
in IPv6 when you factor in the whole link-local problem. And
then when you start sending IPv6 over IPv4 or IPv4 over
IPv6, it just complicates it even further. The advantage
of course to all of this-- because a lot of people
look at this and go, right, why am I even doing this again?
The idea is that we only have to have one BGP process,
one BGP session between these two routers. Could I
run completely and totally dual stack? Sure. I'll show
you that in a second. On switch 3, I'm going to
bring up router 6 again. But once again, I'm going to do
link local on this side. So I'm going to say neighbour
FE80::6%VLAN69 remote 100. I don't know why but
when I'm using link-local addressing and I have to do
that whole percent interface, you probably notice that I quite
often forget to type remote ASA after it.
I don't know why. I think my brain is just sitting there
thinking, You've already typed all that. Surely, that's
the end of the command. I don't know. I do it all the time.
Only when I do that part, though. Usually I remember
but for some reason when I do that, nope. So we
fire up BGP 100, address-family ipv4 unicast neighbor.
See he's 9. And I just want to show you on this one as soon as
the neighbor comes up. [?] AS. That's because I set him
about 100. There we go. Invalid next top received,
martian next top. Isn't that nice. Do show debug.
Counsel message, not a debug. Depends on the code.
You may have to actually debug that, debug the update to see
it, but notice what this is doing. 254.128.0.0, remember
what we said it does an6:07.420000 have to do that whole percent interface, you've probably noticed that I quite often forget the type remote AS after it. I don't know why. I think my brain is just sitting there thinking, you've already typed all that. Surely that's the end of the command. I don't know. I do it all the time. Only when I do that part though, usually I remember, but for some reason when I do that, nope. Okay. So we fire up BGP 100 address family IPV for unicast neighbor. See, he's nine. And I just want to show you on this one. Soon as the neighbor comes up. In valid next top received Martian next top. Isn't that nice? Do show debug. Okay, console message, not a debug depends on the code. You may have to actually debug that debug the updates to see it. But notice what this is doing. 254.128.0.0. Well, remember what we said it does. And you'll see the problem. This is to further complicate the problem that we had a minute ago. Okay, quick reminder. If we go back over to router 3, the problem we were having is we were getting that ridiculous. There was it way back here. That ridiculous 32.1.13.184. But look, at least he was taking it. At least he was taking it and going, well, that's great. I don't know where it is. I don't have next top reach ability. So I can't set it as best. But at least it showed up on router 6 right now. I'm getting this thing and it's just flat out telling me it's an invalid next top. Okay, again, one more time. It is a Martian. Why? 254. In an IPv4 address. Really? That's a neat trick. I'd have to look up what class that even is. E, F, G. I don't know what class we're up to when we get to 254. Because we don't use them. Okay, but it's not usable. That's the problem. And again, this is because it's pulling it from the link local. F, E becomes 254. And this isn't even a matter of saying do show IPvGP and going, oh, oh, yeah, that next top's not reachable. It's not reachable. It's not even valid. Okay, so you see the problem here. I'm not going to go through fixing it. You would fix it with the route map just like we already did. I'm just trying to show you that if you're using link locals, this can even be more of a problem or more difficult to find. However, you want to say that because it's beyond just not reachable. It's not even valid when you take those first 32 bits and you convert them. So that can really be a problem. Okay? But just to show you real quickly here, the other way you can do this is I'm just actually, I'm just going to say no route or BGP 100 on this guy. And up on switch three, I'm going to say, let's see where we're at. Do show run, begin BGP since the switch, this version of code on the switch does not have section yet. Okay. So I want to say no to this neighbor. Okay. And instead I'm going to just do this neighbor 50 dot 1 dot 69 dot six remote as 100. And actually he's not even putting in a network right now. We're just looking at neighborhoods. Let's put in a network network 10999. And then address family IPV six, unicast neighbor. F8, the air colon colon six percent VLAN 69 remote 100. I said percent I typed dollar. They're close. Network 2001 DBA colon 100 colon 100 colon nine slash 128. Do show IPV GP. So he should be injecting his loop back. Do show BGP IPV six unicast and he should be injecting his IPV six loop back. Isn't remote as 300. Add just family IPV six, unicast neighbor F8, zero colon colon nine. Big bit ethernet 01 remote as 300. Trace back and neighbor comes up. IPV four neighbors already up. You can see there. So if I said do show IPV GP he should have the IPV four route. Do show BGP IPV six unicast he should have the IPV six route. Perfect. But do show TCP. Brief all. I just want to show you that that means we have two sessions established. So again back to the why did we go through all these last couple sections. Yes, you can absolutely keep your IPV four and your IPV six sections completely separate. And I could say do show run section BGP and we have just two completely separate configs and I'm running IPV four over IPV four. And for a lot of people they're going to look at that and go yeah, yeah that makes sense. That's how we're going to do it. And this is of course the support dual stack and we're going to get the transition mechanisms coming up in a few lessons. But that's exactly what that's for. There's nothing wrong with this. You just have extra TCP sessions. So doing it the way I just showed you you can do one session either IPV four or IPV six and exchange either type or any type really of address family or route across it. So that's really the advantage. And the one of course that we're going to need for a while, particularly when we get to MPLS is going to be the IPV six routes across the IPV four session. So that's going to become a little bit of an issue. We're going to deal with it when we get to MPLS. But that's how you get the routes through BGP regardless of the underlying