[music]
Okay, time for MPLS 6VPE. Hopefully you just finished the lesson on 6PE,
and this is going to build on that.
Just to bring up our diagram-- again, this is the diagram for the slides,
but I'm going to bring up my live diagram here, which is sort of the same.
I've just been marking up on this one here a little bit.
What we want to take a look at here is,
we're going to make some changes to what we did earlier,
but really just to the extent of bringing VRFs into this.
So we're simply going to create,
in this case, we'll do-- let's see. I'll just grab a pen here.
We'll do VRFA, and maybe we'll bring in customer B, we'll see.
But that would be A and B, this would be VRFA,
VRFA, VRFB - and that's if we decide to run it down there.
We'll see how we're doing here.
Now as a reminder, on router 1, 4 and 5 I already have BGP running.
I did actually-- in the cleanup from the previous section I did actually
get rid of the IPv6 address family.
We don't need it anymore, all we need now is the VPNv6 address family.
And I also had to kill OSPF on the PE routers because we can't run
it the way we had it before. Up until now we've just been running straight,
call it legacy if you will, config for OSPF version 3.
Now, we're going to move into actually doing VRFs here.
So let's jump into the config, and we'll start at least with customer A
and we'll see how that goes, if we want to get into customer B here.
So let's go over to router 1. And the first thing is, if you've used VRFs before,
you might be very tempted to type ip vrf A.
And the problem with that is, once you look at the VRFs, it's only protocol IPv4.
That would be because you typed ip vrf A.
No. What you need is the new format, vrf definition A,
and then we'll set up our route distinguishers,
so route distinguisher 100:100.
Route target 100:100. Address family IPv4 and address family IPv6.
We're not going to do IPv4 today, but I'm going to assume that you
would ultimately want support for that. So, do show vrf.
Now, notice we have both protocols.
No interfaces yet, but we're going to do that next. So there's VRFA.
Just in case we decide to use it, vrf definition B.
Nice of it to tell at me since I typed it wrong.
So route distinguisher, route target, address family IPv4,
address family-- 65, IPv6, okay. So there's that.
We can go do the same thing on router 4.
And 5.
And A and B on router 5. So that's step one, actually create the VRFs.
Step two, let's go back to router 1.
Let's actually put the interfaces in there. And what I would do if I were you
is I would say, interface fa0/0.71.
Do show run interface fa0/0.71, before I did anything.
Because then what you're going to have to say is, vrf forwarding A,
and it's going to remove this, which I just put
back in, and this, which I just put back in.
Interface fa0/0.91. Do show run interface fa0/0.91, ip vrf forwarding B.
Of course. See, now I just messed up - vrf forwarding B.
At least it yells at you because it realizes that that's an IPv6-enabled VRF.
I don't know why I keep doing that twice.
There we go, router 4.
There we go, router 5.
Did it again.
That was good.
And that was 105.
See, that's what the startup's for.
All right, so let's put those back on there and everybody should be good.
Normally if this was production or whatever, I would go around
start doing some ping tests, make sure everything's working. But at this point
I'm sort of going to go with the, it's working unless something doesn't
come up, and then we'll go investigate and
see why, in case we have a typo or anything.
Because there are a lot of moving parts here.
Everybody's human, it's very easy to make mistakes,
miss a piece - you always want to verify and check.
Let's hop back over here to router 1 and let's get our CE to PE
routing protocol running. Now, I kept OSPF running on switch 1, switch 2 and router 6.
So what we need to do is we need to say interface fa0/0.71,
ospfv3 process 1 for ipv6 area 0.
There you go. Neighbor comes up, no big deal. Router 4...
ospfv3 1, ipv4-- I don't have to say vrf on that, just area. Area 0. Router 5...
Should come up. Oh, I said ipv4. It's really cool if we want to run IPv4,
but that's not what we're trying to do right now.
We could support that, of course, if we wanted to.
If you wanted to have a customer that could run IPv4 routes over OSPF version 3,
I could leave that there. It's not going to hurt anything.
It's just a lot more infrastructure I would have to set up for my MPLS to support that.
And then router 5, interface fa0/0.65, ospfv3 1 for ipv4 area 0.
Neighborship should come up
if 6 is running OSPF. It should be.
And I just typed IPv4 again.
Let's sit here and watch it all day trying to work, and it's not going to.
I don't know why I keep doing that.
Here we go. That should be a little bit better.
There we go. Now we're running OSPF in the VRFs. So, do show ipv6 route for vrf A.
So there, he's learning OSPF routes in the VRF.
Router 4...
is learning the routes in the VRF.
Router 1--
Can't do that.
And he's learning them as well.
So, as always, next thing is simply redistribution.
So, since I'm already on router 1, I say router ospfv3 1,
address family ipv6 unicast for vrf A. Redistribute bgp 100.
Router bgp 100, address family ipv6 unicast for vrf A. Redistribute ospf.
And this doesn't actually support V3, you
literally just have to say ospf 1, that's fine.
Again, if I want to support everything coming from a potential customer,
internal external NSSA.
Router 4...
no space in there.
Address family ipv6 unicast for vrf A. Redistribute bgp 100.
Redistribute...
And router 5.
Obviously if I had any more than about these three routers to do I'd
put this in Notepad and just paste it in there, which you can do either way anyway.
It just doesn't take that long to do.
If we've done our jobs, we should be able to go over to router-- let's go for broke.
Let's go all the way over to Switch 1 and let's say,
do show ipv6 route, and he should have all of them. There we go.
So they're all coming through.
Let's say, do trace that guy.
and there you go. It goes to all the devices
in the middle, right through the MPLS cloud.
Perfect. Now, if we go to-- and this is why I always bring a router into it,
because the router can actually see the MPLS tags.
So if I were to trace over to say, switch 2's loopback,
you can actually see it go right through MPLS.
So it goes to 5, to 3, to 4, and up to switch 2.
Perfect. And you can see that it's getting label 18 and 23.
Pop label 18, deliver it with just 23 to that router.
If we try to go to, say, switch 1's address, different labels.
16, because it's going to a different next-hop,
and again it just so happens they all generated 23 for that first VPN label.
Remember that that label 23 is per PE.
So, when they started walking the VRF routing tables,
they started generating the same labels. So when you see the same labels like this,
it's just coincidence. Don't think anything of it.
It's just because it's from a different PE router.
So that takes care of customer A, so that went pretty good.
Let's go ahead and bring in customer B, and let's go a little more real-world with him.
Customer B is going to run-- I think he's going to run BGP.
So let's go over to switch 3, and I don't honestly remember what
I have set up on this guy right now. Do show ipv6 interface brief.
So he's got his 91 with a link-local, and he's got the same basic setup.
Okay, so here's what we're going to do. We're going to say,
router bgp, and let's see, he's switch 3,
so generally his number is 9, so we'll make it bgp 900. And we will say, neighbor.
And we're going to have to use link-locals here,
so it's going to be fe80::1%Vlan, should be 91, remote-AS is 100.
Address family ipv6 unicast. Neighbor, that guy.
Activate. Okay.
Let's also say network,
that guy /, and that's his real loopback,
so that should be a /128, and network,
and that should be a /64.
Do you show bgp ipv6 unicast. So he's putting those two networks in.
Let's go up to router 1, and let's say address family, ipv6 unicast for vrf B,
neighbor fe80::9%FastEthernet0/0.91 remote-AS 900.
It yelled about that quite a few times.
I don't think it actually came up either.
I'll put global addresses on these if I have to.
Again, this code has a little bit of an issue with this link-local-- oh.
That's interesting. I bet it did have a fit about that.
It's a typo.
That's why it's screaming and yelling so much.
Yelling once is one thing. Yelling three times and then not working, is another.
There we go, much better.
Do show ipv6 route for vrf B, and we should be getting those two routes from BGP.
Perfect.
Let's go to switch 4 and say, router bgp 1000 - just because
his number, so to speak, is 10 - and address family ipv6 unicast
neighbor fe80::5%Vlan105 remote 100. Do show ipv6 interface brief.
You could always do the exclude unassigned here,
but the way it puts it on another line it gets a little bit tricky to filter this.
One thing you could do is you could say something like,
exclude unassigned, or, bracket down, something like that.
Incomplete command before pipe. Do show ipv6 interface brief.
It probably doesn't like that.
Here we go.
Oh. I put that in there and then I put a brace instead of a bracket.
Hello, Escape, normal meaning of the bracket.
Normal meaning of the bracket is to create a grouping, a range, basically.
Oh, see, now I didn't geto routes from BGP. Perfect. Okay. Over to router. Let's go to switch four and say router BGP 1000. Just because his number so to speak is 10. And address family IPV6 unicast. Neighbor FE80 colon colon 5 percent VLAN 105. Remote 100. Do you show IPV6 interface brief? You could always do like the exclude on assigned here. But the way it puts it on another line. It gets a little bit tricky to filter this. Now one thing you could do is you could say something like exclude unassigned or bracket down. Something like that. And complete command for private do show IPV6 interface brief. Probably doesn't like that. There we go. Oh. I put that in there and then I put a brace instead of a bracket. Hello. Normal meaning of the bracket. Normal meaning of the bracket is to create a grouping. A range basically. So, I'll see now it didn't get the administrative read down. See how much fun this is? You know what? Let's leave the bracket out. Let's just say unassigned or down. There we go. It's one way to do it. So, let's try to get a little too fancy there. You see we're adding to get both lines though because if you look up here otherwise it's on two different lines. The unassigned and the down. But see then I wasn't missing these. You can always do like down at the end of the line anyway. What we did is fine. What we want to say anyway, all of that was just to say network. This one. That's his regular loop back. So, that's a slash 128. And this network. Which should be a slash 64. Do you show BGP IPV6 unicast? Good. And then router five. Add just family IPV6 unicast for VRFB. Neighbor FE80 colon colon. That should be 10% fast Ethernet 00.105 remote AS1000. Good. Do show IPV6 route for VRFB. Coolness. Go over to switch one. Sorry. Switch three. Let's see. Do trace 2001 DB8 colon 100 colon 10 colon colon 10. Here we go. Right through the MPLS core. Two AS1000 on the other side. The beautiful thing about using BGP as your CE to PE routing protocol is there's no redistribution. Now, normally, of course, you would be doing redistribution on, in this case, the CE devices, switch three and switch four. Okay. But notice on switch three, if I say do show IPV6 route, all he has is customer B's routes. That's it. And if I go to customer A, switch one. All he has is customer A's routes. So no route leaking between them. Customers separated A and B and we're sending IPV6 directly through MPLS. Now, something to note about this whole thing. It's really cool. It's a lot of fun. There are of course downsides. Number one, the service provider and or your core has to support it. Number two, unlike DMVPN that we looked at earlier, this requires a specific protocol, MPLS, to be available at every location. The advantage of DMVPN is it can run over anything. It can run over to standard IP, you know, internet connectivity. This requires MPLS underneath the whole thing. So that can, of course, you know, become a little bit of an issue and so on. But otherwise, that's it. That's your 6VPE and works very well. A little bit of config to set up there. You know, a little bit of typing. But otherwise, a pretty straightforward process.