Saturday, February 22, 2020

MPLS LDP Label Filtering Example

Once you enable MPLS on the interfaces between the routers and LDP neighbor adjacencies have been formed, a label will be advertised for each network. With LDP however we can configure filters to decide what networks should get a label and which ones shouldn’t be tagged. I’ll use the following topology to demonstrate this:
MPLS LDP Filtering Example Topology
Above we have 3 routers and each router has 2 loopback interfaces so that we have plenty of networks to play with. Before we enable MPLS we’ll configure OSPF so that all networks are advertised:
R1,R2,R3:
(config)#router ospf 1
(config-router)#network 0.0.0.0 255.255.255.255 area 0
We’ll do this the easy way and activate OSPF on all interfaces. Now let’s enable MPLS on the FastEthernet interfaces:
R1(config)#interface fastEthernet 0/0
R1(config-if)#mpls ip
R2(config)#interface fastEthernet 0/0
R2(config-if)#mpls ip
R2(config-if)#exit
R2(config)#interface fastEthernet 0/1
R2(config-if)#mpls ip 
R3(config)#interface fastEthernet 0/0
R3(config-if)#mpls ip
Let’s check if we have LDP neighbors:
R2#show mpls ldp neighbor | include Peer
    Peer LDP Ident: 11.11.11.11:0; Local LDP Ident 22.22.22.22:0
    Peer LDP Ident: 33.33.33.33:0; Local LDP Ident 22.22.22.22:0
So far so good, now let’s take a look at the LDP labels that have been generated:
R1#show mpls forwarding-table 
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop    
tag    tag or VC   or Tunnel Id      switched   interface              
16     Pop tag     2.2.2.2/32        0          Fa0/0      192.168.12.2 
17     17          33.33.33.33/32    0          Fa0/0      192.168.12.2 
18     18          3.3.3.3/32        0          Fa0/0      192.168.12.2 
19     Pop tag     22.22.22.22/32    0          Fa0/0      192.168.12.2 
20     Pop tag     192.168.23.0/24   0          Fa0/0      192.168.12.2 
R2#show mpls forwarding-table 
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop    
tag    tag or VC   or Tunnel Id      switched   interface              
16     Pop tag     1.1.1.1/32        0          Fa0/0      192.168.12.1 
17     Pop tag     33.33.33.33/32    0          Fa0/1      192.168.23.3 
18     Pop tag     3.3.3.3/32        0          Fa0/1      192.168.23.3 
19     Pop tag     11.11.11.11/32    0          Fa0/0      192.168.12.1 
R3#show mpls forwarding-table 
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop    
tag    tag or VC   or Tunnel Id      switched   interface              
16     Pop tag     192.168.12.0/24   0          Fa0/0      192.168.23.2 
17     16          1.1.1.1/32        0          Fa0/0      192.168.23.2 
18     Pop tag     2.2.2.2/32        0          Fa0/0      192.168.23.2 
19     Pop tag     22.22.22.22/32    0          Fa0/0      192.168.23.2 
20     19          11.11.11.11/32    0          Fa0/0      192.168.23.2
For all networks a label has been generated by LDP. Now let’s configure filtering so that we only generate labels for the loopback 0 interfaces. This is how you do it:
R1(config)#access-list 1 permit 1.1.1.1 0.0.0.0
R1(config)#no mpls ldp advertise-labels
R1(config)#mpls ldp advertise-labels for 1
R2(config)#access-list 1 permit 2.2.2.2 0.0.0.0
R2(config)#no mpls ldp advertise-labels
R2(config)#mpls ldp advertise-labels for 1
R3(config)#access-list 1 permit 3.3.3.3 0.0.0.0
R3(config)#no mpls ldp advertise-labels
R3(config)#mpls ldp advertise-labels for 1
First use no mpls ldp advertise-labels to disable the advertisement of all labels. Secondly use the mpls ldp advertise-labels for command and refer to an access-list or prefix-list to choose what networks should have a label.
Be careful, if you forget to use the no mpls ldp advertise-labels command you will discover that LDP is STILL advertising a label for each network…
Let’s verify our work:
R1#show mpls forwarding-table 
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop    
tag    tag or VC   or Tunnel Id      switched   interface              
16     Pop tag     2.2.2.2/32        0          Fa0/0      192.168.12.2 
17     Untagged    33.33.33.33/32    0          Fa0/0      192.168.12.2 
18     Untagged    3.3.3.3/32        0          Fa0/0      192.168.12.2 
19     Untagged    22.22.22.22/32    0          Fa0/0      192.168.12.2 
20     Untagged    192.168.23.0/24   0          Fa0/0      192.168.12.2
R2#show mpls forwarding-table 
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop    
tag    tag or VC   or Tunnel Id      switched   interface              
16     Pop tag     1.1.1.1/32        0          Fa0/0      192.168.12.1 
17     Untagged    33.33.33.33/32    0          Fa0/1      192.168.23.3 
18     Pop tag     3.3.3.3/32        0          Fa0/1      192.168.23.3 
19     Untagged    11.11.11.11/32    0          Fa0/0      192.168.12.1
R3#show mpls forwarding-table 
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop    
tag    tag or VC   or Tunnel Id      switched   interface              
16     Untagged    192.168.12.0/24   0          Fa0/0      192.168.23.2 
17     Untagged    1.1.1.1/32        0          Fa0/0      192.168.23.2 
18     Pop tag     2.2.2.2/32        0          Fa0/0      192.168.23.2 
19     Untagged    22.22.22.22/32    0          Fa0/0      192.168.23.2 
20     Untagged    11.11.11.11/32    0          Fa0/0      192.168.23.2 
Above you can see that only network 1.1.1.1/32, 2.2.2.2/32 and 3.3.3.3/32 now have a label when advertised to a LDP neighbor.
hostname R1
!
ip cef
!
no mpls ldp advertise-labels
mpls ldp advertise-labels for 1
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
!
interface Loopback1
 ip address 11.11.11.11 255.255.255.255
!
interface FastEthernet0/0
 ip address 192.168.12.1 255.255.255.0
 mpls ip
!
router ospf 1
 network 0.0.0.0 255.255.255.255 area 0
!
access-list 1 permit 1.1.1.1
!
end
hostname R2
!
ip cef
!
no mpls ldp advertise-labels
mpls ldp advertise-labels for 1
!
interface Loopback0
 ip address 2.2.2.2 255.255.255.255
!
interface Loopback1
 ip address 22.22.22.22 255.255.255.255
!
interface FastEthernet0/0
 ip address 192.168.12.2 255.255.255.0
 mpls ip
!
interface FastEthernet0/1
 ip address 192.168.23.2 255.255.255.0
 mpls ip
!
router ospf 1
 network 0.0.0.0 255.255.255.255 area 0
!
access-list 1 permit 2.2.2.2
!
end
hostname R3
!
ip cef
!
no mpls ldp advertise-labels
mpls ldp advertise-labels for 1
!
interface Loopback0
 ip address 3.3.3.3 255.255.255.255
!
interface Loopback1
 ip address 33.33.33.33 255.255.255.255
!
interface FastEthernet0/0
 ip address 192.168.23.3 255.255.255.0
 mpls ip
!
router ospf 1
 network 0.0.0.0 255.255.255.255 area 0
!
access-list 1 permit 3.3.3.3
!
end

That’s all I wanted to show you, if you have any questions feel free to leave a comment!

No comments:

Post a Comment