CCIE SP Notes For CCNP
CCIE SP Notes For CCNP
IOS-XR
[Labels:
[Labels:
[Labels:
[Labels:
[Labels:
code 0
22 Exp: 0]
22 Exp: 0]
21 Exp: 0]
22 Exp: 0]
implicit-null Exp: 0] 112 ms
76 ms
80 ms
104 ms
MPLStracerouteinIOS-XRrequires"mpls 217
22 Exp: 0]
23 Exp: 0] 41 ms implicit-null Exp: 0] 126 ms
oam"tobeenabled.
setup/hold priorities
Every LSP/tunnel has a setup and a hold priority, each one having values from 0 (best) to 7
(worst).
setup priority
o used when the LSP is being established
hold priority
o used when the LSP is already established
IOS
interface Tunnel0
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 2.2.2.2
tunnel mpls traffic-eng priority 4 4
tunnel mpls traffic-eng path-option 1 dynamic
IOS-XR
interface tunnel-te0
ipv4 unnumbered Loopback0 priority 4 4
destination 2.2.2.2 path-option 1 dynamic
Preemption
When an LSP is set up across a path where resources have been exhausted, its setup priority
is compared to the hold priority of all the LSPs already using the resources, in order to
determine if the new LSP can preempt an existing LSP and use its resources.
Do not use a hold priority that is worse than the setup priority, otherwise you might end up
with continuous preemption (the software will probably prohibit you from doing so).
When having primary and backup tunnels, it's good practice to assign better priorities to
primary tunnels.
IOS-XR supports soft-preemption, which tries to preempt tunnels with the least possible
disruption. You have to enable it under the tunnel and on every node.
LSP attributes
It provides the ability to configure values for several LSP-specific path-options for TE
tunnels. One or more TE tunnels can specify specific path-options by referencing an LSP
attribute list. You can configure LSP attributes lists with different sets of attributes for each
path-option
IOS
)
, IOS-XR)
)
)
IOS,
(IOS
IOS-XR
(IOS
IOS)
IOS
IOS
IOS
LSP attribute list values referenced by the path-option take precedence over the values
configured on the
tunnel interface.
interface Tunnel0
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 19.19.19.19
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng priority 7 7
tunnel mpls traffic-eng bandwidth 50000
tunnel mpls traffic-eng path-option 1 explicit name R3-R4-R6-
R5
attributes LSP-ATTR-1
IOS-XR
mpls traffic-eng
attribute-set path-option LSP-ATTR-1
signalled-bandwidth 22222 !
interface tunnel-te0
ipv4 unnumbered Loopback0
signalled-bandwidth 50000
destination 2.2.2.2
path-option 1 dynamic attribute-set LSP-ATTR-1
IOS
bandwidth 22222
priority 6 6
P2P TUNNELS/LSPs:
Name: R2_t0
19.19.19.19
Status:
Admin: up
connected
Oper: up
(Tunnel0) Destination:
Config Parameters:
Bandwidth: 22222 kbps (Global) Priority: 6 6 Affinity:
0x0/0xFFFF
Metric Type: TE (default)
AutoRoute announce: enabled LockDown: disabled Loadshare:
22222
bw-based
auto-bw: disabled
...
TE LSP reoptimization
Tunnel reoptimization is the signaling of an new LSP that is more optimal (i.e. with a lower
metric) than the current LSP a TE tunnel is using and the switching over of the tunnel's data
to use this new LSP.
The new more optimal TE LSP is always established and the data moved onto it before the
original LSP is torn down (using RSVP shared explicit reservation style), in order to ensure
that no data packets are lost during the transition to the new LSP.
Links
There is no need to have a single end-to-end LSP tunnel between two PEs. You can have:
multipleTE tunnels (one after the other) between the PEs, using "stitching" on the
intermediate P routers
a combination of TE tunnels plus LDP sessions
Then, traffic can be forwarded from the P to the end PE and have the VPN label
popped there without any issue.
PE-to-PE tunnels
o high number of LSPs
You can route through the TE tunnel using one of the following:
autoroute announce
o the tunnel destination is announced automatically into the IGP of the head-end only o not
supported on inter-area tunnels
autoroutedestination
221 NTS for CCIE SP Lab by chatasos
When doing PE-to-P TE tunnels you must be careful of the PHP happening one hop before
the P,
exposing the bottom VPN label to it. One solution is to create an extra layer of labels between
the PE and
the P (using a tLDP session across the tunnel) in order to avoid exposing the VPN label and
expose a
o the TE link is advertised like a normal link into the IGP of all routers policy-based
routing (PBR)
o traffic is forwarded across TE tunnels based on a single EXP value per tunnel
o traffic is forwarded across TE tunnels based on one or more EXP values per tunnel o
supported on inter-area tunnels
static route
IOS
interface Tunnel0
tunnel destination x.x.x.x
IOS-XR
router static
address-family ipv4 unicast
y.y.y.y/32 tunnel-te0
You can also use a static route for a loopback on the tail-end, and then use that loopback for
BGP next-hop under a specific VRF.
IOS
PE-1
!
interface Loopback100
PE-2
!
interface Loopback100
IOS
interface Tunnel0
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 2.2.2.2
tunnel mpls traffic-eng autoroute announce tunnel mpls
traffic-eng path-option 1 dynamic
Known via "ospf 1", distance 110, metric 4, type intra area
Last update from 2.2.2.2on Tunnel0, 00:03:39 ago
Routing Descriptor Blocks:
* 2.2.2.2, from 2.2.2.2, 00:03:39 ago, via Tunnel0
IOS-XR
interface tunnel-te0
ipv4 unnumbered Loopback0 autoroute announce destination
2.2.2.2 path-option 1 dynamic
Known via "isis 1", distance 115, metric 30, type level-1
Installed Jan 16 13:29:24.723 for 01:11:17
223 NTS for CCIE SP Lab by chatasos
autoroute destination
IOS
interface Tunnel0
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 2.2.2.2
tunnel mpls traffic-eng autoroute destination tunnel mpls
traffic-eng path-option 1 dynamic
IOS-XR
not supported
If there is another static route manually configured, then traffic is load-balanced (unless a
different metric is used).
Ifboth"autoroute announce"and"autoroute
destination"areconfigured,then"autoroute destination" becomes active, due to
the static route having precedence over IGP in the RIB.
forwarding adjacency
IOS
interface Tunnel0
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 10.0.0.1
tunnel mpls traffic-eng forwarding-adjacency tunnel mpls
traffic-eng path-option 1 dynamic
It's obvious that if you want to route other than the tunnel destination traffic through the
tunnel, the autoroute
IOS-XR
interface tunnel-te0
ipv4 unnumbered Loopback0 destination 10.0.0.2 forwarding-
adjacency path-option 1 dynamic
If you don't set the IGP metric under the tunnel interface, the default IGP metric will be used
(which might not provide the expected results). In any case you have to be very careful of
loops.
Although a bidirectional tunnel is required, there is no actual IGP adjacency established over
the TE tunnel.
An easy way to verify the existence of the tunnel in the ISIS topology is to use the following
command:
IOS
System Id
R5
TE-Tunnel
R6
TE-Tunnel
XR1
TE-Tunnel
IOS
interface FastEthernet1/0
ip policy route-map TO-TUNNEL-ROUTEMAP
!
route-map TO-TUNNEL-ROUTEMAP permit 10
PBR for VRF traffic is not supported. You can use static route + vrf bgp next-hop in order to
forward each
CBTS does not allow load-balancing of a given EXP value in multiple tunnels.
If the input QoS policy modifies the EXP value, CBTS uses the modified EXP value for its
tunnel selection. If the output QoS policy modifies the EXP value, CBTS uses the original
EXP value for its tunnel selection.
Tunnel Selection
All comparisons are made per tunnel prefix (static route, autoroute). Only tunnels with the
best metric are used for CBTS.
specific EXP is configured on a single tunnel and there is a single default EXP tunnel o
traffic with that EXP is forwarded into the specific EXP tunnel
o traffic with other EXPs is forwarded into the default EXP tunnel
specific EXP is configured on multiple tunnels and there is a single default EXP tunnel
o traffic with that EXP is forwarded into one of the specific EXP tunnels (based on lowest
EXP
specific EXPs are configured on multiple tunnels and there is no default EXP tunnel
o traffic with a specific EXP is forwarded into the specific EXP tunnel
o traffic with other EXPs is forwarded into the EXP tunnel with the lowest EXP value
specific EXP is not configured on any tunnel and there is a single default EXP tunnel o
traffic with any EXP is forwarded into the default EXP tunnel
specific EXP is not configured on any tunnel and there are multiple default EXP tunnels o
traffic with any EXP is forwarded (arbitrarily) into one of the default EXP tunnels
specific
EXP is not configured on any tunnel and there is no default EXP tunnel o traffic
with any EXP is load-balanced across all tunnels
This is also applicable and on same-type tunnels (i.e. autoroute ones) with different metrics,
where only the one with the best metric is used by CBTS.
Configuration
IOS
interface Tunnel0
ip unnumbered Loopback0
and autoroute accordingly, then only the one with the static route is chosen for the CBTS,
regardless of the
Exp
Members
Tunnel0
Tunnel1
Status
up (Active)
up (Active)
Actual
3 5
0 1 2 4 6
!
interface Tunnel1
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 2.2.2.2
tunnel mpls traffic-eng path-option 1 dynamic tunnel mpls
traffic-eng exp default
!
interface Tunnel1000
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 2.2.2.2
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng exp-bundle master
tunnel mpls traffic-eng exp-bundle member Tunnel0 tunnel mpls
traffic-eng exp-bundle member Tunnel1
IOS
Master: Tunnel1000
Status: up
Conf Exp
3 5 Default
IOS-XR
not supported
227
IOS
not supported
IOS-XR
interface tunnel-te0
ipv4 unnumbered Loopback0 destination 2.2.2.2 policy-
class 5 path-option 1 dynamic
!
interface tunnel-te1
Advanced MPLS-TE
FRR (Fast ReRoute) extensions for RSVP-TE are defined in RFC 4090. Inter-Area MPLS TE
is described in RFC 4105.
Inter-AS MPLS TE is described in RFC 4216.
LSP Protection
When the new path is established and traffic is switched over to it, the backup path is torn
down.
The constraints of the backup path are signaled by the head-end to the PLR using the Fast
Reroute Object (FRO) of RSVP.
The failure and the local restoration of a main path are signaled by the PLR to the head-end
using an RSVP Path-Error message (code="Notify", subcode="Tunnel locally repaired") and
an RRO flag.
MPLS-TE/FRR is a mechanism for protecting MPLS TE LSPs from link and node failures by
locally repairing the LSPs at the point of failure. It allow traffic to continue to flow on the
LSPs, while their head- end routers attempt to establish new end-to-end LSPs to replace
them.
Backup tunnels are usually used for a short period of time, until the head-end recomputes and
signals a new
path.
229 NTS for CCIE SP Lab by chatasos
FRR repairs locally the protected LSPs by rerouting them over backup tunnels that bypass
these failed links or nodes.
FRR prefers NNHOP over NHOP backup tunnels, when both are available.
Configuration Steps
PE (head-end)
o enable FRR under the tunnel
PE (head-end)
IOS
interface Tunnel0
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 19.19.19.19
tunnel mpls traffic-eng path-option 1 explicit name X tunnel
mpls traffic-eng fast-reroute
IOS-XR
interface tunnel-te0
ipv4 unnumbered Loopback0 destination 19.19.19.19 fast-reroute
path-option 1 explicit name X
You also have the following options if you want to influence the backup tunnel selection on
the PLR:
IOS
IOS-XR
CRS(config-if)#fast-reroute protect ?
bandwidth Enable bandwidth protection request node Enable node
protection request
IOS-XR by default tries to provide the best available protection, even if the above two
options aren't activated.
IOS
interface Tunnel0
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 5.5.5.5
tunnel mpls traffic-eng path-option 1 explicit name AVOID-X
!
ip explicit-path name AVOID-X enable
exclude-address x.x.x.x !
interface FastEthernet0/0
mpls traffic-eng backup-path Tunnel0 ip rsvp signalling hello
IOS-XR
interface tunnel-te0
ipv4 unnumbered Loopback0 destination 5.5.5.5
path-option 1 explicit name AVOID-X
!
explicit-path name AVOID-X
mpls traffic-eng
Thesame"rsvp signalling
hello"type(RSVPhellosorBFD)mustbeconfiguredontheotherside
IOS-XR supports only BFD for fast detection (< 1sec). RSVP hellos can be used for simple
reroute (detection
Verification
PE (head-end)
IOS
IOS
LSP identifier
Status --------------------------- ------
2.2.2.2 0 [46]
Ready
In-label
--------
16
232
P2P LSPs:
State
InLabel
OutLabel
FRR OutLabel
: Ready
:16
: Fa0/0.45:18 : Tu0:18
Backup BW: any pool unlimited; inuse: 0 kbps Backup flags: 0x0
LSP identifier
Status --------------------------- ------
2.2.2.2 0 [46]
Active
Backup tunnels
Active interfaces
P2P LSPs:
: 1
: 1
233
State
: Active
InLabel
OutLabel
FRR OutLabel : Tu0:18
: 16
: Fa0/0.45:18
When using MPLS-TE/FRR for node protection, a label_recording flag is included into the
SAO in order to
signal that the RRO should also include labels (because these labels are actually used by the
PLR for NNHOP
IOS
If you explicitly enable it in the config, then you get the address of the physical interfaces
too.
The path when using the backup tunnel is not reflected in the above output.
You can also use the following command on the PLR in order to verify the FRR operation.
IOS
234
Tun Dest: 19.19.19.19 Tun ID: 0 Ext Tun ID: 2.2.2.2 Tun
Sender: 2.2.2.2 LSP ID: 25
Next Hop: 20.2.3.3 on FastEthernet0/0.23
Label: 20 (outgoing)
Min Policed Unit: 0 bytes, Max Pkt Size: 1500 bytes RRO:
Status:
Policy: Accepted. Policy source(s): MPLS/TE
Then the backup tunnel gets activated, the output will change to:
IOS
Path Protection
Apart from having link & node protection using FRR, you also have the option of enabling
path protection
end-to-end for a tunnel. You can have multiple backup path options per primary path option.
It's not as fast as FRR, but it's still faster than having a second path-option or relying on IGP,
because it pre-
IOS
interface Tunnel0
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 2.2.2
tunnel mpls traffic-eng path-option 1 explicit name PATH1
tunnel mpls traffic-eng path-option protect 1 explicit name
PATH1-BAK
P2P TUNNELS:
R1_t0
LSP Head, Tunnel0, Admin: up, Oper: up Src 1.1.1.1, Dest
2.2.2.2, Instance 3 Fast Reroute Protection: None
Path Protection: Requested
2
0
0 (only media is shared)
Latest IOS software releases support enhanced path protection (up to 8 secondary path
options).
IOS-XR
interface tunnel-te0
path-protection
interface tunnel-te1
path-protection
path-option 1 explicit name R2-R3-R4 protected-by 2 path-
option 2 explicit name R2-R5-R6
In IOS-XR you can either have explicit path as primary and dynamic as backup, or explicit
path as primary and backup. IOS-XR provides automatic path diversity.
The backup tunnel is configured on the PLR, under the physical interface to be protected.
IOS
interface X
mpls traffic-eng backup-path Tunnel0 mpls traffic-eng backup-
path Tunnel1
IOS-XR
mpls traffic-eng
interface X
backup-path tunnel-te 0 backup-path tunnel-te 1
You can have multiple backup tunnels protecting the same or different LSPs, each one
terminating on the
The selection priority between multiple backup tunnels is based on the following table.
6 Next-hop Limited
Any
Sub-pool or global-pool
7 Next-hop Unlimited
Any
8 (Worst) Next-hop Unlimited
After a backup tunnel has been chosen for an LSP, various conditions may change on
the network, that will cause the router to reevaluate this choice. This promotion can
happen immediately in case of a backup tunnel going up/down, or periodically every
5 mins. This time be changed by using the command "mpls traffic-eng
fast-reroute timers".Setitto0ifyouwanttodisablepromotionforLSPs.
In the following example, main tunnel (that doesn't have any signaled bandwidth
configured) can use only backup tunnel #2.
main tunnel
interface Tunnel0
backup tunnel #1
interface Tunnel1
tunnel mpls traffic-eng backup-bw 30000
backup tunnel #2
interface Tunnel2
If the main tunnel doesn't have any bandwidth configured, then it can use only backup
tunnels that don't have
If the main tunnel has a bandwidth configured, then it can use only backup tunnels that either
don't have any
In the following example, main tunnel (that has a bandwidth of 35M configured) can use only
backup tunnel #2 and #3.
main tunnel
interface Tunnel0
tunnel mpls traffic-eng bandwidth 35000
backup tunnel #1
interface Tunnel1
tunnel mpls traffic-eng backup-bw 30000
backup tunnel #2
interface Tunnel2
backup tunnel #3
interface Tunnel3
tunnel mpls traffic-eng backup-bw 40000
then you have to explicitly define as unlimited the backup-bandwidth, like below:
IOS
interface Tunnel1
tunnel mpls traffic-eng backup-bw global-pool unlimited tunnel
mpls traffic-eng backup-bw sub-pool unlimited
IOS-XR
interface tunnel-te1
backup-bw global-pool unlimited backup-bw sub-pool unlimited
If there are two or more backup tunnels with backup-bandwith configured that have sufficient
available backup-bandwith, then the one with the least amount of currently available backup
bandwidth is chosen, in order to keep the largest amount available for other LSPs (main
tunnels) with bigger needs.
If there are two or more backup tunnels with no backup-bandwith configured, then the one
with the least amount of currently used backup bandwidth is chosen, in order to distribute the
LSPs (main tunnels) as evenly as possible. If the LSP (main tunnel) doesn't have any
bandwidth configured, the backup tunnel with the fewest protecting LSPs is chosen.
Generally, the backup-bandwidth is assumed to be unlimited when it's not configured. Is this
case no
If you want to change the above backup protection preemption algorithm, you can use the
following command on the PLR:
IOS
preempted)
Keep in mind that backup tunnels can have their signaled-bandwidth configured, just like any
other tunnel, in order to have the LSRs on the backup path do the appropriate admission
control (in production networks this might not be recommended in order to avoid reservation
of resources for a tunnel rarely used). On the other hand, the backup-bandwidth is used solely
by the PLR (head-end of he backup tunnel) locally. Theoretically, both signaled-bandwidth
and backup-bandwidth should be the same for proper operation.
In general:
You need to enable RDM for RSVP if you are using sub-pools.
TE auto-bandwidth
TE auto-bandwidth samples the average output rate for each tunnel configured for automatic
bandwidth adjustment and periodically (i.e. once per day) adjusts the tunnel’s signaled-
bandwidth to be the largest sample for the tunnel since the last adjustment.
Configuration Steps
globally
o enable statistics collection & auto-bw adjustments (enabled by default)
o frequency: define the interval between tunnel bw statistics collection (5m by default)
per tunnel
o frequency: define the interval between auto-bw adjustments (24h by default)
240
IOS
o o o
max-bw: define the max auto-bw allowed (no limit by default)
min-bw: define the min auto-bw allowed (no limit by default) adjustment-threshold: define
the delta threshold over which the new bw is actually signaled/used (10% by default)
load-interval 30
tunnel mpls traffic-eng bandwidth 20
tunnel mpls traffic-eng auto-bw frequency 300 adjustment-
threshold 1
IOS-XR
mpls traffic-eng
auto-bw collect frequency 1
!
interface tunnel-te0
IOS-XR auto-bw intervals are defined in mins, while IOS ones are defined in secs.
It's good practice to have: tunnel load-interval < global sampling frequency < tunnel adjust
frequency.
IOS
Config Parameters:
Bandwidth: 20 kbps (Global) Priority: 7 7 Affinity: 0x0/0xFFFF
Metric Type: TE (default)
AutoRoute announce: enabled LockDown: disabled Loadshare: 1
bw-based
auto-bw: (300/155) 7 Bandwidth Requested: 1
Adjustment Threshold: 1%
Samples Missed: 0 Samples Collected: 2
after the auto-bw adjustment interval timer expires, the largest sample (7) is now
requested/used
Config Parameters:
Bandwidth: 20 kbps (Global) Priority: 7 7 Affinity: 0x0/0xFFFF
Metric Type: TE (default)
AutoRoute announce: enabled LockDown: disabled Loadshare: 7
bw-based
auto-bw: (300/283) 0 Bandwidth Requested: 7
Adjustment Threshold: 1%
Samples Missed: 0 Samples Collected: 0
Don't forget to also configure the load-interval on the tunnel interface accordingly. Traffic
samples for tunnels that were down during the sampling period, are ignored.
The latest requested/signaled bandwidth is automatically saved to the tunnel running config.
In latest software releases you can also set an overflow or underflow threshold in order to
make the bandwidth adjustment earlier than the configured interval (so you don't have to wait
for all the samples to be collected). That way you can set a large auto-bw adjustment
frequency and use these two thresholds in such a way that you can react quickly to traffic
changing conditions.
Auto-Tunnels
3 types:
backup auto-tunnels
o no need to configure manual backup tunnels
o no need to assign backup tunnels to a protected interface
backup auto-tunnels
It must be configured on the PLR, like normal backup tunnels. After activation, dynamic
backup
NHOP/NNHOP tunnels are created automatically whenever an LSP requests FRR protection.
If there is a static configured backup tunnel for a specific interface, then backup auto-tunnels
won't be created
for this.
IOS
IOS-XR (4.0.0)
IOS
config
nhop-only
srlg
selection
timers
tunnel-num
IOS
R3_t65437
LSP Head, Admin: up, Oper: up
Tun ID: 65437, LSP ID: 1, Source: 3.3.3.3 Destination: 5.5.5.5
Fast Reroute Backup Provided:
It must be configured on every router you want to create a TE tunnel to all the TE-enabled
routers that are one hopaway.Eachauto-tunnelhas"autoroute announce"and"fast-
reroute"activatedbydefault, but you can add some extra configuration too.
That way you can create automatically multiple tunnels covering all possible paths in a
network.
IOS
IOS-XR
not supported
IOS
config
onehop
timers
tunnel-num Configure tunnel I/F numbers for primary auto-
tunnels
IOS
R1#debug mpls traffic-eng auto-tunnel primary all MPLS TE
Auto-Tunnel Primary all debugging is on
IOS
!
access-list 1 permit 20.20.20.20 access-list 1 permit
30.30.30.30 !
interface Auto-Template1
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination access-list 1
tunnel mpls traffic-eng autoroute announce tunnel mpls
traffic-eng path-option 1 dynamic
IOS-XR (4.1.1)
mpls traffic-eng
destination-list 1 !
ipv4 prefix-list 1
10 permit 20.20.20.20/32 20 permit 30.30.30.30/32
You cannot configure Inter-Area or Inter-AS tunnels for auto-tunnel mesh groups.
IOS
You cannot configure a static route to route traffic over auto-tunnel mesh group TE tunnels.
You should use
When using mesh-group numbers (instead of an ACL) to match the PEs, you have to enable
IGP flooding of
!
router ospf 1
Destination
-----------
1.1.1.1
Mesh tunnel interface numbers: min 64336 max 65335
IS-IS does not support IGP distribution of mesh group information.You have to use ACLs in
this case.
You can also define manually the min/max tunnel numbers used.
When enabled it allows you to define links that belong to the same group, because they share
a risk (i.e two links using the same fiber path).
The idea is to have backup tunnels avoid using links in the same SRLG as the interfaces they
are protecting. Otherwise, when the protected link fails the backup tunnel will fail too.
Configuration
Interface
---------
Tunnel64336
247 NTS for CCIE SP Lab by chatasos
IOS
interface X
mpls traffic-eng srlg 1 mpls traffic-eng srlg 2
!
interface Y
IOS-XR (4.1.0)
srlg
!
interface Y
value 2
value 3 !
mpls traffic-eng
interface X
Links
Inter-Area MPLS TE
Inter-Area MPLS TE Tunnels are not supported by the default configuration. Two solutions:
A loosely routed explicit path must be defined for the tunnel LSP that identifies each
ABR the LSP should traverseusingthe"next-address
loose"command.Thehead-endrouterandtheABRsalongthe specified explicit path
expand automatically the loose hops, each one computing the strict path segment to
the next ABR or tunnel destination.
You have to use loose next-hops on the TE Tunnels towards the ABRs
IOS
interface Tunnel0
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 4.4.4.4
tunnel mpls traffic-eng path-option 1 explicit name EXPPATH
!
IOS-XR
interface tunnel-te0
ipv4 unnumbered Loopback0 destination 4.4.4.4
path-option 1 explicit name EXPPATH
!
explicit-path name EXPPATH
Specifying the tunnel tail-end in a loosely routed path is optional. You need to define only the
ABRs as
next-address loose and each ABR will automatically find the strict next-address for the next
ABR or for the
final destination.
249 NTS for CCIE SP Lab by chatasos
IOS
<0-65535>
api
dump
errors
lookup
spf
verify
Show debug output for this tunnel only Path calculation API
events
Path calculation detail info
Path calculation errors events
auto-bw
errors
timers
OSPF
An ABR has visibility into the TE topology of all areas where it's attached to.
An area 0 router has visibility into the TE topology of area 0 only.
An non-transit area router has visibility into the TE topology of that area only.
Always keep in mind that first you have to enable MPLS TE for all interested areas.
You can use the following abbreviations when filtering the output in order to quickly
verify the OSPF area & TE topology per router. Just compare the number of nodes
and links on the output vs the ones on the diagram.
IOS
ISIS
In case of ISIS & MPLS TE, the L1/L2 router is considered as the ABR.
Always keep in mind that first you have to enable MPLS TE for all interested levels.
You can use the following abbreviations when filtering the output in order to quickly
verify the ISIS L1/L2 and TE topology per router. Just compare the number of nodes
and links on the output vs the ones on the diagram.
IOS
251
IOS-XR
Links
level-
level-
level-
level-
level-
level-
Inter-AS MPLS TE
Inter-AS MPLS TE Tunnels are not supported by the default configuration. A loosely routed
explicit path must be defined for the tunnel LSP that identifies each ASBR the LSP should
traverse using the "next- address loose"command.Thehead-
endrouterandtheASBRsalongthespecifiedexplicitpathexpand automatically the loose hops,
each one computing the strict path segment to the next ASBR or tunnel destination.
OSPF
o uses opaque LSAs (Type 10) containing a single link TLV o only information about the
link that has changed is flooded
IS-IS
o uses Type 22 TLVs
Head-end
IOS
interface Tunnel0
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 9.9.9.9
tunnel mpls traffic-eng path-option 1 explicit name R4-R5-
EXPPATH
!
ip explicit-path name R4-R5-EXPPATH enable
IOS-XR
interface tunnel-te0
ipv4 unnumbered Loopback0
destination 9.9.9.9
path-option 1 explicit name R4-R5-EXPPATH
There is no need for full communication (i.e. eBGP, static) to exist between the AS for an
Inter-AS LSP to
ASBR #1
IOS
interface FastEthernet0/0
ip address 10.4.5.4 255.255.255.0
mpls traffic-eng tunnels
mpls traffic-eng passive-interface nbr-te-id 5.5.5.5 nbr-if-
addr
10.4.5.5
ip rsvp bandwidth
IOS-XR
ASBR#2
IOS
interface FastEthernet0/0
ip address 10.4.5.5 255.255.255.0
mpls traffic-eng tunnels
mpls traffic-eng passive-interface nbr-te-id 4.4.4.4 nbr-if-
addr
10.4.5.4
ip rsvp bandwidth
IOS-XR
AS use different IGPs, then you need to also use the "nbr-igp-id" keyword.
The TE topology should include all MPLS TE enabled interfaces and for the inter-as links the
nbr-te-id should
IOS
254
The IGP metrics are set to max (shown as "invalid" for ISIS and "MaxLinkMetric" for
OSPF), because these routes aren't into RIB, but only into MPLS TE.
IOS sets the TE metric the same as the IGP metric, IOS-XR doesn't.
IOS
flags:0x0
You can also use the following commands on the ASBRs to verify the inter-as link.
IOS
...
Link ID:: Fa0/0.24
Link IP Address:
Link IP Address:
20.3.4.4
20.4.5.4
255
When viewing the Explicit Route (under the RSVP Path information) of an Inter-AS TE
tunnel, loose hops that belong to other AS will be shown with a "*" next to them.
IOS
6.6.6.6*
When using FRR on the primary Inter-AS tunnel and an Inter-AS backup tunnel for ASBR
link/node protection:
Whenyou'rehavingipconnectivityissues,itmightbegoodpracticetoenable"debug ip
icmp"and watch out for "host unreachable" messages.
Links
The explicit path of the backup tunnel must also use loose hops
The backup tunnel destination must be included in the RRO of the primary tunnel
You need to somehow (i.e. eBGP, static) create a route on the MP router (and all other intra-
as
routers towards the ASBR) for the backup tunnel's egress ip address, so the RESV messages
can be
sent from the MP (tail-end of the backup tunnel in one domain) to the PLR (head-end of the
backup
MPLS DiffServ-TE
DiffServ-TE allows bandwidth reservations on a per-class basis. 8 Class Types: CT0 - CT7
(CT0 and CT1 are currently used)
These 8 CTs can be combined with the 8 setup/hold priorities creating 64 possible
combinations (called TE classes), from where only 8 are actually used (TE0 - TE7). All
routers in a network must have a consistent configuration of all the TE classes.
IOS
mpls traffic-eng ds-te te-classes te-class 0 class-type 0
priority 0 te-class 1 class-type 1 priority 7
IOS-XR
CT0 is usually used for best effort or pre-DE-TE LSPs and is implicitly signaled CT1 is
usually used for special classes like voice and video and is explicitly signaled
Usually CTs map to scheduler queues for the appropriate QoS actions.
BC0 = global pool (for best-effort & DiffServ traffic) BC1 = sub-pool (for strict bandwidth
guarantee traffic)
The BC model determines the available bandwidth for each CT at each priority. Two BC
models:
o o o
RFC 4125
the link bandwidth is divided among the different CTs it completely isolates the different CTs
257
o bandwidth is wasted due to not being able to share unused bandwidth between CTs RDM
(Russian Dolls Model)
o RFC 4127
o CTs can share bandwidth on a link
o no isolation between CTs
o preemption (using priorities) is required to guarantee bandwidth to a CT o bandwidth is
utilized more efficiently between CTs
IOS
IOS-XR
IOS
IOS-XR
Configuration Steps
o o o o
IOS
interface Tunnel1
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 6.6.6.6
tunnel mpls traffic-eng priority 0 0
tunnel mpls traffic-eng bandwidth sub-pool 444
tunnel mpls traffic-eng path-option 1 explicit name R4-R5
!
interface FastEthernet0/0
IOS
interface Tunnel1
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 6.6.6.6
tunnel mpls traffic-eng priority 0 0
tunnel mpls traffic-eng bandwidth 444 class-type 1
tunnel mpls traffic-eng path-option 1 explicit name R4-R5
!
interface FastEthernet0/0
Links
IETF - RFC 3564 IETF - RFC 4124 IETF - RFC 3270
259 NTS for CCIE SP Lab by chatasos
P2MP LSPs
LDP
o no TE support
RSVP
o TE support
that all intermediate routers know the parent LSP where these sub-LSPs belong to)
o Ingress router sends a PATH message (hop-by-hop) to each egress router (towards the
branch
router)
o Branch routers send multiple PATH messages (one for each sub-LSP) towards the multiple
egress routers
o Egress routers receive the PATH messages and each one sends a RESV message towards
the
branch router
o Branch routers receive multiple RESV messages (one for each sub-LSP) from each egress
router, each one with the same label (since they belong to the same parent P2MP LSP).
o Ingress router receives multiple RESV messages with the same label from each branch
router o Ingress routers need to keep state for all egress routers (due to sub-LSPs)
P2MP TE
Limitations
Inter-area and inter-as topologies are not supported, only intra-as
Node and path protection are not supported, only link protection
PIM Sparse is not supported, only SSM
Many OAM features are not supported
Multiple path-options per destination are not supported, one one path-option per
destination
PHP is not supported on the tail-end, explicit-null or a normal label must be used
Only one backup auto-tunnel is created, to be used for link-protection
Multicast
Head-end router and tail-end routers exchange PIM messages with the locally
attached CEs
MPLS core doesn't need to run PIM
PIM doesn't need to be enabled across the MPLS TE tunnel
andwidth parameters
hold/setup priorities
administrative weight
attributes/affinity
Because a sub-LSP cannot be represented as a regular interface on the tail-end router,
a special LSP virtual interface (LSPVIF) is automatically created. The LSPVIF
represents the originating interface for all IP multicast traffic arriving to the P2MP TE
tail-end router. This LSPVIF interface is used for the RPF check.
MPLS-TE should be configured and working between all routers being involved in
the P2MP LSPs.
head-end (IOS)
ip multicast-routing !
ip pim ssm default
!
interface Tunnel0
ip unnumbered Loopback0
ip pim passive
ip igmp static-group 232.20.20.20 source 7.7.7.7
ip igmp static-group 232.19.19.19 source 7.7.7.7
ip igmp static-group 232.8.8.8 source 7.7.7.7
ip igmp static-group 232.2.2.2 source 7.7.7.7
tunnel mode mpls traffic-eng point-to-multipoint
tunnel destination list mpls traffic-eng name TAIL-END-
ACL
!
mpls traffic-eng destination list name TAIL-END-ACL
For every multicast group you'll need a static igmp under the TE tunnel.
entering a middle router through different interfaces but exiting through a common interface,
then the sub-
mid-point (IOS)
just normal MPLE-TE config, no multicast required support of signaling extensions is
required
tail-end (IOS)
ip multicast-routing
ip multicast mpls traffic-eng
!
ip pim ssm default
!
ip mroute 7.7.7.7 255.255.255.255 1.1.1.1
enable
router igmp
interface tunnel-mte0
!
interface tunnel-mte0
path-option 1 dynamic !
!
destination 19.19.19.19
path-option 1 dynamic
mid-point (IOS-XR)
just normal MPLE-TE config, no multicast required support of signaling extensions is
required
In order to avoid failing on the RPF check on the tail-end router, you must configure a static
mroute for the
address-family ipv4
IOS-XR 4.2 is required for P2MP LSPs. IOS-XR on C12k doesn't support P2MP LSPs.
IOS-XR doesn't support pings on loopbacks belonging to VRFs under a mVPN topology. Use
a physical interface instead.
"multicast-intact" might be required if P2MP and P2P LSPs are created between two
nodes.
It is assumed that all routers outside the MPLS-TE core are using multicast as usual. So the
head-end is having a normal PIM connectivity to the source and the tail-ends are having
normal PIM connectivity to the receivers.
Verification
IOS
When the tail-end router creates the LSPVIF interface, you'll get the following log:
head-end (IOS)
R1#sh mpls traffic-eng tunnels
Destination
2.2.2.2
19.19.19.19
20.20.20.20
State SLSP UpTime
Up 01:47:12
Up 01:47:28
Up 01:48:35
History:
Tunnel:
Time since created: 1 hours, 51 minutes Time since path
change: 1 hours, 48 minutes Number of LSP IDs (Tun_Instances)
used: 1
Configured LSP
Bandwidth: 0
0x0/0xFFFF
Metric Type:
Parameters:
kbps (Global) Priority: 7 7 Affinity:
TE (default)
Session Information
Source: 1.1.1.1, TunID: 0
LSPs
ID: 1 (Current), Path-Set ID: 0xA2000001
P2MP SUB-LSPS:
head-end (IOS)
R1#show mpls traffic-eng tunnels brief Signalling Summary:
running
running
running
enabled
every 3600 seconds, next in 3463
P2P TUNNELS/LSPs:
Displayed 0 (of 0) heads, 0 (of 0) midpoints, 0 (of 0) tails
P2MP TUNNELS:
P2MP SUB-LSPS:
SOURCE TUNID LSPID DESTINATION 1.1.1.1 0 1 20.20.20.20
Fa0/0.13
1.1.1.1 0 1 19.19.19.19 Fa0/0.13
1.1.1.1 0 1
Fa0/0.13
2.2.2.2
Not Running
every 300 seconds, next in 163
CURRENT
TUNID 0
LSPID 1
2 Up head 3 Up head
DOWN IF
265
head-end (IOS)
R1#show mpls traffic-eng forwarding path-set brief Sub-LSP
Identifier
src_lspid[subid]->dst_tunid
PSID
---------------------------
-
1.1.1.1_1[1]->20.20.20.20_0
A2000001
1.1.1.1_1[2]->19.19.19.19_0
A2000001
1.1.1.1_1[3]->2.2.2.2_0
A2000001
The same commands can also be used on all the intermediate routers.
head-end (IOS)
R1#sh ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group,
C - Connected,
forwarding-table | i 1.1.1.1|Prefix
Outgoing Prefix
Bytes Label
41241
2684
2684
Outgoing
Fa0/0.13
Fa0/0.34
Fa0/0.35
Next Hop
12.1.3.1
12.3.4.4
12.3.5.5
29 29 1.1.1.1 0 [1] 16 1.1.1.1 0 [1]
On every mid-point router you should see more than one label for the same TE LSP, each one
pointing to a
traffic-eng tunnels
267
P2MP SUB-LSPS:
OutLabel : FastEthernet0/0.34, 29
Next Hop : 12.3.4.4
Explicit Route: 12.3.4.4 12.4.20.20 20.20.20.20 Record Route
(Path): NONE
Record Route (Resv): NONE
OutLabel : FastEthernet0/0.35, 16
Next Hop : 12.3.5.5
Explicit Route: 12.3.5.5 12.5.6.6 12.6.19.19 19.19.19.19
Record Route (Path): NONE
Record Route (Resv): NONE
OutLabel : FastEthernet0/0.35, 16
Sub-LSPs following the same branch (egress interface) will use the same label.
tail-end (IOS)
R2#sh ip mroute
IP Multicast Routing Table
Flags: D -
Connected,
L -
T -
Extranet, X -
tail-end (IOS)
R2#sh mpls traffic-eng tunnels
OutLabel : -
Explicit Route: NONE
Record Route (Path): NONE Record Route (Resv): NONE
Links
Multicast
PIM-DM (Protocol Independent Multicast- Dense Mode) is defined in RFC 3973. PIM-SM
(PIM - Sparse Mode) is defined in RFC 4601.
PIM-SSM (PIM - Source Specific Multicast) is defined in RFC 4607.
BSR (BootStrap Router) for PIM is defined in RFC 5059.
Multicast Ranges
Multicast range:
224.0.0.0/8
FF00::/8
o 224.0.0.0/24
o FFx2::/16
SSM range:
o 232.0.0.0/8
GLOP range
Organizations with a 32-bit ASN may apply for space in AD-HOC Block III
(233.252.0.0 - 233.255.255.255) also known as Extended GLOP (EGLOP), or
consider using IPv6 multicast addresses.
270 NTS for CCIE SP Lab by chatasos
Main functionalities:
DVMRP
PIM-DM
PIM-SM
IOS
ip multicast-routing
IOS-XR
multicast-routing
IOS-XR
GSR#sh pim group-map
Fri Jun 9 06:11:08.463 UTC
MRIB)
RP address
0.0.0.0
0.0.0.0
0.0.0.0
0.0.0.0
0.0.0.0
Group Range
Proto Client
DM perm
DM perm
NO perm
SSM config
SM static
Groups
0 1 0 1 0
Info
RPF:
Each multicast group can be one of sparse, dense, bidir, ssm. Each interface can be many
modes, each one
In IOS-XR, the router itself is also listed as a pim neighbor with a "*". 271
chatasos (ccie-in-2-months.blogspot.com) – Notes: The Series (NTS) for CCIE SP Lab
PIM-SM RP
network
On hub-n-spoke networks, when auto-rp announcements must pass between the spokes, you
cannot use nbma- mode, because this works only in sparse mode (and announcements are in
dense). You have to use BSR or create a pim-enabled tunnel between the spokes.
Static RP and BSR are the most common ways to configure a Group-to-RP mapping. Static
RP
IOS
!
ip pim rp-address 1.1.1.1
IOS-XR
router pim
enable
For PIM-SM to work properly, all routers in a domain must know and agree on the active RP
for each
Auto-RP
IOS
!
ip pim send-rp-announce Loopback0 scope 10 ip pim send-rp-
discovery Loopback0 scope 10
IOS-XR
router pim
address-family ipv4
auto-rp mapping-agent Loopback0 scope 10 auto-rp candidate-rp
Loopback0 scope 10 interface Loopback0
enable
Auto-RP requires either sparse-dense mode or sparse mode and auto-rp listener (by default
enabled in IOS- XR).
BSR
IOS
!
ip pim bsr-candidate Loopback0 ip pim rp-candidate Loopback0
IOS-XR
router pim
enable !
When static RP is configured together with Auto-RP or BSR for the same PR mappings,
Auto-RP/BSR created mappings take precedence, unless "override" is configured with the
static rp-address.
PIM-SSM
Detailed analysis
1. Receiver
2. Receiver DR
1. receives the IGMP Report (S,G) from the Receiver
2. adds the incoming IGMP interface to OIL for (S,G)
3. performs RPF lookup for source S
4. sends a PIM Join (S,G) to the upstream router out of the RPF interface
3. Upstream Routers (from Receiver DR towards the Source)
1. add the incoming PIM interface to OIL for (S,G)
2. perform RPF lookup for source S
3. send a PIM Join (S,G) to the next upstream router out of the RPF interface (*)
4. ...
(*) This propagation of PIM Join messages our of the RPF interface continues until the
source DR is reached or an upstream router has already multicast forwarding state for this
group.
IOS
interface X
ip pim sparse-mode
IOS-XR
multicast-routing
enable
PIM-SM
Summary
A receiver asks for multicast data and an RPT (*,G) is built from the receiver DR
to the RP
When the source transmits the multicast data, first packets are sent encapsulated
into PIM Register
messages by the source DR to the RP and then an SPT (S,G) is built from the RP to
the source
When the multicast data reaches the receiver, there is a new SPT (S,G) built from
the receiver DR
Detailed analysis
2. Receiver DR Router
1. receives the (*,G) IGMP Report from the Receiver
2. adds the incoming IGMP interface to OIL for (*,G)
3. performs RPF lookup for RP
4. sends a (*,G) PIM Join to the upstream router out of the RPF interface
3. Upstream Routers (from Receiver DR towards the RP)
1. receive the (*,G) PIM Join from the downstream router
2. add the incoming PIM interface to OIL for (*,G)
3. perform RPF lookup for RP
4. send a (*,G) PIM Join to the next upstream router out of the RPF interface (*)
Phase #2 (Source sends multicast data and Receiver receives it through the RP)
1. Source S
2. Source DR Router
7. Source
275
1. receives duplicate multicast data (encapsulated from Source DR and native from
source/upstream)
9. Source DR Router
2. stops sending PIM Register messages with encapsulated multicast data to the RP
11. Receiver
1. Receiver DR Router
1. receives multicast data (S,G) from source S through the RP
2. performs RPF lookup for source S
3. sends a (S,G) PIM Join to the upstream router out of the RPF interface
2. Upstream Routers (from Receiver DR towards the Source DR)
1. receive the (S,G) PIM Join from the downstream router
2. add the incoming PIM interface to OIL for (S,G)
3. perform RPF lookup for source S
4. send a (S,G) PIM Join to the next upstream router out of the RPF interface (*)
3. Source
1. receives the (S,G) PIM Join from the downstream router
2. starts sending native multicast data to the Receiver DR Router
4. Receiver DR Router
1. receives duplicate multicast data (from source DR through SPT and from RP
through RPT)
2. sends a PIM Prune (S,G,RPT) to the upstream router out of the RPF interface
5. Upstream Routers (from Receiver DR towards the RP)
1. receive the PIM Prune (S,G,RPT)
2. remove the incoming PIM interface from OIL for (*,G)
3. if OIL is null, send a PIM Prune (S,G) to the upstream router out of the RPF
interface
6. RP
1. receives the PIM Prune (S,G)
2. removes the incoming PIM interface from OIL for (*,G)
3. if OIL is null, sends a PIM Prune (S,G) to the upstream router out of the RPF
interface
7. Source
1. receives the PIM Prune (S,G)
2. removes the incoming PIM interface from OIL for (S,G)
(*) This propagation of PIM Join messages our of the RPF interface continues until the RP or
the Source DR is reached or an upstream router has already multicast forwarding state for this
group.
PIM Prune messages might not be sent, if there is another active multicast state for the same
group in the router.
DR Router
DR
276 NTS for CCIE SP Lab by chatasos
The Source DR periodically sends a PIM Null-Register message (without any multicast data
inside) to the RP, in order to inform it that the source is still active.
IOS
interface X
ip pim sparse-mode
IOS-XR
multicast-routing
enable
In the shortest path tree (SPT), the root of the tree is the source. In the shared path tree (RPT),
the root of the tree is the RP.
The threshold for switching from the RPT to SPT is 0 by default, which means once the
Receiver DR receives the first multicast packet and learns the source, it sends a (S,G) PIM
Join towards the source. When is starts receiving multicast data from the SPT, it sends a PIM
Prune for traffic received via the RPT towards the RP.
PIM Bidir
It eliminates the maintenance of (S,G) entries (only (*,G) are kept) and there's no data driven
events hence packets never need to be signaled and preserved (much more scalable for many-
to-many applications).
Bidir PIM uses the Designated Forwarder (DF) election mechanism (based on routing
protocol cost to the RP) to elect a single router on each link, which becomes responsible for
the following tasks:
picking up packets from the link and forwarding them upstream towards the RP
forwarding downstream multicast packets from the RP onto the link
When configuring both sparse and bidir groups, you need to explicitly define them, because
everything
IOS
ip pim bidir-enable
ip pim rp-address 1.1.1.1 bidir
IOS-XR
IOS
IOS-XR
MRIB)
RP address Info
0.0.0.0
0.0.0.0
0.0.0.0
0.0.0.0
1.1.1.1 RPF:
0.0.0.0 RPF:
Group Range
224.0.1.39/32*
224.0.1.40/32*
224.0.0.0/24*
232.0.0.0/8*
224.0.0.0/4* Gi0/2/1/2.28,2.2.28.2 224.0.0.0/4 SM static
Null,0.0.0.0
Proto Client
Groups
0 1 0 0 1
You will see only (*,G) entries for the bidir groups, no (S,G) entries.
Inlatestsoftwarereleases,PIMusestunnelinterfacesforRPRegistercommunication.Youcanuse"s
h ip pim
tunnel"inordertoverifythePIMconnectivity,eitherinsideoroutsideavrf.Ifnotunnelexistsbut
should exist, then there is probably something wrong.
278 NTS for CCIE SP Lab by chatasos
IOS
Tunnel1*
Type : PIM Decap
RP : 10.0.0.1*
Source: -
IOS-XR
Interface
Encapstunnel0
Decapstunnel0
RP Address
10.0.0.1
0.0.0.0
Source Address
10.0.0.1 -
The router acting as RP should have at least two PIM tunnels: one for Encapsulation (usually
src=RP) and another one for Decapsulation. All other PIM routers should have only one for
Encapsulation (src=local PIM address, dst=RP).
IGMP
IOS
interface X
ip igmp join-group 224.1.1.1
IOS-XR
router igmp
interface X
IGMP (v3) for SSM requires to also define the source of multicast traffic.
In IOS, when using multicast ping to test connectivity, the multicast packets go out through
all multicast enabled interfaces by default (regardless of the source ip/interface chosen in
CLI). If you want to send it out through a specific interface then you need to use extended
ping and choose a specific interface in the "Interface" option.
IOS
R1#ping
Protocol [ip]:
Target IP address: 232.1.1.1 Repeat count [1]:
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y Interface [All]: FastEthernet0/0 Time
to live [255]:
Source address: 1.1.1.1
Advanced Multicast
RPF (Reverse Path Forwarding)
In an RPF check, the router looks in a routing table to determine its RPF interface, which is
the interface closest to the root (the source or the RP). The RPF interface is also the incoming
interface for the multicast data. RPF checks happen in the control-plane (PIM, MSDP) and in
the data-plane (multicast data).
The routing table used for RPF checks can be the global unicast routing table or a separate
multicast routing table. In any case, the RPF table contains only unicast routes (the multicast
source or the RP).
MP-BGP and M-ISIS can be used to create separate unicast and multicast routing tables.
MP-BGP updates can include IPv4 multicast RPF routes along with IPv4 unicast routes,
totally separated (different path attributes) from each other.
If you have IP connectivity over a TE tunnel and require PIM connectivity too, then extra
care must be taked. Since you cannot activate PIM on a TE tunnel, you must somehow fix the
possible RPF issue on the head- end. The same must be done in every other case where
unicast and multicast forwarding do not agree.
Solutions
static mroute
multicast BGP
multicast topology in IS-IS
mpls traffic-eng multicast-intact (for IGP routes)
Youcanusethecommand"sh ip rpf"inordertoverifyRPFissues.
Before
IOS
IOS-XR
InIOS-XR,thecommand"sh pim
rpf"providesanoutputonlyiftheaddressprovidedisalreadyusedas amulticastsource.Use"sh
pim rpf hash"tocheckinadvance.
IOS
IOS-XR
IOS-XR
multicast-routing
address-family ipv4
static-rpf 2.2.2.2 32 tunnel-te0 3.3.3.3
multicast-intact
When enabled on an IGP, the IGP automatically publishes to the RIB a parallel (or alternate)
set of equal-cost next-hops for all IPv4 destinations learned through LS advertisements, for
use solely by PIM. These next-hops are called mcast-intact next-hops. The mcast-intact next-
hops have the following characteristics:
They are guaranteed not to contain any IGP shortcuts (like TE tunnels).
They are not used for unicast routing, but are used only by PIM to look up an IPv4
next-hop to a PIM
source.
IOS
router ospf 1
router isis 1
router ospf 1
mpls traffic-eng multicast-intact
!
router isis 1
Multicast topology for ISIS allows the configuration of a separate IS-IS multicast
topology for IPv4 or IPv6 routing, which runs a separate SPF.
IS-IS multicast inserts routes from the IS-IS multicast topology into the multicast-
unicast table in the RIB for the corresponding address family. Since PIM uses this
table, PIM uses routes from the multicast topology instead of routes from the unicast
topology.
Multicast BGP
The multicast BGP database can be used by a a multicast routing protocol (i.e. PIM)
to perform RPF lookups for multicast-capable sources. Thus, packets can be sent and
accepted based on the multicast topology and not on the unicast topology.
This is an easy way to change the multicast routing without affecting unicast too.
Static mroutes can also be used.
IOS
exit-address-family
IOS-XR
network 192.168.7.0/24 !
neighbor 7.7.7.7
IOS
When you enable the multicast address-family under BGP, then these prefixes take
precedence over the prefixes learned in the BGP unicast address-family; only the BGP
prefixes learned in the multicast address- familyareusedforanymulticastrouting.Use"show
route ipv4 multicast"inIOS-XRtodisplay the ipv4 multicast routes.
MSDP is also used between Anycast RPs within a single PIM domain to synchronize
information about the active sources being served by each Anycast-RP peer. Anycast RPs
will each have the same IP address configured on a Loopback interface (making this the
Anycast address) and will MSDP peer with each other using a separate loopback interface.
You might need to also advertise a specific next-hop for the RPF route, if the default next-
hop doesn't satisfy
MSDP RPs send SA (Source-Active) messages in order to notify each other of active
multicast sources.
An MSDP RP sends an SA message to its peers each time it receives a PIM Register or Null-
Register message from a Source DR about a new/active source. MSDP SA messages include
the same multicast data that is also encapsulated in PIM Register or Null-Register messages.
IOS
interface Loopback99
ip address 99.99.99.99 255.255.255.255
!
interface Loopback0
IOS-XR
interface Loopback99
ipv4 address 99.99.99.99 255.255.255.255
!
interface Loopback0
connect-source Loopback0 !
rp-address 99.99.99.99
The address on the interface used as anycast RP must be advertised into an IGP (preferably as
external route to be able to play easily with the metric).
When using anycast IPv4 addresses in Loopbacks, it's good practice to hardcode all the
protocol router-ids
manually in order to avoid using the anycast address as router-id for a protocol.
In some software releases originator-id might not be required, but it's always good practice to
configure it
In current releases, when running Inter-AS MSDP, the peer/source IPs must agree with the
BGP update source on each neighbor.
If MDT is using a non-loopback interface due to eBGP with directly connected neighbor, you
might get the message "%MDT-4-LBSRC:
Links
Multicast Filtering
Use"ip pim
passive"underaninterfaceifyouwanttoblocktheforwardingofPIMcontrolplane
traffic; only IGMP traffic will pass.
BSR filtering
IOS
interface X
ip pim bsr-border
IOS-XR
router pim
bsr-border
Auto-RP filtering
IOS-XR
If you also have a BGP peering session with an MSDP peer, you should use the same IP
address for MSDP (peer/connect-source) as you do for BGP (update-source).
MSDP peers, then you can put them under a mesh-group in order to disable the RPF check on
them.
286 NTS for CCIE SP Lab by chatasos
!
ipv4 access-list MCAST-ACL
IGMP filtering
IOS
interface X
ip igmp access-group IGMP-ACL
! match (*,G)
limit the number of mroutes that can be added to the global table
o limit the number of mroutes states created from IGMP membership reports ip igmp
limit MAX-IGMPS
Per neighbor
o Limits the number of SA messages allowed in the SA cache from an MSDP peer
Multicast-only FRR
The basic idea of MoFRR is to send a secondary PIM join from the receiver toward
the source on a backup path to a different upstream interface. The network then
receives two copies of the multicast stream over two separate and redundant paths
through the network, but the redundant packets are discarded at topology merge
points due to RPF checks. When the primary path fails, it can switch over to the
backup path instantly without issuing a new PIM join.
RIB-based MoFRR
o Supported on CRS and XR12000 series routers o Based on routing convergence
Flow-based MoFRR
o Supported ASR9k
IOS (15.2)
ip multicast rpf mofrr MOFRR-SG-ACL !
ip access-list standard MOFRR-SG-ACL
IOS-XR
Links
IETF - draft-ietf-rtgwg-mofrr
Troubleshooting
IPv6 Multicast
IOS
ipv6 multicast-routing
IOS-XR
In IOS, all IPv6 interfaces are PIM enabled by default after enabling ipv6 multicast-routing.
IPv6 RP definition
IOS
ipv6 pim bsr candidate bsr 2002:2:2::2 ipv6 pim bsr candidate
rp 2002:2:2::2 !
ipv6 pim rp-address 2002:2:2::2
IOS-XR
rp-address 2002:2:2::2
bsr candidate-rp 2002:2:2::2 bsr candidate-bsr 2002:2:2::2
289 NTS for CCIE SP Lab by chatasos
MLD
IOS
router mld
interface Loopback0
Verification
R2#ping FF99::99
Output Interface: Ethernet0/2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FF99::99, timeout is 2
seconds: Packet sent with a source address of 2002:2:2:27::2
Static mroutes
IOS
IOS-XR
multicast-routing
address-family ipv6
static-rpf 2002:2:2::2 128 tunnel-te0 2002:3::1
NSF
IOS-XR
router pim
nsf lifetime 30
!
router igmp
nsf lifetime 30
!
router mld
nsf lifetime 30
Generally, configure the IGMP NSF and PIM NSF lifetime values to be equal or larger than
the query or join query interval, but less than the holdtime
Multipath
Whenthe'ip multicast
multipath'commandisconfigured,themulticastloadsplittingwillbebased on the source
address of the stream. PIM Joins will be distributed over the different ECMP links based on a
hash of the source address.
Multicast multipath must be enabled on the receiver side of the ECMP path.
IOS
ip multicast multipath
By default, if ECMP paths are available, the RPF for multicast traffic will be based on the
highest IP address
IOS
R2#sh ip rpf 19.19.19.19
RPF information for ? (19.19.19.19)
By default only the source address is used in the calculation. Better load-splitting can be
achieved by using the "s-g-hash next-hop-based"options.
; that is, the chosen RPF neighbor does not depend on whether or not PIM hello messages are
received from that neighbor; it only depends on the presence or absence of an equal-cost
route entry.
If using BGP and multicast, then you must also enable multipath on BGP.
IOS
In the above example, multicast load-balancing occurs between 20.2.3.3 and 20.2.4.4 for
source 19.19.19.19 (192.168.1.1 is the dummy address used).
When the ip multicast multipath command is enabled, the presence of PIM hello message
from neighbors is
not considered
If using static mroutes, then you need to somehow create two (or more) different static
mroutes because only
one is accepted. You can use a dummy ip address and two (or more) static ip routes in order
to achieve this.
292 NTS for CCIE SP Lab by chatasos
Multicast VPN
Multicast VPN is defined in RFC 6513 and RFC 6514. Cisco's Multicast VPN is defined in
RFC 6037.
Two solutions:
Only the PIM/GRE mVPN model (Cisco's original implementation) is described below.
MVPN
MVPN combines multicast with MPLS VPN. PE routers establish virtual PIM neighborships
with other PE routers that are connected to the same VPN.
Multicast packets are sent from the CE to the ingress PE and then encapsulated and
transmitted across the core (over the MDT tunnel). At the egress PE, the encapsulated packets
are decapsulated and then sent to the receiving CE.
When sending customer VRF traffic, PEs encapsulate the traffic in their own (S,G) state,
where the G is the MDT group address, and the S is the MDT source for the PE. By joining
the (S,G) MDT of its PE neighbors, a PE router is able to receive the encapsulated multicast
traffic for that VRF.
All VPN packets passing through the provider network are viewed as native multicast packets
and are routed based on the routing information in the core network.
293 NTS for CCIE SP Lab by chatasos
Data MDT
MVPN also supports optimized VPN traffic forwarding for high-bandwidth applications that
have sparsely distributed receivers.
A dedicated multicast group can be used to encapsulate packets from a specific source and an
optimized MDT can be created to send traffic only to PE routers connected to interested
receivers.
Configuration
IOS
ip multicast-routing !
ip pim ssm default
!
ip pim sparse-mode !
address-family ipv4
mdt default x.x.x.x
mdt data x.x.x.x y.y.y.y
exit-address-family !
exit-address-family
IOS-XR
!
router bgp 100
!
neighbor x.x.x.x
"mdt source"isrequiredinIOS-XR(itcanbeconfiguredundertheVRFifit'sspecificforit).
Sparse mode must be activated on all physical interfaces where multicast will be passing
through (global or
VRF ones) and on the loopback interface used for the BGP VPNv4 peerings.
The RP setup of the CEs must agree with the VRF RP setup on the PEs. In case you manually
define the
RP (static RP) on the CEs, then this must be done on the PEs too (inside the vrf).
Verification
There should be (S,G) entries for each BGP neighbor, where S=BGP loopback and
G=MDT default address
There should be a bidirectional PIM adjacency across a tunnel between the PEs,
but inside each PE's VRF
If an RP is used on a CE, then each remote CE should know this RP
Sources/Receivers from any site should be viewable on the RP
There should be an MDT data (S,G) entry for each pair of customer (S,G) entries
IOS
R5#sh ip mroute sum
IP Multicast Routing Table
Flags: D -
Connected,
L -
T -
295
NTS for CCIE SP Lab by chatasos
Extranet,
X - Proxy Join Timer Running, A - Candidate for MSDP
Advertisement,
U - URD, I - Received Source Specific Host Report,
Z - Multicast Tunnel, z - MDT-data group sender,
Y - Joined MDT-data group, y - Sending to MDT-data group, V -
RD & Vector, v - Vector
10.0.0.6, 239.255.255.1
10.0.0.5, 239.255.255.1
Flags: D -
Connected,
L -
T -
Extranet, X -
IOS
R2#sh ip mroute
IP Multicast Routing Table
VRF VPN
Router ID
10.0.0.1
Next Hop
10.0.0.6
MDT default (S,G) entries
Flags: D -
Connected,
L -
T -
Extranet, X -
232.0.0.1
232.0.1.0
232.0.1.1
19.19.19.19
In both scenarios, you can also verify the mGRE tunnels by looking at the tunnel interface
itself.
IOS
Next Hop
When all PIM adjacencies come up, as PIM neighbors in a VRF you should see all the other
MDT PEs though a tunnel and all the local connected CEs through a physical interface.
IOS
Prio/Mode
192.168.59.9 FastEthernet0/0.59 SG
10.0.0.6 Tunnel1
SPG
IOS
interface Tunnel1
ip vrf forwarding VPN-A
ip address 99.99.99.1 255.255.255.0 ip pim sparse-mode
tunnel source 10.0.0.1
tunnel destination 10.0.0.2
tunnel vrf VPN-B
!
interface Tunnel1
ip vrf forwarding VPN-A
ip address 99.99.99.2 255.255.255.0 ip pim sparse-mode
tunnel source 10.0.0.2
tunnel destination 10.0.0.1
tunnel vrf VPN-B
00:00:22/00:01:22 v2 00:25:52/00:01:27 v2
1 / DR 1 / DR
"ip vrf
forwarding"definesthevrfunderwhichthetunnel(99.99.99.0/24)operates;aboveit'sVPN- A.
"tunnel
vrf"definesthevrfwhichisusedtobuildthetunnel(from10.0.0.1to10.0.0.2);aboveit'sVPN- B. If
the tunnel source and destination are in the global routing table, then you don't need to define
their vrf withthe"tunnel vrf X"command.
Extranet
An extranet site can have either the multicast source or the receivers (otherwise multicast
happens intra-as). The Source PE has the multicast source behind a directly connected CE
through the Source MVRF
The Receiver PE has one or more receivers behind a directly connected CE through the
Receiver MVRF
In order to achieve multicast connectivity between the Source and Receiver PEs, you must
have the same
default MDT group in the source and receiver MVRF.
Two solutions:
In both cases, the receiver MVRF (wherever placed) must import the source MVRF's RT.
Source PE (IOS)
ip vrf VPN1-S-MVRF
rd 100:1
route-target export 100:1 route-target import 100:1 mdt
default 232.1.1.1
!
ip vrf VPN2-R-MVRF
rd 100:2
route-target export 100:2 route-target import 100:2 route-
target import 100:1 mdt default 232.2.2.2
!
ip multicast-routing ip multicast-routing ip multicast-routing
Receiver PE (IOS)
ip vrf VPN2-R-MVRF
rd 100:2
route-target export route-target import route-target import
mdt default 232.2.2.2
!
ip multicast-routing
ip multicast-routing vrf VPN2-R-MVRF
100:2
100:2
100:1
Source PE (IOS)
ip vrf VPN1-S-MVRF
rd 100:1
route-target export 100:1 route-target import 100:1 mdt
default 232.1.1.1
!
ip multicast-routing ip multicast-routing
Receiver PE (IOS)
ip vrf VPN1-S-MVRF
rd 100:1
route-target export route-target import mdt default 232.1.1.1
!
ip vrf VPN2-R-MVRF
rd 100:2
route-target export 100:2 route-target import 100:2 route-
target import 100:1 mdt default 232.2.2.2
!
ip multicast-routing
ip multicast-routing vrf VPN1-S-MVRF ip multicast-routing vrf
VPN2-R-MVRF
What matters most in both cases when doing the MVRF replication, is to have the same MDT
on a MVRF on the Source PE and on a MVRF on the Receiver PE (excluding the Source
MVRF).
Fixing RPF
vrf VPN1-S-MVRF
100:1 100:1
Inter-AS MVPN
To establish a Multicast VPN between two ASes, a MDT-default tunnel must be setup
between the involved PE routers. The appropriate MDT-default group is configured on the
PE router and is unique for each VPN.
All three (A,B,C) inter-as options are supported. For option A nothing extra is required since
every AS is completely isolated from the others.
In order to solve the various RPF issues imposed by the limited visibility of PEs between
different ASes, each VPNv4 route carries a new transitive attribute (the BGP connector
attribute) that defines the route's originator.
Inside a common AS, the BGP connector attribute is the same as the next hop. Between ASes
the BGP connector attribute stores (in case of ipv4 mdt) the ip address of the PE router that
originated the VPNv4 prefix and is preserved even after the next hop attribute is rewritten by
ASBRs.
The BGP connector attribute also helps ASBRs and receiver PEs insert the RPF vector
needed to build the inter-AS MDT for source PEs in remote ASes.
The RPF proxy vector is a PIM TLV that contains the ip address of the router that will be
used as proxy for RPF checks (helping in the forwarding of PIM Joins between ASes).
A new PIM hello option has also been introduced along with the PIM RPF Vector extension
to determine if the upstream router is capable of parsing the new TLV. An RPF Vector is
included in PIM messages only when all PIM neighbors on an RPF interface support it.
The RPF proxy (usually the ASBR) removes the vector for the PIM Join message when it
sees itself in it.
RPF proxy
o used in RPF checks in the core
Configuration Steps
Option
Option
o o o
A
no MDT sessions between ASes is required
intra-as MDT sessions are configured as usual
B
intra-as MDT sessions between PEs, ASBRs and RRs inter-as MDT session between ASBRs
RPF proxy vector on all PEs for their VRFs
302
o RPF proxy vector on all Ps and ASBRs o next-hop-self on the MDT ASBRs
Option
o intra-as MDT sessions between PEs and RRs o inter-as MDT sessions between RRs
o RPF proxy vector on all PEs for their VRFs o RPF proxy vector on all Ps and ASBRs
o next-hop-unchanged on the MDT RRs
MSDP will be required if using an RP on both ASes. Prefer to use SSM in the core of both
ASes. Links
C
303 NTS for CCIE SP Lab by chatasos
BFD
BFD (Bidirectional Forwarding Detection) is defined in RFC 5880. BFD for one-hop
IPv4/IPv6 is defined in RFC 5881.
BFD for multi-hop is defined in RFC 5883.
BFD for MPLS LSPs is defined in RFC 5884.
BFD advantages
BFD modes
Asynchronous mode
o continuous and periodic BFD packets
Demand mode
o BFD packets only after a demand
BFD echo (where a stream of echo packets is sent and received) is the most common function
for both modes.
Cisco supports the asynchronous mode and the echo function by default.
BFD control packets are always sent as unicast packets to the BFD peer.
The encapsulation of BFD Control packets for multihop application in IPv4 and IPv6
is identical to that above, except that the UDP destination port is 4784.
304 NTS for CCIE SP Lab by chatasos
Each system reports in the BFD Control packet how rapidly it would like to transmit BFD
packets, as well as how rapidly it is prepared to receive them. This allows either system to
determine the max packet rate (minimum interval) in both directions.
To establish a BFD neighbor in IOS-XR, BFD must either be configured under an IGP or as a
static route.
BFD Configuration
In all cases, BFD timers (interval, min_rx, multiplier) must be defined under the
relevant interfaces too. BFD and BGP in IOS-XR is the exception, as show below.
BFDcanbecombinedwith"carrier-delay 0"forquickerprotocolreaction.
InIOS-XR,"bfd fast-detect"isrequiredinordertostarttheBFDprocess.
BFD might cause crashes and malfunctions when enabled on GNS3 emulated routers.
IOS
IOS-XR
IOS,
IOS-XR
IfyouareusingBFDwithuRPFonaparticularinterface,thenyouneedtousethe"echo disable"
command to disable the echo mode on that interface, otherwise echo packets are rejected.
Instead of running BFD at the link-level, you can also run BFD at the LSP level (aka across
the LSP), something that offers faster detection in case of path protection.
IOS
interface X
bfd interval 300 min_rx 300 multiplier 3
!
router bgp 100
IOS-XR
bfd multiplier 3
bfd minimum-interval 300
In IOS-XR, BFD parameters (multiplier, min-interval) can be configured for all BGP
neighbors (under the BGP process) or for a specific BGP neighbor. BFD activation is always
per neighbor.
It is generally not recommended to use BFD for iBGP, when the underlying IGP is already
doing so.
BFD & ISIS
IOS
interface X
bfd interval 150 min_rx 150 multiplier 3 isis bfd
or
IOS
router isis 1
bfd all-interfaces
!
interface X
bfd disable
IOS-XR
router isis 1
interface X
IOS
interface X
bfd interval 150 min_rx 150 multiplier 3 ip ospf bfd
or
306 NTS for CCIE SP Lab by chatasos
IOS
router ospf 1
bfd all-interfaces
!
interface X
bfd disable
IOS-XR
router ospf 1
area 0
interface X
BFD parameters can also be configured directly under the ospf process.
BFD establishes sessions from a neighbor to a DR or BDR, only when the neighbor state is
full.
BFD does not establish sessions between DR-Other neighbors (for example, when their
OSPF states are both 2-way)
BFD & RSVP-TE/FRR
IOS
!
interface X
IOS-XR
mpls traffic-eng
interface TenGigE0/0/0/0
bfd fast-detect
!
bfd minimum-interval 150 bfd multiplier 3
IOS relates the BFD configuration to RSVP configuration, while IOS-XR relates it to MPLS
TE configuration.
307 NTS for CCIE SP Lab by chatasos
IOS
Last packet:
Version: 1
State bit: Up
Poll bit: 0
Multiplier: 3
My Discr.: 1
Min tx interval: 1000000 Min Echo interval: 300000
- Diagnostic: 0
- Demand bit: 0
- Final bit: 0
- Length: 24
- Your Discr.: 1
- Min rx interval: 1000000
You can have an IPv6 static route (2001:DB8::/64) pointing to a peer router associated with a
BFD neighbor (2001::1). In order to remove this IPv6 static route from the RIB if the BFD
neighbor goes down, you must associate the static route with the BFD neighbor
IOS
In BFD associated mode (default), an IPv6 static route is automatically associated with an
IPv6 BFD neighbor, if the static route next-hop matches exactly the static BFD neighbor. If
you want to avoid this, you can configure the static route as "unassociated".
QoS
Congestion Management
o WFQ (Weighted Fair Queuing)
fair-queue
o CQ (Custom Queuing)
priority-queue
o CBWFQ (Class-Based WFQ)
MQC&bandwidth
o LLQ (Low Latency Queuing)
o Tail-Drop
default
Don't forget the set the interface "max-reserved-bandwidth" if more than 75% is
required.
Weighted Fair Queuing
IOS
IOS
Interface
Serial2/0
Discard
threshold
512
Dynamic
queues
256
Reserved
queues
128
309
Custom Queuing
IOS
!
queue-list 1 queue 0 byte-count 5000 limit 500 queue-list
1 queue 1 byte-count 2500 limit 250 queue-list 1 queue 2
byte-count 1500 limit 150 queue-list 1 queue 3 byte-count
1500 limit 50 !
interface FastEthernet0/0
custom-queue-list 1
IOS
List 1
1
1
1 1 1 1 1
Queue 3
2
1
2 0 1 2 3
Args
default
protocol ip
protocol ipv6
protocol pppoe-sessi byte-count 5000 limit 500 byte-count 2500
limit 250 limit 150
limit 50
list 100
310
Priority Queuing
IOS
priority-group 1
IOS
List Queue
1 low
1 normal
1 medium
1 normal
1 high
Args
default
protocol ip
protocol ipv6 protocol pppoe-sessi limit 500
list 100
311
IOS
IOS
1. cs1 0/0
2. cs2 0/0
3. cs3 0/0
4. cs4 0/0
5. cs5 0/0
6. cs6 0/0
7. cs7 0/0
ef 0/0
rsvp 0/0
default 0/0
Random drop
pkts/bytes
Tail drop
pkts/bytes
0/0 20
40 1/10
40 1/10
40 1/10
40 1/10
40 1/10
40 1/10
40 1/10
40 1/10
40 1/10
40 1/10
40 1/10
40 1/10
40 1/10
40 1/10
40 1/10
40 1/10
40 1/10
40 1/10
40 1/10
40 1/10
40 1/10
40 1/10
If WRED is used for a used-defined class, then bandwidth reservation must be made too.
If WRED is used for the default class, then either bandwidth reservation of fair-queue must
be used too.
Other
These topics are not considered critical because they aren't usually used as a base for
something else, but they can easily give you some points if configured correctly.
Having a general idea is probably enough, as long as you know where to look in the
documentation for the details.
MAC accounting
IOS
interface FastEthernet0/0
ip accounting mac-address input ip accounting mac-address
output
IOS-XR
IP/precedence accounting
IOS
R3(config-subif)#ip accounting ?
access-violations Account for IP packets violating access
lists on
this
IOS
interface
Account for IP packets output on this interface Count packets
by IP precedence on this interface
R3(config)#ip ?
Global IP configuration subcommands: ...
kept
accounting-threshold Sets the maximum number of accounting
entries
carrier-delay
For fast convergence use low (or 0) timers, especially for the down timer.
For cpu optimization (after routing instability due to small interface flaps) use higher timers.
IOS
IOS-XR
IP event dampening
It's a mechanism to suppress the effects of excessive interface flapping events on routing
protocols and routing tables.
Parameters:
half-life period
o the penalty is reduced by half after each half-life period (assuming the interface has
stopped
flapping)
o default: 5 sec
reuse threshold
o when the penalty drops to the reuse threshold, the route is unsuppressed o default: 1000
penalties
suppress threshold
o when the accumulated penalty reaches the suppress threshold, the interface is placed in the
max suppress
o o
the maximum amount of time an interface can remain dampened when a penalty is assigned
to it
default: 4 x half-life sec
314
restart penalty
o initial penalty applied to an interface when it comes up after a router reload o default:
2000 penalties
IOS
HalfL
ReuseV
SuppV
MaxSTm MaxP
IOS-XR
IOS-XR half-life and max-suppress values are in mins, while in IOS they are in secs.
preconfigure interfaces
If you don't have the actual linecards and/or interfaces, you can use preconfiguration in order
to create interfaces in advance, which is a nice way of testing configurations.
IOS-XR
Type-7 passwords
NAT
IP SLA
IP SLA uses active traffic monitoring for measuring network performance. The information
collected includes data about:
response time
one-way latency
jitter
packet loss
voice quality scoring
network resource availability
application performance
server response time
Configuration Steps
You can use the following command to find the supported operation types to use for
SLA:
IOS
Common parameters:
frequency (sec)
o the rate at which a specified IP SLAs operation repeats
request-data-size (bytes)
o the protocol data size in the payload of an IP SLAs operation's request packet
threshold (msec)
o the upper threshold value for calculating network monitoring statistics
timeout (msec)
o the amount of time an IP SLAs operation waits for a response from its request packet
It's obvious that if you set the timeout < threshold, then you'll never get over-threshold
statistics.
Configuration
IOS
ip sla 1
icmp-echo 2.2.2.2 timeout 40 threshold 20 frequency 30
ip sla schedule 1 life 600 start-time now Verification
IOS
Latest RTT: 20 ms
Index 1
Number of failures: 0
Operation time to live: 588 sec
Operational state of entry: Active
Last time this entry was reset: *13:25:14.307 UTC Sun Jan 26
2014
Number of successes: 1
Number of failures: 1
Operation time to live: 549 sec
Operational state of entry: Active
Last time this entry was reset: *13:25:14.307 UTC Sun Jan 26
2014
Latest RTT: 24 ms
Number of failures: 3
Operation time to live: 505 sec
Operational state of entry: Active
Last time this entry was reset: *13:25:14.307 UTC Sun Jan 26
2014
If you want to change the parameters of an already running sla operation, you have to remove
its schedule first
If you want to change the type of an already existing sla operation, you have to remove it
completely and start
over.
IP SLA Responder
The IP SLA Responder listens on a specific port (UDP 1967) for control protocol messages
sent by a IP SLAs operation. Upon receipt of the control message, the responder will enable
the specified UDP or TCP port for the specified duration.
It can help avoid measuring the processing delay and provide larger accuracy, because it
allows the target device to take two time stamps both when the packet arrives on the interface
at interrupt level and again just as it is leaving, eliminating the processing time.
synchronization.
To capture one-way delay measurements, NTP must be enabled on both the source router and
target router
and their clocks need to be synchronized to the same clock source (with the ability to
configure a clock
R1
IOS
ip sla 2
udp-jitter 2.2.2.2 4444 timeout 2000
frequency 30
R2
IOS
ip sla responder
Verification
IOS
Index 2
Latest operation start time: *13:41:02.579 UTC Sun Jan 26 2014
Latest operation return code: OK
RTT Values
Latency
Number Of RTT: 10
RTT Min/Avg/Max: 5/22/37 ms
one-way time milliseconds
Number of Latency one-way Samples: 0
Source to Destination Latency one way Min/Avg/Max: 0/0/0 ms
Destination to Source Latency one way Min/Avg/Max: 0/0/0 ms
Source to Destination Latency one way Sum/Sum2: 0/0
Destination to Source Latency one way Sum/Sum2: 0/0
Number of failures: 0
Operation time to live: 214 sec
Operational state of entry: Active
Last time this entry was reset: *13:40:02.531 UTC Sun Jan 26
2014
IOS
Configuration
IOS
ip sla 3
path-echo 10.0.0.2 source-ip 10.0.0.1 vrf VPN
frequency 30
IOS
320
Number of failures: 0
Operation time to live: 0
Operational state of entry: Inactive
Last time this entry was reset: *13:57:05.899 UTC Sun Jan 26
2014
You can always use the following command to verify your IP SLA setup and view the default
values of all parameters not explicitly configured:
IOS
Entry number: 3
Owner:
Tag:
Type of operation to perform: path-echo
Target address/Source address: 10.0.0.2/10.0.0.1 Request size
(ARR data portion): 28
History Statistics:
Number of history Lives kept: 0 Number of history Buckets
kept: 15
321 NTS for CCIE SP Lab by chatasos
Netflow
Source IP address
Destination IP address
Source port number
Destination port number
Layer 3 protocol type
Type of service (ToS)
Input logical interface
Netflow versions
v1
o adds support for new fields and record types using templates
o adds support for IPv6, multicast, MPLS and BGP next hop v10
o aka IPFIX
v1, v5, v9 are the most common ones.
interface FastEthernet0/0.34
ip flow ingress
ip flow egress
322 NTS for CCIE SP Lab by chatasos
IOS
320 352 384 416 448 .000 .000 .000 .000 .000
480 .000
Packets
/Flow
2
1
5
Bytes Packets
/Pkt /Sec
Active(Sec)
/Flow
SrcIf
Pkts
Total:
15.4
SrcIf
Pkts
Fa0/0.37
829F
Fa0/0.37
829E
Fa0/0.37
829D
Fa0/0.34
00B3
DstIPaddress
54 0.0 1.9
1 1 1 2
SrcIPaddress
34.3.7.7
34.3.7.7
34.3.7.7
169.254.34.4
DstIf
Fa0/0.34*
Fa0/0.34*
Fa0/0.34*
Local
DstIPaddress
46.0.0.8
46.0.0.8
46.0.0.8
169.254.34.3
Pr SrcP DstP
11 C013
11 C012
11 C011
06 5415
49 0.0 11.7
Pr SrcP DstP
323
When using netflow v9, you can include the BGP next-hop with either the peer-as or the
origin-as.
IOS
IOS
You can also define the duration of active/inactive flows before they are exported.
You need to find the right balance between short and large timeouts, taking into account the
cache size and the cpu load.
IOS
IOS
as
as-tos
bgp-nexthop-tos destination-prefix destination-prefix-tos
prefix
prefix-port
prefix-tos protocol-port protocol-port-tos
AS aggregation
AS-TOS aggregation
BGP nexthop TOS aggregation Destination Prefix aggregation
Destination Prefix TOS aggregation Prefix aggregation
Prefix-port aggregation
Prefix-TOS aggregation
Protocol and port aggregation Protocol, port and TOS
aggregation
324
source-prefix source-prefix-tos
IOS
It allows you to capture IP flow information for packets that arrive on a router as MPLS
packets and that are transmitted as IP packets (i.e. PE=>CE direction).
IOS
IOS
tag 18
switched
interface
Per-packet load-sharing
1-32 64 96 128 160 192 224 256 288 320 352 384 416 448 480
Protocol
Idle(Sec)
--------
/Flow
SrcIf
Pkts
Fa0/0.37
0800
Flows
SrcIPaddress
10.0.0.3
/Flow
Pr SrcP DstP
01 0000
DstIf
Fa0/0.17*
DstIPaddress
10.0.0.1
You can also capture some extra fields that include L2 information, like below:
IOS
R3(config)#ip flow-capture ?
fragment-offset Capture the fragment offset
icmp Capture the ICMP type and code
ip-id Capture the IP id
mac-addresses Capture src and dst MAC addresses packet-length
Capture the max and min packet length ttl Capture the TTL
vlan-id Capture the VLAN id
IOS
2048 2560 3072 3584 4096 4608 .000 .000 .000 .000 .000 .000
480 .000
512 544 576 1024 1536 .000 .000 .000 .000 .000
326
Protocol Total
Idle(Sec)
-------- Flows
/Flow
TCP-BGP 57
25.2
UDP-other 98
15.7
ICMP 1 15.8
Total: 156 19.1
Flows
/Sec
0.0
0.0
0.0
0.0
Packets
/Flow
2
1
5
1
Bytes Packets
/Pkt /Sec
49 0.0
28 0.0
100 0.0
41 0.0
Active(Sec)
/Flow
13.4
0.0
8.0
4.9
Pr TOS B/Pk
Pr TOS B/Pk
01 00
(034) 0
06 C0
(000)
DstIf
Port Msk
DstIf
Port Msk
Fa0/0.34*
0800 /32
(037)
Local
00B3 /32
(034)
AS
AS
248
0
DstIPaddress
NextHop
DstIPaddress
NextHop
46.0.0.4
169.254.34.4
169.254.34.3
0.0.0.0
0000.0000.0000
id) c208.0618.0000 8
Fa0/0.34
18 2
5415 /32 0
49 17.9
BGP: 0.0.0.0
MAC: (VLAN id) ca06.13bc.0000
169.254.34.4
327
You can also export IPv6 flows, like the IPv4 ones.
IOS
interface X
!
ipv6 flow-export destination 5.5.5.5 5555
An extra option is the ability to specify a minimum mask for prefixes, in order to define the
detail of addresses.
ingress
o information about the source and how many times the traffic was replicated o packets that
fail RPF check
egress
o information about the destination of the traffic flow
IOS
You also need to enable normal netflow under the relevant interfaces.
Links
IOS
interface X
service instance 10 ethernet
encapsulation dot1q 10
!
interface Y
bridge-domain 200
c-mac
virtual 1
ethernet mac-tunnel
bridge-domain 1111
interface Z
switchport
switchport mode trunk
switchport trunk allowed vlan 1111
interface Z
service instance 1 ethernet
EoMPLS
xconnect 10.10.10.10
VPLS
11 encapsulation mpls