Notizen
MPLS
Inhalt der Notizen (2)
Seite 1
Basics:
- MPLS puts label between IP header and ethernet header
- router look at the Label and swap.
- MPLS leverages routing and CEF
- MPLS is layer 2.5 technology - MPLS label is put between Layer 2 n layer 3 header
- MPLS still needs routing protocol.
- MPLS can allow QoS for even ethernet frames.
Terminology
- LSR : label switching router: any router on which MPLS is running
- LSP: label switching path: undirectional path starting from 1st router which adds MPLS label and last router which POPs MPLS label. LSP in each direction are determined by routing table
- LER: Label edge routers: routers at the edge which add label and pop out the label
- core LSR/intermediate LSR: routers which are swapping labels
Control plane: See 1st pic
- learn about the data but not used for forwarding data. like EIGRP topology table
- LDP LIB: label information base is in control plane.
Data Plane:
- used for forwarding packets. IP routing table, FIB table, adjacency table
- FIB table for label: for assigning a label
- LFIB table: for swapping a label
- adj table: for Layer 2 info
Forwarding Equivalent class(FEC):
- the path in MPLS cloud which is taken for a destination route.
-
MPLS label:
- 32 bit or 4 bytes long
i)1st 20 bits are label values which are assigned to routes
- 0 to 15 of MPLS labels are reserved
- if no MPLS is running, routes in routing table are jumbled. once MPLS starts, routes are moved to LIB table in control plane and are sorted with lowest at top. labels are assigned starting from 16 to lowest route and so on.
-
ii) Next 3-bits are Experimental bits for QoS
iii) Next field is 1 bit long which is bottom of stack indicator. a MPLS PDU can have multiple labels:
IP head-- MPLS tag 1 -- MPLS tag 2 -- Layer 2 header
MPLS tag 1 is bottom tag and MPLS tag 2 is upper tag
- Bottom of stack bit set indicates bottom tag
- Bottom label will have BoS bit as 1
iv) last 8 bits are TTL values
Label distribution protocol (LDP):
1) LDP neighbor-ship is formed between routers
2) router will check for all routes in its routing table except BGP, sort them out and create local labels for the same.
3) router will advertise those local labels to its directly connected LDP neighbor
4) neighbor router will receive remote labels and put it in its LIB table
5) no split horizan. whatever you advertised to me, i will advertise back to you using locally generated label. its job of the FIB table to find the egreess interface.
Steps:
Step 1) exchange LDP hellos and learn about neighbors
mulicast ip: 224.0.0.2, uses UDP port S-port and D-port = 646
LDP hello packets contains:
1) LDP ID or LSR ID:
same as router id + label space :
x.x.x.x:y - 6 bytes
2) transport address: LDP initialization msg use unicast. transport address will be used by LDP initialization msgs for unicast to talk to neighbor.
3) IP TTL as 1
4) hold time: 15sec
5) we can change transport address IP:
int fa0/0
mpls ldp discovery tranport-address [IP address | interface ]
step 2) initiate TCP 3 way handshake
- SYN will be send by router with higher LDP ID using Transport address as source and destination. Destination port will be 646
step 3) send LDP initialization msgs:
-destination: unicast
-uses TCP
-uses transport address as source and destination
- first LDP initialization msg will be send router with router with higher LDP ID address
- tcp destination port 646
step 4) label will be assigned and exchanged
- check routing table for all routers except BGP
- assign labels and advertise to neighbor
Verify:
- check MPLS neighbors:
R2#show mpls ldp discovery
Local LDP Identifier:
2.2.2.2:0
Discovery Sources:
Interfaces:
FastEthernet1/0 (ldp): xmit/recv
LDP Id: 1.1.1.1:0
R2#
- check labels in LIB table(control plane):
R2#show mpls ip binding
1.0.0.0/8
in label: 17 ----> local label
out label: imp-null lsr: 1.1.1.1:0 inuse ------> label by neighbor
1.1.1.1/32
out label: imp-null lsr: 1.1.1.1:0
2.0.0.0/8
in label: imp-null
out label: 16 lsr: 1.1.1.1:0
2.2.2.2/32
in label: imp-null
4.0.0.0/8
in label: 18
out label: 17 lsr: 1.1.1.1:0 inuse
10.0.0.0/8
in label: imp-null
out label: imp-null lsr: 1.1.1.1:0
10.0.14.0/24
in label: 16
out label: imp-null lsr: 1.1.1.1:0 inuse
10.0.123.0/24
in label: imp-null
out label: imp-null lsr: 1.1.1.1:0
R2#
- check in data plane LFIB table:
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 10.0.14.0/24 0 Fa1/0 10.0.123.1
17 Pop tag 1.0.0.0/8 0 Fa1/0 10.0.123.1
18 17 4.0.0.0/8 0 Fa1/0 10.0.123.1
- change MPLS LDP hello msg timer from default 5 sec
(config)# mpls ldp discoveru hello
- change MPLS TCP keepalive from default 60 sec
(config)# mpls ldp holdtime
keepalives:
1) UDP keepalives with hello of 5 and hold of 15 sec
2) TCP keepalives with hello of 60 sec and hold of 180 sec
change tcp keepalive
-config#mpls ldp holdtime
enabling MPLS:
step 1) CEF should be running
step 2) IGP should be running
step 3) go to interface and type mpls IP
MPLS label space:
Type 1) per platform: used for frame techonoligies like Ethernet, frame-relay, PPP,HDLC. Labels are created for a route and advertised to all peers
- LSR ID:x.x.x.x:0
Type 2) per interface: if we are doing ATM - we are sending different labels to each interface.
- LSR ID: x.x.x.x: 1 ??
Penultimate hop popping (PHP)
why PHP?
- LFIB tables has entry from LIB,FIB and adj table.
- for any route learned by IGP, Adj table will have entry with L2 info. ARP entry are copied to Adj table. so any labelled packet comes, MPLS will swap the label and check L2 info from adjcancy table and send packet to out interface. we ARP for a host, not for a subnet
- for any route which is connected, adj table wont have any entry
- suppose no PHP. if labelled packet comes - layer 2 will get details that its Labelled packet as frame will have MPLS ethertype. it will send packet to LFIB table. LFIB table will POP out the label. Since LFIB table doesn't have adj info, it will PUNT the packet to CPU. CPU will ARP for the destination host.
PHP comes to picture:
Implicit null (label =3)
- Egress LSR has to do 2 lookups for connected and summarized routes:
a)it would have to look up the label in the LFIB, just to figure out that the label needs to be removed
b) IP lookup
we can avoid this situation:
-The egress LSR signals the penultimate LSR to use implicit NULL by not sending a regular label, but by sending the special label with value 3.
- The LFIB entry for the LSP on the PHP router shows a “Pop Label” as the outgoing label
-------------------------
explicit null (label = 0)
- in case of QOS
router alert label(label=1)
-
Summarization in MPLS
- router which is doing summarization will create a null route. LIB will take it as connected route. so LIB will advertise the route with implicit null.
- any neighboring router will strip the MPLS label and send the traffic as IP packet.
TTL Propogation
- by default
a) edge router of MPLS, which receives the IP packet - will copy the TTL of IP packet in its MPLS TTL.
b) IP packet TTL will not change in MPLS cloud.TTL of MPLS will decrement.
c) on the remote MPLS edge router, MPLS label will get removed. MPLS TTL will be copied into IP packet and packet will be send egress to CE
disable MPLS TTL propagation:
config#no mpls ip propogate-ttl <forwarded | local>
a) edge router of MPLS, which received the IP packet - will keep the IP TTL and add TTL of 255 to MPLS
b)TTL of MPLS will decrement
c) on the remote MPLS edge router, MPLS label will be removed. IP TTL will decremented once and packet will be send to egress to CE
MPLS optional features
1) MPLS ID:
- same as router id
-change:
(config)# mpls ldp router-id [force]
2) MTU:
- default mtu is 1500 bytes
- if devices support baby giants (<1601 bytes), we can configure MPLS MTU on each device:
#mpls mtu override <1504>
3) conditional label advertisement
SHOW commands:
#show mpls ldp parameters
#show mpls interfaces
#show mpls ldp discovery
#
Seite 2
Informationen
- Beschreibung
- Notiz am MPLS, erstellt von inga pinga am 07/05/2016.
- Erstellt von
- inga pinga
- Aufrufe
- 8
- Bewertung