Cisco Lab Exersies
Cisco Lab Exersies
Cisco Lab Exersies
AAA
Authentication, Authorization and Accounting (AAA)
Authentication - Who is the user?
Authorization - What is the user allowed to do?
Accounting - What did the user do?
In AAA a router/switch is a:
Network Access Device (NAD)
Network Access Server (NAS)
The NAD challenges the user for credentials, then passes the credentials along to the AAA server
All of these options can be used at the same time and are consulted in order of configuration
AAA Authentication
Use the new method list aaa by configuring aaa new-model, this does the following for
authentication:
Enable the usage aaa commands
Change the vty line authentication methods to login authentication default (aaa)
o Also disables the login and the login local commands
o This default authentication method list uses local usernames and passwords
You can create custom method lists using the aaa authentication login list_name
command
o Manually apply the method lists to the specific line with the login authentication
list_name line command
Local usernames are not automatically placed in privilege level 15 (even when configured
on the username)
In order to automatically put users in exec mode, configure aaa authorization or
hardcode the default line privilege
aaa new-model
aaa authentication login default | list_name local | local-case | line | enable | group radius |
group tacacs+ | none
local-case - Consult the local password database, and enforce case-sensitive username rules
local - Consult the local password database
line - Use the line password for authentication (no username required)
enable - Use the enable password/secret for line authentication
group radius - Consult configured radius servers (in configuration order)
group tacacs+ - Consult configured tacacs+ servers (in configuration order)
none - Do not require any form of authentication
line vty 0 4
login authentication NO_LOGIN
privilege level 15
Even though user Admin has privilege level 15, the user will not be placed in exec mode
o Configure aaa authorization or hardcode the default line privilege level
AAA Authorization
Use the new method list aaa by configuring aaa new-model, this does the following for
authorization:
o Automatically configures the authorization exec default on the vty lines
Using aaa new model, all connecting users will receive privilege mode 1, you can
influence/override this behavior with:
o Set the default line privilege to 15
o Require users to enter privilege exec mode with the enable password/secret
o Configure aaa authorization
exec - Decides whether the user can enter privilege exec mode
commands - The server authorizes all commands at the specified privilege level (TACACS+ +
local only)
config-commands - Authorize commands entered in configuration mode (configure terminal)
This is enabled by default by configuring aaa authorization commands ...
However, you might want the server to only authorize privilege exec commands and not
configuration mode commands
o In this case use no aaa authorization config-commands
The most important part of authorization is the ability to enter privilege exec mode
Unless you want to authorize specific commands (for specific privilege levels) you only
need aaa authorization exec
o This command is needed if you want users to immediately enter privilege exec mode
without an enable password
aaa authorization exec default | list_name local | group radius | group tacacs+ | if-
authenticated
The console is treated differently by default, and requires additional commands in order to
automatically logout users
o The aaa authorization console command applies AAA rules to the console as well
Fall back to local user database if TACACS+ server is unreachable during authentication
Authorize users automatically if TACACS+ server is unreachable during authorization
One method list for console and one for vty lines
aaa new-model
line con 0
login authentication CONSOLE
authorization exec CONSOLE
line vty 0 4
login authentication VTY
authorization exec VTY
Fall back to local user database if RADIUS server is unreachable during authentication
Authorize users automatically if RADIUS server is unreachable during authorization
Authenticate and authorize console sessions using local database
AAA Accounting
Send log messages to specified server in order to verify admin activity or read system
events
The accounting of specific commands can only be done by TACACS+ servers
RADIUS servers can provide accounting methods for other services like exec and system
aaa accounting exec | commands | system default | list_name start-stop | stop-only | none
group radius | group tacacs+
exec - Logs when an exec sessions has started and who started it
commands - Logs commands that are entered (TACACS+ only)
Specify the privilege level commands (0-15) that will be logged to the server with the aaa
accounting commands 0-15 command
system - Logs switch events such as a reload
RADIUS vs TACACS+
Characteristics RADIUS TACACS+
See RADIUS and TACACS+ sections for more information and configuration
Local Users
Local Usernames and Passwords
The privilege level dictates the permissions a user has (see AAA Privilege section)
In IOS there are 3 default privilege levels:
Privilege 0
Privilege 1 - user exec
Privilege 15 - privilege exec
If you don't specify a privilege level, the user will have a default privilege (1)
Instead the user can 'ascend' to the next privilege level by using the enable command
Do not ask for credentials, anyone that connects will enter privilege exec mode
line vty 0 4
no login
privilege level 15
Ask for password only and place anyone that connects in privilege exec mode
line vty 0 4
password cisco
login
privilege level 15
Local authentication is enabled automatically on the vty line (login authentication default)
User cisco that connects will be placed in privilege mode (15) without needing an enable
password
Login / Passwords
Modify Login Parameters
login on-failure log
login on-success log
login delay 3
login block-for 10 attempts 2 within 15
login quiet-mode access-class QUIET
line vty 0 4
transport input ssh
login local
Connect via SSH
ssh -v 2 -l admin 10.0.0.1
Password Encryption
Type 0 = plain text
Type 4 = SHA-256
Type 5 = MD5
Type 7 = Vigenre cipher
Telnet
Default ToS is 192 (C6)
Change the Telnet ToS with the ip telnet tos command
Or
service hide-telnet-addresses
show users
show line
Privilege
Privilege Access Control
The all keyword matches the current command and all underlying sub-commands
o For example give access to all interfaces and all interface sub-configuration options
A privilege level also has access to all the commands defined in a lower privilege level
Privilege level 8 has access to privilege 1-7 and 8
In IOS there are 3 default privilege levels:
o Privilege 0
o Privilege 1 - user exec
o Privilege 15 - privilege exec (default)
RADIUS
Characteristics RADIUS TACACS+
Radius
RADIUS servers are consulted in the order in which they were configured
o All configured servers are used, unless you create custom aaa groups (see below)
By default, the switch/router waits 5 seconds before a message is timed-out (can be
customized)
By default, the switch will retransmit a message 3 times (can be customized)
You can configure global RADIUS settings or host-specific
o Host-specific settings override global settings
All RADIUS servers configured will become public servers by default
o Configure private servers (for single purpose) using the aaa server groups (see below)
Default radius ports are 1645 for authentication and 1646 for accounting
Newer ports are 1812 for authentication and 1813 for accounting
Configuration methods:
Old - uses the radius-server host command
o Does not require aaa new-model configured
New - uses the radius server command
o Requires aaa new-model configured
o Supports IPv6 servers
Server 10.0.0.101 will use timeout 5, retransmit 3 and key cisco on UDP port 1645/1646
Server 10.0.0.102 will use timeout 2, retransmit 2 and key cisco2 on UDP port 1812/1813
aaa new-model
radius server RADIUS
address ipv4 10.0.0.102 auth-port 1812 acct-port 1813
key cisco
retransmit 3
timeout 5
server - Links to a public server (in the global config) configured with the radius-server host
command
server name - Links to a public server (in the global config) configured with the radius server
server_name command
server-private - Creates a private server (IPv4 or IPv6) that does not exist in the global
configuration
The server 10.0.0.101 links to the RADIUS server created with the old-style command
The server name RADIUS links to the RADIUS server created with the new-style command
aaa new-model
aaa server radius dynamic-author
client 10.0.0.10 server-key Pa$$w0rd
port 3799
auth-type all
RBAC
Role-Based Access Control (Parser Views)
Requires AAA enabled
o AAA authorization is recommended
Requires enable 'root' password configured
A superview combines two or more parser views
aaa new-model
aaa authentication login default local
aaa authorization exec default local
TACACS+
Characteristics RADIUS TACACS+
TACACS+
TACACS+ servers are consulted in the order in which they were configured
o All configured servers are used, unless you create custom aaa groups (see below)
By default, the switch/router waits 5 seconds before a message is timed-out (can be
customized)
You can configure global TACACS+ settings or host-specific
o Host-specific settings override global settings
All TACACS+ servers configured will become public servers by default
o Configure private servers (for single purpose) using the aaa server groups (see below)
Configuration methods:
Old - uses the tacacs-server host command
o Does not require aaa new-model configured
New - uses the tacacs server command
o Requires aaa new-model configured
o Supports IPv6 servers
Server 10.0.0.101 will use timeout 5 and key cisco on TCP port 49
Server 10.0.0.102 will use timeout 2 and key cisco2 on TCP port 4949
aaa new-model
tacacs server TACACS
address ipv4 10.0.0.102
key cisco
timeout 5
single-connection
Specify the privilege level in order to authorize for a specific level (usually 15)
Specify the privilege level in order to log for a specific level (usually 15)
server - Links to a public server (in the global config) configured with the tacacs-server host
command
server name - Links to a public server (in the global config) configured with the tacacs server
server_name command
server-private - Creates a private server (IPv4 or IPv6) that does not exist in the global
configuration
The server 10.0.0.101 links to the TACACS+ server created with the old-style command
The server name TACACS links to the TACACS+ server created with the new-style
command
Compiled Access-Lists
The turbo ACL feature is designed in order to process ACLs more efficiently
Applies to all access-lists present on the device
access-list compiled
show access-list compiled
VTY Access-Lists
Outbound ACL on interface only filters transit traffic, not locally generated traffic
Outbound ACL on VTY lines only applies to connections generated from an existing VTY session
Inbound ACL on VTY applies to outside connections coming into the router
line vty 0 4
access-class VTY_OUT out
access-class VTY_IN in
Dynamic
Dynamic Access-Lists (Lock-and-Key)
Blocks traffic until users telnet into the router and are authenticated
A single time-based dynamic entry is added to the existing ACL
Idle timeouts are configured with autocommand
Absolute timeouts are configured in the ACL
The absolute timeout value must be greater than the idle timeout value, if using both
If using none, the access-list entry will remain indefinitely
It is also possible to set the autocommand access-enable host timeout directly on the VTY line
Absolute timers can be extended by 6 minutes using the access-list dynamic-extended command
(requires re-authentication)
access-list dynamic-extended
int fa0/0
ip access-group DYNAMIC in
IPv6 ACL
IPv6 Access-Lists
By default IPv6 access-lists add (hidden) permit statements that are necessary for IPv6 to function
(neighbor discovery, etc)
IPv6 only supports named and extended ACLs
If using an explicit deny, make sure to manually include the ND and RA/RS statements
Reflexive
Reflexive Access-Lists
Only allow return traffic if inside source initiated the traffic
The reflect keyword links ACLs together, the evaluate entry is dynamically created based on this
reflect entry
By default the dynamic entry will timeout after 60 seconds
int fa0/0
description LINK_TO_R3
ip access-group TRAFFIC_FROM_R3 in
ip access-group TRAFFIC_TO_R3 out
Time-Based
Time-Based Access-Lists
Specify time ranges that will allow traffic during specific periods
Based on local system time
Two types:
Periodic - recurring time (daily, weekly, etc)
Absolute - specific start and end time
Periodic ACL
time-range DAILY
periodic daily 09:00 to 17:00
ip access-list extended ALLOW_ICMP_TIME
10 permit icmp host 10.0.0.100 any time-range DAILY
20 deny ip any any log-input
int gi0/0
ip access-group ALLOW_ICMP_TIME in
Absolute ACL
time-range ABSOLUTE
absolute start 09:00 1 Jan 2016 end 17:00 31 Dec 2016
int gi0/0
ip access-group ALLOW_ICMP_TIME in
BGP
AS Ranges
Purpose AS Range Total AS
Reserved 0 1
65535 1
There is also a new Private AS range using the new 32-bit AS numbers
ASPLAIN - 4200000000 to 4294967294
ASDOT - 64086.59904 to 65535.65534
Total Private AS 94967294 (over 94 million!)
Default Routing
The nature of a default route received from a BGP peer (or a static default route) will forward
everything that is unknown
Meaning that an internal subnet of 10.0.0.0/8 will forward other private ranges
(192.168.x.x/16 / 172.16-32.x/12) towards the ISP
To prevent this behavior a discard route can be created to forward all traffic that is
unknown -and destined for a private range to null0
ip route 192.168.0.0 255.255.0.0 null0
ip route 172.16.0.0 255.255.240.0 null0
Homing
There are four defined ISP connection methods:
Terminology Description
Single-multihomed 2 ISP connections using a single link for each ISP (interface)
Dual-multihomed 2 ISP connections using two or more links for each ISP (interfaces)
7 NEIGHBOR N The neighbor type, eBGP or Local Prefer eBGP over iBGP
TYPE iBGP neighbors neighbor paths
8 IGP METRIC I BGP routes will receive a Local Lower metric is better
metric when NEXT_HOP is
learned through an IGP (eigrp
/ ospf / static / etc) protocol
Order of preference:
WEIGHT (highest)
LOCAL_PREF (highest)
Locally injected (network, aggregate) over remotely learned
AS_PATH (shortest)
ORIGIN (lowest) (0 over 1 over 2) 0 is internal, 1 is external (absent), 2 is redistributed
(incomplete)
MUTLI_EXIT-DISC / MED (lowest)
eBGP over iBGP learned routes
Lowest IGP cost/metric to the NEXT_HOP
Multipath is enabled
Weight, Local preference, AS_PATH length, Origin, MED, AS PATH content must match + eBGP and
iBGP specific additional rules
BGP Synchronization
Synchronization is only relevant in iBGP (disabled by default) and applies to the entire process
Routes will only be passed on if they are 'synchronized', this is a loop prevention mechanism and
only really useful when BGP routes are redistributed into an IGP (not recommended)
Meaning that all iBGP learned prefixes must have an identical route in the routing table
learned from an IGP
In other words, the same route / prefix must be in the IGP routing table (RIB) populated by
EIGRP/OSPF/RIP before it can be used
The originator of the route in the routing table has a router-id (RID)
This IGP RID has to match the BGP neighbor that the prefix was received from otherwise its
not synchronized
The BGP RID of the route originator has to match the IGP RID
To fix synchronization problems change either the originators IGP RID or the neighbors BGP RID to
the same value
Make sure that the RID of BGP matches the RID of OSPF/RIP/EIGRP on the same router
router bgp 1
synchronization
BGP Attributes
BGP uses Network Layer Reachability Information (NLRI), which is the route and prefix and certain
attributes
NEXT_HOP Attribute
This is a well-know, mandatory, transitive attribute that must be present in all updates
Is the peers IP-address if remotely learned
Is 0.0.0.0 for routes advertised using the network or aggregate commands
Is the IP next-hop for redistributed routes
The next-hop must be reachable, meaning that it must be present in the routing table
Remains unchanged in the same AS by default, but can (or should) be modified
Is changed by default when forwarded between different AS. Will become the IP address of the
router that passed on the route
AS_PATH Attribute
This is a well-know, mandatory, transitive attribute that must be present in all updates
Ordered List (AS_SEQUENCE)
Read from right to left
Can have an unordered component AS_SET
Used for loop prevention only
Shorter count is better (hop count)
Local ASN is added when advertised to an external peer
Can be modified using route-maps
AS Path Prepending
In special cases can be shortened using the neighbor "neighbor-ip-address" remove-private-as
command
This will remove the private AS that is connected to a non-private as from appearing in the
AS_PATH
Neighboring AS will assume that the route originated from the non-private AS
ORIGIN Attribute
This is a well-know, mandatory, transitive attribute that must be present in all updates. Origin is not part
of AS_PATH
Three possible values:
IGP (0, shown in IOS as "i")
EGP (1, shown in IOS as "e")
Incomplete (2, shown in IOS as "?")
Set at the injection point:
Using "network" or "aggregate" will result in IGP origin code
Using redistribution will result in incomplete origin code
Can be modified using route-maps using the neighbor statement or at the insertion point
WEIGHT Attribute
This is a proprietary, optional, non-transitive attribute that is Cisco only and is only of local significance
Higher value preferred, default values are:
32768 for locally inserted
0 for remotely learned
Can be changed using neighbor statement (directly) or using route-maps (both only apply in the inbound
direction)
router bgp 1
neighbor 10.0.12.1 remote-as 2
add ipv4
neighbor 10.0.12.1 route-map SET_WEIGHT in
Or
router bgp 1
neighbor 10.0.12.1 remote-as 2
add ipv4
neighbor 10.0.12.1 weight 50
LOCAL_PREF Attribute
This is a well-known, discretionary, non-transitive attribute that must be supported by all vendors, but
may not appear in every UPDATE message.
The LOCAL_PREFERENCE is only of significance to the same AS
Higher value preferred, default value is 100. Not always visible using show commands
Takes effect in the entire autonomous system, even in confederations (sub-autonomous systems)
Most effective way to influence path preference for incoming routes, meaning outgoing traffic
paths
Can be modified using route-maps
The local preference value is absent from eBGP learned or advertised routes
The weight is always 0 for all learned routes (unless altered on the local router)
Updates received from (and sent to) eBGP peers do not include the LOCAL_PREFERENCE PA
IOS lists a null value for LOCAL_PREFERENCE for eBGP-learned routes by default
router bgp 1
neighbor 10.0.12.1 remote-as 2
add ipv4
neighbor 10.0.12.1 route-map SET_LOCAL_PREF in/out
ATOMIC_AGGREGATE Attribute
Well-known discretionary attribute
Must be recognized by all BGP implementations, but does not have to appear in all UPDATES
This attribute is set when routes are aggregated (summarized) at a BGP speaker and forwarded to
another AS
Alerts BGP peers that information may have been lost in the aggregation and that it might not be
the best path to the destination
For example, if 10.0.1.0/24 and 10.0.2.0/24 are summarized to 10.0.0.0/22 it will include the
10.0.0.0/24 and 10.0.3.0/24
Aggregated routes will inherit the attributes of the component routes
When routes are aggregated, the aggregator attaches its RID to the route into the
AGGREGATOR_ID attribute, unless the AS_PATH is set using the AS_SET statement
It is not possible to disable the discard route in BGP
Communities Attribute
This is an optional, transitive attribute that is comparable to route-tags
Not used for best-path selection
Large number (32 bits) that are conventionally displayed as ASN:ID (for example 64512:100)
This notation however must be enabled using the ip bgp-community new-format command
This community "tag" is stripped by neighbors by default (even within the same AS). Use neighbor
statement with route-maps
Routes can be in multiple communities
ORIGINATOR_ID
Route reflectors use the ORIGINATOR_ID and CLUSTER_LIST attributes for loop prevention
Each routing table entry will have the originating routers RID inserted by the RR
The RR will pass along routes to the RR-Clients, but it is these clients themselves who check the
update for the presence of the RID (ORIGINATOR_ID)
If this ORIGINATOR_ID matches their own, the update is denied
CLUSTER_LIST
Set by RR by default to the value of the RID. The CLUSTER_ID identifies a group, or a single RR
RR can use this information to discover other RR present on the network
Prevents the installation of multiple routes in the BGP table that were reflected by RR neighbor
Advertise-Map
BGP Advertise-Map
Advertise prefixes based on the existence of other prefixes in the BGP table
Network in the non-exist map has to be present in the BGP table
Possible to advertise default route if another route is present
This does not work with the default-information originate command
router bgp 1
address-family ipv4
network 192.168.0.1 mask 255.255.255.255
neighbor 10.0.13.3 advertise-map ADV_MAP non-exist-map NON_EXIST
router bgp 1
address-family ipv4
network 0.0.0.0 mask 0.0.0.0
neighbor 10.0.13.3 advertise-map ADV_MAP exist-map EXIST
Aggregation
ATOMIC_AGGREGATE Attribute
Well-known discretionary attribute
Must be recognized by all BGP implementations, but does not have to appear in all UPDATES
This attribute is set when routes are aggregated (summarized) at a BGP speaker and forwarded to
another AS
Alerts BGP peers that information may have been lost in the aggregation and that it might not be
the best path to the destination
For example, if 10.0.1.0/24 and 10.0.2.0/24 are summarized to 10.0.0.0/22 it will include the
10.0.0.0/24 and 10.0.3.0/24
Aggregated routes will inherit the attributes of the component routes
When routes are aggregated, the aggregator attaches its RID to the route into the
AGGREGATOR_ID attribute, unless the AS_PATH is set using the as-set statement
It is not possible to disable the discard route in BGP
The as-set keyword preserves the AS_PATH information, meaning that the AS information is not
overwritten by the aggregator
In this case the AT_AGGREGATE is not set and the original AS (or multiple AS) is still present in the
aggregated route
The as-confed-set keyword is the same as as-set, but applies to confederations
By default the more specific routes are still advertised to peers in addition to the summary
This behavior can be altered with the summary-only command to not advertise the more specific
routes
router bgp 1
address-family ipv4
aggregate-address 3.0.0.0 255.255.255.252 as-set suppress-map SUPPRESS
router bgp 1
address-family ipv4
aggregate-address 3.0.0.0 255.255.255.252 as-set summary-only
neighbor 10.0.12.2 unsuppress-map UNSUPPRESS
BGP Inject-Map
Routers can conditionally inject a more specific route based on the presence of an aggregate in
the BGP table
The injected subnets must fall within the range of the aggregate
Copy-attributes will also transfer AS information, otherwise origin will be incomplete
Route-source must match the neighbor the aggregate was received from, NOT the originator
route-map R3_AGG
match ip address prefix-list AGG
match ip route-source prefix-list R3
route-map INJECT
set ip address prefix-list INJECT
router bgp 1
address-family ipv4
bgp inject-map INJECT exist-map R3_AGG copy-attributes
router bgp 1
add ipv4
aggregate-address 34.0.0.0 255.255.255.248 summary-only as-set advertise-map AGG_HIDE_AS4
router bgp 1
address-family ipv4
aggregate-address 3.0.0.0 255.255.255.252 attribute-map AGG_ATTRIBUTE
aggregate-address 3.0.0.0 255.255.255.252 route-map AGG_ATTRIBUTE
AS_PATH
BGP Prepend AS_PATH
Prepend AS 3 five times to the AS_PATH (total of six entries in show ip bgp)
route-map PREPEND_AS permit 10
set as-path prepend 3 3 3 3 3
router bgp 1
neighbor 10.0.12.2 route-map PREPEND_AS out
Prepend the last AS in the path 4 times. This will lead to 5 entries on neighbors (1 original + 4 prepend)
route-map PREPEND_LAST_AS permit 10
set as-path prepend last-as 4
router bgp 1
neighbor 10.0.12.2 route-map PREPEND_LAST_AS out
AS_PATH tag
route-map AS_PATH_TAG permit 10
set as-path tag
router bgp 1
add ipv4
redistribute ospf 1 route-map AS_PATH_TAG
Automatic Tag
ip as-path access-list 1 permit .*
route-map AS_ORIGIN_TABLE_MAP permit 10
match as-path 1
set automatic-tag
router bgp 2
add ipv4
table-map AS_ORIGIN_TABLE_MAP
The dual-as keyword will allow R1 to peer with either the correct AS 64512 or the local-as 2.
router bgp 1
neighbor 10.0.12.2 remote-as 2
Communities
Communities Attribute
This is an optional, transitive attribute that is comparable to route-tags
Not used for best-path selection
Large number (32 bits) that are conventionally displayed as ASN:ID (for example 64512:100)
This notation however must be enabled using the ip bgp-community new-format command
This community "tag" is stripped by neighbors by default (even within the same AS). Use neighbor
statement with route-maps
Routes can be in multiple communities
router bgp 1
address-family ipv4
network 1.0.1.0 mask 255.255.255.0 route-map BGP_ORIGIN
network 1.0.2.0 mask 255.255.255.0 route-map BGP_ORIGIN
network 1.0.3.0 mask 255.255.255.0 route-map BGP_ORIGIN
network 1.0.4.0 mask 255.255.255.0 route-map BGP_ORIGIN
router bgp 1
address-family ipv4
neighbor 10.0.12.2 route-map BGP_COMMUNITY out
router bgp 2
address-family ipv4
neighbor 10.0.12.1 route-map MODIFY_COMMUNITY in
iBGP Confederations
iBGP Confederations
Divides autonomous system into smaller sub-autonomous systems.
Large (container) AS is a confederation, smaller systems are "members"
Inside the member, regular iBGP rules apply using Full-mesh and/or RR
Perceived externally only as the confederation AS
Local Preference (LOCAL_PREF) Applies to the entire confederation
Configuration Considerations
All routers must be configured to be aware of the confederation identifier
All routers should be configured to be aware of all the confederation peers (members)
Can be configured alongside RR
router bgp 1
bgp confederation identifier 123
bgp confederation peers 2
bgp confederation peers 3
neighbor 192.168.0.2 remote-as 2
neighbor 192.168.0.3 remote-as 3
neighbor 192.168.0.2 update-source Lo0
neighbor 192.168.0.3 update-source Lo0
neighbor 192.168.0.2 ebgp-multihop
neighbor 192.168.0.3 ebgp-multihop
address-family ipv4
neighbor 192.168.0.2 next-hop-self
neighbor 192.168.0.3 next-hop-self
The peering between AS1 and AS2, AS3 is an internal peering using different AS
Meaning that routers R3 and R2 are unaware of the routes injected by R1, unless a full-mesh is
configured
Another option is to use next-hop-self for all peers
When peering with loopbacks between confederation peers the peering is basically the same as eBGP
Meaning that ebgp-multihop has to be configured
eBGP Peering
eBGP Peering Rules
Neighbor must be in a different AS
Neighbor should be directly connected. Override with ebgp-multihop (or ttl-security hops) which
changes the default TTL
If not, an underlying routing protocol must provide reachability (static, IGP). Beware of recursive
routing (see below)
NEXT_HOP is changed (to the update-source) when routes are advertised (by the advertising
router)
Routes with own AS are rejected if observed in incoming AS_PATH updates (AS_SEQUENCE and /
or AS_SET)
All the best routes (and only the best routes) are advertised and accepted in the UPDATE message
router eigrp 1
network 10.0.12.1 0.0.0.0
network 192.168.0.1 0.0.0.0
router bgp 1
neighbor 192.168.0.2 remote-as 2
neighbor 192.168.0.2 ebgp-multihop 2
neighbor 192.168.0.2 update-source Loopback0
address-family ipv4
network 192.168.0.1 mask 255.255.255.255
network 192.168.0.2 mask 255.255.255.255 backdoor
R2
int se0/0
ip add 10.0.12.2 255.255.255.252
interface lo0
ip address 192.168.0.2 255.255.255.255
router eigrp 1
network 10.0.12.2 0.0.0.0
network 192.168.0.2 0.0.0.0
router bgp 2
neighbor 192.168.0.1 remote-as 1
neighbor 192.168.0.1 ebgp-multihop 2
neighbor 192.168.0.1 update-source Loopback0
address-family ipv4
network 192.168.0.1 mask 255.255.255.255 backdoor
network 192.168.0.2 mask 255.255.255.255
If Peer 1 (being the active peer by force) only has a default route to Peer 2, the session will not form
ip bgp-community new-format
router bgp 1
bgp router-id 192.168.0.1
neighbor 192.168.0.2 remote-as 2
neighbor 192.168.0.2 ebgp-multihop
neighbor 192.168.0.2 update-source Loopback0
neighbor 192.168.0.2 transport connection-mode passive
address-family ipv4
neighbor 192.168.0.2 activate
neighbor 192.168.0.2 send-community
BGP Connected-Check
Allows directly connected neighbors to peer with loopback addresses without configuring multi-
hop
router bgp 1
neighbor 10.0.12.2 remote-as 2
neighbor 10.0.12.2 disable-connected-check
iBGP
BGP Internal Routing
Does not replace IGP. No direct connectivity required
Works alongside IGPs, this is why direct connectivity is not required
Carry external prefixes throughout the AS
"Split-horizon" as the loop-prevention. iBGP routes are not forwarded to other iBGP peers
Does not re-advertise internally-learned (iBGP) prefixes to other iBGP peers, because the AS_PATH
is not modified inside the AS
Only advertises the best route in any BGP UPDATE
Multiple sessions to same neighbor are not permitted, use loopback destinations instead
Peering Rules
Neighbor must be in the same AS
Neighbors do not have to be directly connected, if not a underlying routing protocol must provide
reachability
Default Policy Behavior
NEXT_HOP is not changed when routes are advertised
External routes are advertised
Routes learned from other internal peers are not advertised to other iBGP neighbors. But are
advertised to eBGP neighbors
iBGP Next-Hop-Self
Because NEXT_HOP is not changed, IGPs are needed to reach neighbors
Another solution is to change the NEXT_HOP to the local router address
The address that will be chosen for this is the loopback address (in case of next-hop-self) or the
internal address used to peer with the neighbors
Make sure the networks next_hop_self is set to are advertised into iBGP. Another solution is to
redistribute the IGP
router bgp 1
neighbor 10.0.12.2 remote-as 2
address-family ipv4
neighbor 10.0.12.2 next-hop-self all
network 10.0.12.0 mask 255.255.255.0
network 10.0.13.0 mask 255.255.255.0
redistribute ospf 1 metric 2 match internal
The all keyword enables next-hop-self for both eBGP and iBGP received paths. Default is only for iBGP
received paths
BGP only redistributes ebgp routes into an IGP
BGP does not redistribute ospf external routes by default
If no metric is specified it will be equal to the number of hops a peer needs to reach the networks
If a metric is specified, it will be applied to all routes advertised, meaning that all routes in the
OSPF domain will receive the same metric
The default is to only match OSPF internal routes, redistributed routes into OSPF are not included
iBGP Peer-Groups
router bgp 123
bgp listen range 10.0.123.0/24 peer-group PEERS
bgp listen limit 2
neighbor PEERS peer-group
neighbor PEERS remote-as 123
address-family ipv4
neighbor PEERS activate
neighbor PEERS send-community
neighbor PEERS etc..
IPv6
IPv6 Networks over IPv4
router bgp 1
neighbor 10.0.12.2 remote-as 2
address-family ipv4
neighbor 10.0.12.2 activate
address-family ipv6
neighbor 10.0.12.2 activate
neighbor 10.0.12.2 route-map IPV6_NEXT_HOP out
network 1::1/128
router bgp 1
bgp router-id 192.168.0.1
neighbor 2::2 remote-as 2
neighbor 2::2 update-source Loopback 0
neighbor 2::2 disable-connected-check
address-family ipv6
neighbor 2::2 activate
router bgp 1
neighbor 2001:10:0:12::2 remote-as 2
address-family ipv4
neighbor 2001:10:0:12::2 activate
neighbor 2001:10:0:12::2 route-map IPV4_NEXT_HOP in
network 192.168.0.1 mask 255.255.255.255
address-family ipv6
neighbor 2001:10:0:12::2 activate
Filtering AS
AS-Path Filters
_ White space, start of string or end of string.
AS-Path AS-Sequence
In IOS the AS-Sequence is the AS_PATH that a route travels through
The AS that the router receives the route from is called the PEER AS
The router that originated the route is called the ORIGIN AS, others are called TRANSIT AS
Example. ^500_400_300_200_100$. 500 is the PEER AS, 100 is the ORIGIN AS, others are
TRANSIT AS
AS-Path Filtering
Match prefixes that originated in the connected AS
ip as-path access-list 1 permit ^[0-9]+$
route-map BGP_CONNECTED_AS permit 10
match as-path 1
router bgp 1
address-family ipv4
neighbor 10.0.12.2 route-map BGP_CONNECTED_AS in
neighbor 10.0.12.2 filter-list 1 in
This matches all numbers but does not allow blank spaces. Meaning that there can only be one AS
in the path, which is the neighbors AS
The + means that the pattern must appear, so blank AS (our own) will not match
^$ Local AS
.* All AS
_5_ Transferring AS 5
_5$ Originated in AS 5
_(4|5)$ Originated in AS 4 or AS 5
? Basically means true or false, the secondary AS that are being matched can appear or not
Filtering PL / ACL
BGP Extended Access-Lists Filtering
ip access-list extended PREFIXES
deny ip 2.0.0.0 0.0.0.255 host 255.255.255.252
deny ip 2.0.0.0 0.0.0.255 host 255.255.255.254
permit ip any any
router bgp 1
address-family ipv4
neighbor 10.0.12.2 distribute-list PREFIXES in
router bgp 2
address-family ipv4
neighbor 10.0.12.1 prefix-list PREFIXES in
router bgp 2
neighbor 10.0.12.1 remote-as 1
address-family ipv4
network 192.168.0.2 m 255.255.255.255
neighbor 10.0.12.1 activate
neighbor 10.0.12.1 capability orf prefix-list send
neighbor 10.0.12.1 prefix-list PREFIXES in
router bgp 1
neighbor 10.0.12.2 remote-as 2
address-family ipv4
neighbor 10.0.12.2 activate
neighbor 10.0.12.2 capability orf prefix-list receive
network 192.168.0.1 m 255.255.255.255
network 1.0.0.1 m 255.255.255.255
network 1.0.0.2 m 255.255.255.255
network 1.0.0.3 m 255.255.255.255
network 1.0.0.4 m 255.255.255.255
Misc
BGP Authentication
BGP only supports one type of authentication, MD5
Configure authentication using the neighbor x.x.x.x password command
BGP Fall-over
Holdtime does not have to expire in order to tear down the session.
The fall-over will still allow bgp to form neighborships using a default or summary route.
Configure a route-map to make sure that the specific route has to be present in the routing table.
router bgp 1
neighbor 192.168.0.2 fall-over route-map R2_FALLOVER
router bgp 1
bgp nexthop trigger enable
bgp nexthop trigger delay 5
router bgp 1
address-family ipv4
bgp nexthop route-map SAT
neighbor 10.0.13.3 fall-over route-map SAT
neighbor 10.0.12.2 fall-over route-map SAT
BGP Multi-Session
Use a different TCP session for each address-family
router bgp 1
neighbor 192.168.0.2 transport multi-session (must agree on both sides)
BGP Peer-Groups
Applying filters and other settings on a peer-by-peer basis can result in high CPU usage
Peer groups allow you to logically group peers together and apply policies to the group, this can
dramatically reduce CPU load
Routers will still send out BGP UPDATE messages on a peer-by-peer basis (they are not
broadcasted/multicasted), this is due to the nature of BGP (individual TCP sessions)
router bgp 1
neighbor 10.0.12.2 remote-as 2
neighbor 10.0.13.3 remote-as 3
neighbor PEERS peer-group
address-family ipv4
neighbor PEERS activate
neighbor PEERS send-community
neighbor PEERS prefix-list ROUTE_FILTER in
BGP TTL-Security
Configuring TTL-Security automatically allows peering over multiple hops (without explicitly
configuring multi-hop).
Configuring ttl-security hops 2 will cause the router to expect incoming packets have a TTL value
of 253.
If packets arrive with a TTL of lower than 253, they will be discarded.
router bgp 1
bgp router-id 192.168.0.1
neighbor 192.168.0.2 remote-as 2
neighbor 192.168.0.2 update-source Loopback0
neighbor 192.168.0.2 ttl-security hops 2
address-family ipv4
neighbor 192.168.0.2 activate
Route-Reflector (RR)
iBGP Route-Reflector
Because routes learned from other internal peers are not advertised to other iBGP neighbors,
iBGP needs a full-mesh topology.
This approach has drawbacks however when a lot of routers are present in the AS.
Another solution is to use a Route-Reflector (RR) to basically re-advertise the routes to internal
peers.
ORIGINATOR_ID
Route reflectors use the ORIGINATOR_ID and CLUSTER_LIST attributes for loop prevention.
Each routing table entry will have the originating routers RID inserted by the RR.
The RR will pass along routes to the RR-Clients, but it is these clients themselves who check the
update for the presence of the RID (ORIGINATOR_ID). If this ORIGINATOR_ID matches their own,
the update is denied.
CLUSTER_LIST
Set by RR by default to the value of the RID. The CLUSTER_ID identifies a group, or a single RR.
RR can use this information to discover other RR present on the network.
Prevents the installation of multiple routes in the BGP table that were reflected by RR neighbors.
Advertisement Rules
Routes received from iBGP are advertised to external peers.
So there is no need for RR in this case.
External route from RR-Client -> iBGP = Forwarded to eBGP, RR-Clients and non-clients
When a RR-Client receives a route from an eBGP peer it will be forwarded to the RR, which
forwards it to all eBGP peers and iBGP peers.
External route from RR -> iBGP = Forwarded to eBGP, RR-Clients and non-clients
When a RR receives a route from an eBGP peer it will be forwarded to all eBGP and iBGP peers.
Session
BGP Session
BGP uses TCP port 179 for destination and a random source port.
Commands that affect the BGP session are: shutdown, password, update-source and modification
of timers.
When using the network statement, BGP looks in the routing table and verifies that the route
exists.
The subnet used in the network statement must match exactly in order to inserted into BGP.
If two BGP peers initiate a session, the router that initiated the session will use a random TCP port to set
up the TCP connection, the router that received the session request will use TCP port 179.
The initiating router message will be OPEN_ACTIVE.
The receiving router message will be OPEN_PASSIVE.
The receiving router will also send the OPEN_ACTIVE message, but this will fail because it is no
longer needed.
BGP Messages
OPEN First message sent between peers after a TCP connection has been established
Exchanges parameters (ASN / authentication / capabilities / etc.)
Confirmed by KEEPALIVE message or denied by NOTIFICATION message
UPDATE Exchanges Path Attributes (PAs) with associated prefixes/NLRI information (routes)
Multiple prefixes that have the same PAs can be advertised in a single message
For example AS_PATH 1 2 3 can be associated with 100 prefixes advertised in a single
UPDATE message
A single UPDATE message may simultaneously advertise a feasible prefix and
withdraw multiple unfeasible prefixes from service
When BGP fast peering session deactivation is enabled, BGP will monitor the peering session with the
specified neighbor.
Adjacency changes are detected, and terminated peering sessions are deactivated in between the
default or configured BGP scanning interval.
BGP States
STATE DESCRIPTION / REASON STUCK IN STATE RESULT
OPENCONFIRM An OPEN message is both sent and KEEPALIVE if all parameters match /
received session approved
Leads to either KEEPALIVE (approved) or NOTIFICATION if mismatch between
NOTIFICATION (not approved) parameters / session denied
ESTABLISHED Routers have a BGP peering session UPDATES messages are exchanged
between BGP speakers.
The neighbor address is the configured address (neighbor statement), not necessarily the
neighbor's router-id
Any number in the State/PfxRcd column means that the state is established
BGP neighbors exchange Path Attributes (PA) (AS_PATH etc.) that come with the prefix
information (subnets), not the other way around
The reset type soft will not bring down the entire neighborship and will only change the BGP
updates
When issued, these commands cause the router to reevaluate its existing BGP table and
create a new BGP Update for that neighbor
The 'soft' version of the commands are the older style commands that require soft-
reconfiguration inbound configured
The 'non-soft' version of the commands are the newer style and work based on route-refresh
capabilities (enabled by default)
Route-refresh allows the router to request a new full bgp update and apply its own inbound
BGP filters afterwards
Clearing a neighbor (asking for a full update) using route-refresh will display new output in the show ip
bgp summary command
E - The peer has requested a route-refresh that hasn't been completed yet
S - The refresh for that peer has started
P - Displayed if BGP is refreshing the neighbor starting at some table version other than zero. It
should normally start from zero so you won't see this displayed but if you have multiple peers that
are out of sync and they request route-refresh at the same time then you may see the P displayed
for them once they are in sync
You can see a combination of this output (SE for example) meaning that the refresh has started but not
yet completed.
BGP Output
From R2's perspective the AS path to the 1.0.0.1-4/32 prefixes is AS 13. R6 will add the AS of the router
it received the prefixes from to the AS_PATH (AS 13 2)
Updates advertised to eBGP peers do not include the LOCAL_PREFERENCE PA
Table-Map
BGP Table-Map
Sits between the BGP table and the RIB. Does not filter bgp prefixes received.
Can be used to match prefixes and apply tags or communities.
Can also be used to filter BGP prefixes from the local RIB with the filter keyword.
Typically used to apply QoS settings and tags/communities.
Applies to all prefixes received from all peers.
router bgp 1
add ipv4
table-map TABLE_MAP_DENY filter
router bgp 1
add ipv4
table-map TABLE_MAP_QOS
router bgp 2
add ipv4
table-map AS_ORIGIN_TABLE_MAP
Cryptography
Internet Key Exchange (IKE)
IKEv1 uses UDP port 500. UDP port 4500 is used for NAT-Traversal in IKEv2.
Encapsulation Header (ESP) is UDP port 50. Authentication Header (AH) is UDP port 51.
Main Mode
crypto isakmp policy 10
encr aes 256
hash sha256
authentication pre-share
group 14
lifetime 28800
int fa0/0
crypto map CMAP
Aggressive Mode
crypto isakmp policy 10
encr aes 256
hash sha256
authentication pre-share
group 14
life time 3600
int fa0/0
crypto map CMAP
Dynamic VTI
Dynamic Virtual Tunnel Interfaces (VTI)
Provides a separate virtual interface for each VPN session cloned from virtual template.
When using EIGRP the split-horizon and next-hop-self configuration needs to be placed on the
virtual-template.
The VPN will be initiated even if no traffic is generated.
Hub configuration
crypto isakmp policy 10
encryption aes 256
hash sha256
authentication pre-share
group 14
lifetime 3600
int lo1
ip add 10.0.123.1 255.255.255.0
Spoke configuration
crypto isakmp policy 10
encr aes 256
hash sha256
authentication pre-share
group 14
lifetime 3600
interface tun0
ip add 10.0.123.2 255.255.255.0
tunnel source fa0/0
tunnel destination 123.0.0.1
tunnel mode ipsec ipv4
ip mtu 1400
tunnel protection ipsec profile IPSEC
Static VTI
Static Virtual Tunnel Interfaces (VTI)
Default tunnel mode is GRE, optionally change to IPsec IPv4 / IPv6.
The VPN will be initiated even if no traffic is generated.
int tun0
ip add 10.0.12.1 255.255.255.0
tunnel source 12.0.0.1
tunnel destination 12.0.0.2
ip mtu 1400
tunnel protection ipsec profile IPSEC
qos pre-classify
router eigrp 12
network 10.0.12.0 0.0.0.255
network 192.168.0.1 0.0.0.0
DMVPN
Dynamic Multipoint VPN (DMVPN) Phases
Phase GRE-Mode Dynamic Tunnels Summarization / Default-Route
DMVPN Phase 1
Basically traditional Hub-and-Spoke topology without dynamic tunnels.
Configure spokes with tunnel destination <hub nbma address> and tunnel mode gre on the tunnel
interface.
Unique Request packets are unique, disable if spoke has a dynamic outside IP address.
Used Set when data packets are process switched and mapping entry is in use, 60s timer.
Router NHRP mapping entries for the remote router for access to network.
BGP
iBGP DMVPN Recommendations
Configure Hub as Route-Reflector.
Configure Spokes as Route-Reflector Clients.
Use Peer-Groups for scalable config.
P3 hub configuration
int fa0/0
ip add 123.0.0.1 255.255.255.0
int tun0
tunnel source fa0/0
tunnel mode gre multipoint
ip nhrp network-id 123
ip mtu 1400
ip nhrp map multicast dynamic
ip address 10.0.123.1 255.255.255.0
ip nhrp redirect
P3 spoke configuration
int fa0/0
ip add 123.0.0.2 255.255.255.0
int tun0
tunnel source fa0/0
tunnel mode gre multipoin
ip nhrp network-id 123
ip mtu 1400
ip nhrp map multicast 123.0.0.1
ip nhrp nhs 10.0.123.1 nbma 123.0.0.1
ip address 10.0.123.2 255.255.255.0
ip nhrp shortcut
EIGRP
EIGRP DMVPN Recommendations
Phase Next-Hop-Self Split-Horizon
2 Disable Disable
P3 hub configuration
int fa0/0
ip add 123.0.0.1 255.255.255.0
int tun0
tunnel source fa0/0
tunnel mode gre multipoint
ip nhrp network-id 123
ip mtu 1400
ip nhrp map multicast dynamic
ip address 10.0.123.1 255.255.255.0
ip nhrp redirect
P3 spoke configuration
int fa0/0
ip add 123.0.0.2 255.255.255.0
int tun0
tunnel source fa0/0
tunnel mode gre multipoint
ip nhrp network-id 123
ip mtu 1400
ip nhrp map multicast 123.0.0.1
ip nhrp nhs 10.0.123.1 nbma 123.0.0.1
ip address 10.0.123.2 255.255.255.0
ip nhrp shortcut
Misc
DMVPN Encryption
Mode tunnel adds 20 bytes overhead and is only used in a multi-tier DMVPN hub.
One set of routers running cryptography and another set performing NHRP services.
Mode transport is preferred for single-hub configurations.
policy-map R2_PM
class class-default
shape average 50 m
policy-map R3_POLICY
class class-default
shape average 25 m
int tun0
ip nhrp map group R2 service-policy output R2_PM
ip nhrp map group R3 service-policy output R3_PM
Spoke configuration
int tun0
ip nhrp group R2
DMVPN PIMv2
PIM does not allow multicast traffic to leave the same interface it was received on.
Override this behavior with ip pim nbma-mode configured on the tunnel interface.
ODR
DMVPN On-Demand Routing (ODR)
Disable CDP on outside (physical) interfaces. Enable CDP on tunnel interfaces.
ODR timers and CDP timers should be the same.
Configure on hub only, spokes will receive a default route via ODR and will advertise their
connected subnets.
In P2 all traffic will still flow through the hub, ODR needs P3 in order to create dynamic tunnels.
P3 hub configuration
int fa0/0
ip add 123.0.0.1 255.255.255.0
cdp timer 20
cdp holdtime 60
int tun0
tunnel source fa0/0
tunnel mode gre multipoint
ip nhrp network-id 123
ip mtu 1400
ip nhrp map multicast dynamic
ip address 10.0.123.1 255.255.255.0
ip nhrp redirect
cdp enable
router odr
timers 20 60 60 90
P3 spoke configuration
int fa0/0
ip add 123.0.0.2 255.255.255.0
cdp timer 20
cdp holdtime 60
int tun0
tunnel source fa0/0
tunnel mode gre multipoint
ip nhrp network-id 123
ip mtu 1400
ip nhrp map multicast 123.0.0.1
ip nhrp nhs 10.0.123.1 nbma 123.0.0.1
ip address 10.0.123.2 255.255.255.0
ip nhrp shortcut
cdp enable
OSPF
OSPF DMVPN Recommendations
It is vital to the workings of OSPF that the hub is the DR in broadcast and non-broadcast networks
OSPF is not recommended for DMVPN because it is not possible to summarize within the same
area
The DMVPN topology is most likely going to be part of the backbone area
PTMP will not create dynamic tunnels in P2. Broadcast is recommended for P2
PTMP is recommended for P1 and P3
P3 hub configuration
int fa0/0
ip add 123.0.0.1 255.255.255.0
int tun0
tunnel source fa0/0
tunnel mode gre multipoint
ip nhrp network-id 123
ip mtu 1400
ip nhrp map multicast dynamic
ip address 10.0.123.1 255.255.255.0
ip ospf network point-to-multipoint
ip ospf 123 area 0
ip nhrp redirect
P3 spoke configuration
int fa0/0
ip add 123.0.0.2 255.255.255.0
int tun0
tunnel source fa0/0
tunnel mode gre multipoint
ip nhrp network-id 123
ip mtu 1400
ip nhrp map multicast 123.0.0.1
ip address 10.0.123.2 255.255.255.0
ip nhrp nhs 10.0.123.1 nbma 123.0.0.1
ip ospf network point-to-multipoint
ip ospf 123 area 0
ip nhrp shortcut
Hub configuration
router ospf 123
default-information originate always
Spoke configuration
access-list 1 permit host 0.0.0.0
router ospf 123
distribute-list 1 in
RIP
RIP DMVPN Recommendations
Phase Split-Horizon
2 Disable
P3 hub configuration
int fa0/0
ip add 123.0.0.1 255.255.255.0
int tun0
tunnel source fa0/0
tunnel mode gre multipoint
ip nhrp network-id 123
ip mtu 1400
ip nhrp map multicast dynamic
ip address 10.0.123.1 255.255.255.0
ip nhrp redirect
router rip
version 2
network 10.0.0.0
no auto-summary
P3 spoke configuration
int fa0/0
ip add 123.0.0.2 255.255.255.0
int tun0
tunnel source fa0/0
tunnel mode gre multipoint
ip nhrp network-id 123
ip mtu 1400
ip nhrp map multicast 123.0.0.1
ip nhrp nhs 10.0.123.1 nbma 123.0.0.1
ip address 10.0.123.2 255.255.255.0
ip nhrp shortcut
router rip
version 2
network 10.0.0.0
no auto-summary
IPv6
IPv6 DMVPN over IPv4 NBMA
IPv4 for the physical interface.
IPv6 for the tunnel interface.
Uses IPv4 NBMA address on nhs command.
Uses IPv6 NHRP commands.
P3 hub configuration
int fa0/0
ip add 10.0.123.1 255.255.255.0
interface tun0
tunnel source 10.0.123.1
tunnel mode gre multipoint ipv6
ipv6 nhrp map multicast dynamic
ipv6 nhrp network-id 123
ipv6 mtu 1400
ipv6 address FE80::1 link-local
ipv6 address 2001:10:0:123::1/64
ipv6 nhrp redirect
P3 spoke configuration
int fa0/0
ip add 10.0.123.2 255.255.255.0
interface tun0
tunnel source 10.0.123.2
tunnel mode gre multipoint
ipv6 nhrp map multicast 123.0.0.1
ipv6 nhrp network-id 123
ipv6 nhrp nhs 2001:10:0:123::1 nbma 123.0.0.1
ipv6 mtu 1400
ipv6 address FE80::2 link-local
ipv6 address 2001:10:0:123::2/64
ipv6 nhrp shortcut
IPv6 DMVPN over IPv6 NBMA
IPv6 for the physical interface.
IPv6 for the tunnel interface.
Uses IPv6 NBMA address on nhs command.
Uses IPv6 NHRP commands.
P3 hub configuration
int fa0/0
ipv6 add 2001:123::1/64
ipv6 address FE80::1 link-local
int tun0
ipv6 mtu 1400
tunnel source 2001:123::1/64
tunnel mode gre multipoint ipv6
ipv6 address FE80::1 link-local
ipv6 address 2001:10:0:123::1/64
ipv6 mtu 1400
ipv6 nhrp map multicast dynamic
ipv6 nhrp network-id 123
ipv6 nhrp redirect
P3 spoke configuration
int fa0/0
ipv6 add 2001:123::2/64
ipv6 address FE80::2 link-local
int tun0
ipv6 mtu 1400
tunnel source 2001:123::2/64
tunnel mode gre multipoint ipv6
ipv6 address FE80::2 link-local
ipv6 address 2001:10:0:123::2/64
ipv6 nhrp map multicast 2001:123:0:0::1
ipv6 nhrp network-id 123
ipv6 nhrp nhs 2001:10:0:123::1 nbma 2001:123::1
ipv6 mtu 1400
ipv6 nhrp shortcut
P3 hub configuration
int fa0/0
ipv6 add 2001:123::1/64
ipv6 address FE80::1 link-local
interface tun0
ip mtu 1400
tunnel source 2001:123::1
tunnel mode gre multipoint ipv6
ip nhrp map multicast dynamic
ip nhrp network-id 123
ip address 10.0.123.1 255.255.255.0
ip nhrp redirect
P3 spoke configuration
int fa0/0
ipv6 add 2001:123::2/64
ipv6 address FE80::2 link-local
interface tun0
ip mtu 1400
tunnel source 2001:123::2
tunnel mode gre multipoint ipv6
ip nhrp map multicast dynamic
ip nhrp network-id 123
ip address 10.0.123.2 255.255.255.0
ip nhrp nhs 10.0.123.1 nbma 2001:123::1
ip nhrp shortcut
EIGRP
EIGRP Rules
ASN (router eigrp xx) needs to match between neighbors
Hello timers do not need to match between neighbors
MTU size is used as a tie-breaker in path selection, it is not directly used in the metric
formula
supports MD5 authentication using key-chains (only named mode supports SHA
authentication)
Automatic summarization is on by default, manual summarization can only be configured
on the links
EIGRP Communication
EIGRP uses Reliable Transport Protocol (RTP) for guaranteed, ordered delivery of EIGRP
packets to all neighbors
Supports multicast and unicast, and uses IP protocol 88
Multicast address is 224.0.0.10 and FF02::A
Only some EIGRP packets are sent reliably
o For efficiency, reliability is provided only when necessary
o EIGRP updates are sent to the multicast address and acknowledgements are replied
via unicast
EIGRP Timers
The configured hold-time is communicated to the neighbor on the segment
o This hold-time is included in the hello message
The neighbor receives this and will expect a new hello from the router within this time
o The default hello-interval is 5 seconds on (faster) LAN interfaces and 60 seconds for
(slow) WAN interfaces
o The default hold-timer is 3 times the hello-timer
o These timers do not have to match
Set the hello timer to 2 seconds and the hold timer to 6 seconds for AS1
int gi0/0
ip hello-interval eigrp 1 2
ip hold-time eigrp 1 6
Passive Interfaces
Making an interface passive will stop EIGRP from sending multicast or unicast
neighborship messages on that link
The interface connect subnet will still be advertised in the EIGRP process
Passive interfaces will only show up in the show ip protocols command
Passive interfaces are not listed under show ip eigrp interfaces, this command only shows
interfaces on which neighbors can form
int lo1
ip add 1.0.1.1 255.255.255.0
int lo2
ip add 1.0.2.1 255.255.255.0
int lo3
ip add 1.0.3.1 255.255.255.0
int lo4
ip add 1.0.4.1 255.255.255.0
router eigrp 12
network 10.0.12.2 255.255.255.252
passive-interface default
no passive-interface fa0/0
The show ip eigrp interfaces command will only list the interfaces that are enabled for
EIGRP and active (no passive-interfaces)
A helpful way to remember this is that all interfaces listed under this command will
be able to form neighborships
The show ip eigrp interfaces detail command will only list the interfaces that are enabled
for EIGRP and active (no passive-interfaces)
This is the only command that will actually display the hello / hold timers and
authentication settings
This command and the routing table are the only commands that shows the (locally
significant) eigrp distance
This is the only command that shows the eigrp passive interfaces
In this case the distance was altered to 91 internal and 171 external with the distance
eigrp 91 171 command
This is the only command that displays the variance (unequal cost load balancing), used k-
values, the maximum paths and the maximum hopcount
This command and show ip eigrp topology display the router-id (RID)
Neighborships will still form if the RID is the same between two routers, the routers
will not be installed in the router table however
The only real way to verify a route received from a duplicate router-id is with the show ip
eigrp events | i routerid command
This is a normal function of EIGRP to prevent routing loops and will show up in the events
if a router receives its own routes back through neighbor updates
Shows the current hold timer, round-trip time and query counter (a number here will
indicate a stuck in active problem)
Using the default hello-interval of 5 and a hold-timer of 15, a value under 10 seconds for
the hold timer will probably mean that the neighborship is about to go down
The show ip eigrp neighbors detail command will also show retransmits
Displays the total amount of hello's sent and received, as well as the total amount of
updates sent and received
The first metric value is the feasible distance (FD) 156160 in this case, this is our distance to
the route
The second metric value is the reported or advertised distance (AD) 128256 in this case,
this is the neighbors distance to the route
Routes indicated with P are Passive, which means that EIGRP has converged on this route
Routes indicated with A are Active, which means that EIGRP is actively looking for a next-
hop of this route
This process will only start if the successor route has failed, and there is no feasible
successor present
Going active on a route is sometimes referred to as DUAL (Diffusing Update
Algorithm)
On FastEthernet the reliability is usually 255 (unless there are errors on the link), the load is
1 and the MTU is 1500
Like the topology table, the standard routing table also shows the eigrp metric values, as
well as the traffic share count (UCMP in this case)
Filtering
Extended Access-List
Deny even from R2 and odd from R3
ip access-list extended 100
deny ip host 10.0.12.2 4.0.0.0 0.0.0.254
deny ip host 10.0.13.3 4.0.0.1 0.0.0.254
permit ip any any
router eigrp 1
distribute-list 100 in
Prefix-List
Deny all prefixes from R2
ip prefix-list DENY_R2 deny 10.0.12.2/32
ip prefix-list DENY_R2 permit 0.0.0.0/0 le 32
ip prefix-list PREFIXES permit 0.0.0.0/0 le 32
router eigrp 1
distribute-list prefix PREFIXES gateway DENY_R2 in
router eigrp 1
distribute-list gateway R3 in
router eigrp 1
distribute-list prefix NETWORKS gateway R2 in fa0/0
Metric
EIGRP Composite Metric (Weight Calculation)
EIGRP uses metric weights along with a set of vector metrics to compute the composite metric for
local RIB and route selections.
Type of service (first K value) must always be zero.
The formula is [K1*bandwidth + (K2*bandwidth)/(256 - load) + K3*delay] * [K5/(reliability + K4)].
GigabitEthernet 1,000,000 10 1
The 64-bit metric calculations work only in EIGRP named mode configurations. EIGRP classic mode uses
32-bit metric calculations.
EIGRP named mode automatically uses wide metrics when speaking to another EIGRP named
mode process.
An offset list will only influence the calculated metric, and thus the composite metric
This composite metric includes both the feasible distance AND the reported distance, making it
very hard to use offset-list to create a specific UCMP load scenario
The composite metric is only used for local calculation and is not communicated to neighbors
However, routing paths through the router between neighbors will still add the offset value to the
metric.
This is because the offset list changes the delay value which is cumulative in the total metric for
the route
router eigrp 1
variance 5
traffic-share min across-interfaces
Metric Maximum-Hops
The maximum hops is a greater than statement. Default is 100 hops.
If 10 is entered for example, the prefixes 10 hops away are still valid. The prefixes 11 hops away
are denied.
router eigrp 1
metric maximum-hops 10
Misc
EIGRP Neighbor Statement
Limit neighbor ship with specific neighbors by configuring neighbor statements (on the same
segment)
This will ensure that EIGRP hellos are sent unicast to the specified neighbor and not multicast to
all neighbors to 224.0.0.10
Configuring the neighbor statement will essentially stop the router from sending multicast
messages to 224.0.0.10, meaning that all neighborships are dropped on that interface unless they
are specifically configured in the neighbor statement
You need to specify an interface with a neighbor ip-address
The neighbor statement will only work on interfaces that are active for EIGRP (network statement)
router eigrp 1
neighbor 10.0.12.2 fa0/0
Will show up as 'static neighbor' using the show ip eigrp interfaces detail command
Or
ipv6 access-list EIGRP_BLOCK
deny 88 fe80::2/128 any
deny 88 fe80::3/128 any
permit ipv6 any any
int fa0/0
ipv6 traffic-filter EIGRP_BLOCK in
EIGRP Redistribution
Normally, static routes (or other protocols) can only be advertised into EIGRP with the redistribute
command
ip route 0.0.0.0 0.0.0.0 100.0.0.1
router eigrp 1
redistribute static 1000000 1 255 1 1500
The exception is static routes that ONLY point to an outgoing interface and not a next-hop IP
address
These routes will be advertised into the EIGRP process if the network statement matches
the static route subnet
Or
ip route 0.0.0.0 0.0.0.0 GigabitEthernet 0/0
router eigrp 1
network 0.0.0.0
This is only true for static routes that have no next-hop IP address and only an outgoing interface
EIGRP Router-ID
Duplicate router-IDs (RID) do not show up in the logging or debug. Use the show ip eigrp events |
i dup command.
EIGRP uses the concept of the RID as a loop-prevention mechanism to filter out a routers own
routes.
In the event of a duplicate RID the neighbors routes will not be installed.
EIGRP Authentication
It is possible to configure multiple keys. Only one authentication packet is sent, regardless of how
many keys exist
The software examines the key numbers in the order from lowest to highest, and uses the first
valid key that it encounters
The key chain name is locally significant, only the key-string and the key ID need to match
between neighbors
HMAC-SHA-256 authentication is only available in named mode. Does not support key-chains
Named mode ignores all authentication (and other) commands configured on the local interface
using the old method
int fa0/0
ip authentication key-chain eigrp 1 EIGRP_KEY
ip authentication mode eigrp 1 md5
int fa0/0
ip dampening-change eigrp 1 percent 75
ip dampening-interval eigrp 1 seconds 60
Next-Hop-Self
Disable next-hop-self on the redistributing router when using 3rd party next hop.
This is used when OSPF and EIGRP coexist on the same segment, and one router is used for
redistributing both protocols.
Normally all traffic would go through the redistributing router, with 3rd party next hop the
neighbors can communicate directly.
Requirement is to disable next-hop-self on the interface of the redistributing router towards the
shared segment.
Other situations where next-hop-self might be disabled is in DMVPN solutions.
int fa0/0
description SHARED_OSPF_EIGRP_SEGMENT
ip add 10.0.123.1 255.255.255.0
no ip next-hop-self eigrp 1
router eigrp 1
network 10.0.123.0 0.0.0.255
redistribute ospf 1
router ospf 1
network 10.0.123.0 0.0.0.255 area 0
redistribute eigrp 1 subnets
EIGRP achieves bandwidth control by queuing the messages in memory, a form of QoS shaping
specific to EIGRP messages
Note that values greater than 100 percent may be configured
This configuration option may be useful if the bandwidth is set artificially low for other
reasons.
int se0/0
bandwidth 512
ip bandwidth-percent eigrp <as> <percentage>
ip bandwidth-percent eigrp 1 75
Administrative Distance
Changes to the administrative distance of all internal and external routes is limited to the router
itself.
Can be limited to a specific neighbor, only one specific distance command can be entered per
neighbor.
router eigrp 1
distance eigrp 90 170
distance 85 10.0.12.2 0.0.0.0
distance 75 10.0.13.3 0.0.0.0 NETWORK
Route-Tags
Route Tag Enhancements
The route tag enhancements allow the route tag to be formatted as a dotted decimal tag.
These can me matched either directly (in the traditional route tag method in route-map) or via a
route-tag list.
EIGRP named mode provides the option of assigning a default-route-tag to all routes sourced by
the router.
route-tag notation dotted-decimal
ip access-list standard Lo1
permit host 4.0.0.1
ip access-list standard Lo2
permit host 4.0.0.2
router eigrp 1
redistribute connected route-map LOOPBACKS
router eigrp 1
distribute-list route-map LOOPBACKS in fa0/0
Default Route-Tags
router eigrp EIGRP
address-family ipv4 unicast autonomous-system 1
eigrp default-route-tag 192.168.0.1
Summarization
EIGRP Route Summarization
Summary routes are always internal, even if external routes are summarized.
Adding a summary route will reestablishes the EIGRP neighborship with the neighbor on that
specific link (not all links)
The summary route will use a metric equal to the metric of the lowest metric of the routes
included in the summary
R2
int se0/0
ip add 10.0.12.1 255.255.255.0
no shut
int lo0
ip add 172.16.2.1 255.255.255.0
With auto-summary R1 will receive a 172.16.0.0/10 route from both R3 and R2 instead of the
separate 172.16.3.0/24 and 172.16.2.0/24 classless networks
Method 2
ip route 0.0.0.0 0.0.0.0 GigabitEthernet 0/0
router eigrp 1
network 0.0.0.0
Method3
Marks a classful network as a route that can be used as a default route
This is called a candidate default route and is indicated with a * in show ip route
The classful network needs to be advertised into EIGRP using the network statement or via
redistribution
Preferably use a loopback and advertise that route as the default network to the rest of the EIGRP
domain
The behavior of this command seems to be different depending on the version of IOS
o On 15.* the gateway of last resort does not seem to be added to neighbor routing tables
o On 12.* the gateway of last resort is added to neighbor routing tables
int se0/0
ip add 10.0.12.1 255.255.255.252
no shut
int lo0
ip add 192.168.0.1 255.255.255.0
ip default-network 192.168.0.0
router eigrp 12
network 10.0.12.0 0.0.0.255
network 192.168.0.0 0.0.0.255
!-----------------------!!-----------------------!!-----------------------!!-----------------------!
!-----------------------!!-----------------------!!-----------------------!!-----------------------!
!-----------------------!!-----------------------!!-----------------------!!-----------------------!
Discard Route & Leak-Map
The summary route has an AD of 5 and is called the discard route which points to Null0 on the
summarizing router
The neighbor will receive an internal route with an AD of 90
Disable the discard route by specifying a summary-metric distance of 255
Configure a leak-map to allow components of the summary to advertised alongside the summary
Stop IP ICMP unreachables based on discard route with no ip unreachables configured on null0
interface
int fa0/0
ip summary-address eigrp 1 0.0.0.0/0
int fa0/0
ip summary-address eigrp 1 10.0.0.0/16 leak-map LEAK_MAP
Stub
EIGRP Stuck in Active
EIGRP query messages live for 3 minutes by default. Can be modified with the timers active-time
command
Queries are sent (A in topology table) if a successor route is lost, the router will seek for a new
next-hop of the route
Queries are not sent if a feasible successor is present in the topology for the route
A router will wait for a REPLY for all neighbors before failing over to a different path.
If a router does not receive a reply to a QUERY within the configured active time (3 min) it will
consider the route Stuck in Active (SIA)
Earlier versions of IOS (<12.2) just terminated the neighborship at the end of the active-time
More recent versions send a SIA-QUERY at the half-life of the active-time (90 sec) to verify if
the neighbor is also waiting for replies
If the router receives a SIA-REPLY back it will continue waiting and not terminate the
neighborship, if the neighbor does not reply the neighborship is terminated at the end of
the active time
SIA can be fixed with either STUB routers, or summary routes (or a combination of both)
Using summaries. If a router receives an EIGRP QUERY for a route that is part of a locally
configured summary, the router immediately sends a REPLY and does not flood the QUERY
to its own neighbors
EIGRP Stub
Fix for Stuck in Active by limiting queries to routers that are configured as stub
Stub routers are limited in what they advertise to the rest of the network
Stub routers do NOT advertise any EIGRP-learned routes from one neighbor to other EIGRP
neighbors
Stub routers ONLY advertise connected routes, summary routes (if specified) that they
themselves create, and redistributed routes (if specified) that they themselves redistribute
Neighbors are informed that queries for specific networks do not have to be sent to the stub
router
Configuring a router as stub will reestablish the adjacency
A leak map can allow routes that would normally have been suppressed (only applies to summary
routes)
These routes need to be part of the stub option, you cannot for example allow specific
redistributed routes while only using stub connected
Stub Options
Keyword Description Advertises Receives Forwards
Allow prefixes from 172.16.1.0/24 alongside the connected and summary routes
int fa0/0
ip summary-address eigrp 1 172.16.0.0/16
router eigrp 1
eigrp stub connected summary leak-map STUB_LEAK_MAP
Frame-Relay
DCE & DTE
L1 DTE = Data Termination Equipment
L1 DCE = Data Communication Equipment
Frame-Relay (FR) switch is called the DCE, endpoints are called DTE
o This is unrelated to L1 DCE/DTE which sets the clocking rate of the serial interface
o A Frame-Relay DTE device can be the DCE for the serial interface and vice versa
STATIC LMI is disabled on the interface DLCI is configured on the local device, but FR
switch does not have a route
INACTIVE LMI is enabled on the interface and PVC is configured correctly on the local switch,
configured correctly but there is a problem on the remote end of the
FR switch is configured with the frame PVC (other device)
route
Remote device does not have the
correct DLCI configured
DELETED Misconfiguration on local device FR switch has deleted the frame route or local
FR switch is configured with the correct device is misconfigured (usually goes along with
DLCI STATIC status)
Inverse ARP
Because serial interfaces and FR are NBMA networks, there is no ARP flooding to discover
neighbor addresses
Instead FR relies on inverse ARP to allow clients to notify neighbors of their presence and reply to
requests (dynamic mappings)
Disabling inverse ARP will disable these notifications, disabling inverse ARP will require static
mappings
o Inverse ARP has to be disabled on all routers to disable automatic learning of mappings, if
you forget a single device, inverse ARP will still work
o Inverse-ARP does not allow for self-ping, static mappings DO allow for self-ping
int se1/0
ip address 10.0.13.1 255.255.255.0
frame-relay map ip 10.0.13.1 103 broadcast
frame-relay map ip 10.0.13.3 103
int se1/0
ip address 10.0.13.3 255.255.255.0
frame-relay map ip 10.0.13.1 301
frame-relay map ip 10.0.13.3 301 broadcast
Frame-Relay Switch
Set encapsulation to frame-relay
Configure DCE on interfaces with the frame-relay intf-type dce command (default type is DTE)
Create FR PVCs using either frame routes (FR switching framework) or connections (L2VPN
framework)
int se1/1
encapsulation frame-relay
frame-relay intf-type dce
frame route 301 interface se1/0 103
int se1/1
encapsulation frame-relay
frame-relay intf-type dce
Point-to-Point
Frame-Relay with Point-to-Point (P2P) Sub-Interfaces
The DLCI needs to be linked to the sub-interface
Inverse ARP configuration is not inherited by sub-interfaces (default is on)
o The no inverse-arp command on the physical interface is not inherited by the sub-interface
P2P sub-interfaces only have two endpoints, for this reason the pseudo-broadcast statement is
not required because there is only one destination
o For the same reason, the only thing that is significant is the local DLCI configured with the
frame-relay interface-dlci command
o There is no need to map IPs to DLCIs or to include the broadcast keyword
o Limited to one DLCI per sub-interface
R1
int se4/0
no shutdown
encapsulation frame-relay
ip add 10.0.0.3 255.255.255.0
no frame inverse-arp
frame-relay map ip 10.0.0.1 103 broadcast
frame-relay map ip 10.0.0.3 103
int se4/1
encapsulation frame-relay
frame-relay intf-type dce
no shutdown
R3
int se4/0
no shutdown
encapsulation frame-relay
ip add 10.0.0.3 255.255.255.0
no frame inverse-arp
frame-relay map ip 10.0.0.1 301
frame-relay map ip 10.0.0.3 301 broadcast
Verify Output
!-----------------------!!-----------------------!!-----------------------!!-----------------------!
!-----------------------!!-----------------------!!-----------------------!!-----------------------!
Multipoint
Frame-Relay with Multipoint Sub-interfaces
If sub-interfaces are being used, the DLCI needs to be linked to the sub-interface
Inverse ARP configuration is not inherited by sub-interfaces
With PTP mode sub-interfaces are configured on the hub, each to single location
With PTMP mode a single interface is configured on the hub to multiple locations
Disable ip split-horizon eigrp <AS> if using EIGRP, because the update has to travel out of
the same interface it came in
The no inverse-arp configuration on the physical interface is not inherited by sub-interfaces
R1
int se0/0
encapsulation frame-relay
no frame-relay inverse-arp
no shutdown
FRSwitch
frame-relay switching
int s0/1
encapsulation frame-relay
frame-relay intf-type dce
int s0/2
encapsulation frame-relay
frame-relay intf-type dce
int s0/3
encapsulation frame-relay
frame-relay intf-type dce
R2 (R3)
int se0/0
encapsulation frame-relay
no frame-relay inverse-arp
no shutdown
Authentication
Frame-Relay Authentication
Use point-to-point sub-interfaces configured with PPP encapsulation.
Use ip unnumbered in order to enable self-ping.
R1 configuration
username R3 password cisco
int se1/0.103 point-to-point
frame-relay interface-dlci 103 ppp virtual-template 1
interface virtual-template 1
ip address 10.0.13.1 255.255.255.0
encapsulation ppp
ppp authentication chap
ppp pap sent-username R1 password cisco
R3 configuration
username R1 password cisco
int s1/1.301 point-to-point
frame-relay interface-dlci 301 ppp virtual-template 1
interface virtual-template 1
ip address 10.0.13.3 255.255.255.0
encapsulation ppp
ppp chap hostname R2
ppp chap password cisco
ppp authentication pap
IOS Services
Archival
Archive Log
Configure archiving and optionally log commands to syslog
archive
log config
logging enable
;notify syslog
exit
alias exec sal show archive log config all provisioning
Archive Config
Configure archiving of configs to TFTP server
archive
path tftp://192.168.10.1/archive
archive config
show archive
show archive config differences
BFD
Bidirectional Forwarding Detection (BFD)
Requires CEF, sent unicast to UDP 3784.
Only supports asynchronous mode, must be enabled on both sides.
Only works for directly connected neighbors, BFD itself has no neighbor detection.
Is not tied to any routing protocol, and can be used as a generic and consistent failure detection
mechanism.
Parts of BFD can be distributed to the data plane (echo), better than reduced IGP timers that exist
only at the control plane.
BFD Timers
The time at which 'hello' messages are sent is configured with the interval timer.
The min_rx timer is the receive timer, if no message is received within this time the neighbor is
considered timed-out
The multiplier specifies how many BFD messages can be missed before neighbor interface is
considered down.
BFD timers work like EIGRP. The send and receive timer do not have to match on both sides
The slower receive timer of the neighbor will decide the value of the local send timer.
BFD Authentication
key chain BFD_KEY
key 1
key-string cisco
int gi0/0
bfd template BFD
BFD Static
Static routes that support BFD must specify an egress interface in single-hop mode.
The neighbor must point back with a static route, or an unassociated route.
Static routes can be dependent on a group. If one location becomes inaccessible the depending
(passive) routes are also removed from the routing table.
R1
ip route static bfd gi0/0 10.0.12.2
ip route 0.0.0.0 0.0.0.0 gi0/0 10.0.12.2
R2
ip route static bfd gi0/0 10.0.12.1 unassociate
CEF
Packet Switching (Routing) Methods
Method Description Enable with
Cisco Express Does not require a CPU lookup of the first packet in a Default
Forwarding flow ip route-cache cef
(CEF) Forwarding information is based on FIB and Adjacency on interface
table ip cef globally
Fast Switching
int gi0/0
ip route-cache
show ip cache
CEF Switching
ip cef
int gi0/0
ip route-cache cef
Verify
R1#show ip interface GigabitEthernet 0/0
GigabitEthernet0/0 is up, line protocol is up
Internet address is 10.0.12.1/30
...
IP fast switching is enabled
IP fast switching on the same interface is disabled
IP Flow switching is disabled
IP CEF switching is enabled
IP CEF switching turbo vector
IP CEF turbo switching turbo vector
IP multicast fast switching is enabled
IP multicast distributed fast switching is disabled
Adjacency Table
Consists of both ip- and mac-addresses alongside the outgoing ports/VLANs
o The mac-address is not shown in the usual format, instead is included in hexadecimal
string (see pictures below)
o Remember that this adjacency table is the other side of the connection (information
learned through ARP)
Adjacencies are added through manual (P2P interface) or dynamic discovery (ARP)
Incomplete adjacencies are caused by:
o Router cannot use ARP. clear ip arp or clear adjacency fails to clear the entry
o MPLS is used but CEF has been administratively disabled (no ip cef) or on the
interface with no ip route-cache cef
If CEF cannot find a valid adjacency, the packet is sent to the CPU for ARP resolution
Punt adjacency Forwarded Requires special handling or features that are not yet
supported in CEF
Forwards the packet to the CPU for process switching
CEF Glean
Used when an ARP entry does not exist
The packet is forwarded to the routing engine, which generates an arp request (gleans for
the mac-address of the remote host)
During the ARP lookup, the traffic from the source-host is dropped, this is known as ARP
throttling or throttling adjacency
o This throttling lasts for 2 seconds, at which point another ARP request is sent, or if
the host replies traffic is forwarded normally
CSW1
interface gi1/0/1
switchport mode trunk
switchport trunk encapsulation dot1q
mac-address 0000.0000.0001
no shutdown
interface vlan 10
ip address 10.0.12.1 255.255.255.0
mac-address 1010.1010.1010
no shutdown
CSW2
interface gi1/0/1
switchport mode trunk
switchport trunk encapsulation dot1q
mac-address 0000.0000.0002
no shutdown
interface vlan 10
ip address 10.0.12.2 255.255.255.0
mac-address 2020.2020.2020
no shutdown
The outgoing interface in this case is shown as VLAN10, there is no reference to gi1/0/1
anywhere in the adjacency table
The show ip cef (see below) also only shows the VLAN
The epoch number denotes the number of times the CEF table has been flushed and
regenerated as a whole
Also has to do with usage of CEF over different line-cards and routing engines (aCEF /
dCEF)
CEF output
CPPr
IOS Control Plane
Handles packets that are not CEF switched, meaning the CPU takes time to handle these packets.
Maintains keep-alives for routing adjacencies.
Handles traffic directed at the device itself (management traffic).
It is not possible to apply a L3 policy-map to the aggregate and any of the other interfaces at the
same time.
A L3 policy-map applied to the control plane can only use police or drop, not shape...etc.
The port-filter keyword polices packets going to closed/non-listening TCP/UDP ports.
The queue-threshold keyword limits the number of protocol packets that are allowed in the input
queue.
Rate limit OSPF and eBGP on the cef-exception sub-interface, iBGP on the host and EIGRP on
the aggregate.
control-plane host
service-policy input ICMP_PM
control-plane host
service-policy type port-filter input CLOSED_PORTS_PM
Queue SNMP traffic to 75 and any other open UDP/TCP ports to 100
class-map type queue-threshold SNMP_CM
match protocol snmp
class-map type queue-threshold HOST_CM
match host-protocols
control-plane host
service-policy type queue-threshold input QUEUE_PM
policy-map EIGRP_PM
class EIGRP_CM
police 10000 conform-action transmit exceed-action drop
control-plane
service-policy output EIGRP_PM
EEM
Embedded Event Manager (EEM)
The skip keyword prevents the command from being executed. Default is skip no.
The sync keyword runs the script before the command. Default is sync yes.
_exit_status 1 means that the command is run.
_exit_status 0 means that the command is skipped.
$_cli_result is the outcome of a cli command that was executed, can be pasted into the console
with the puts keyword.
$_cli_msg is the pattern matched with the event keyword. Can be pasted into the console with the
syslog msg keyword.
The cli command is not executed until the EEM policy exits.
EEM Examples
Disable show running-config command:
event manager applet DIS_SH_RUN
event cli pattern "show run" skip yes sync no
action 1.0 cli command "enable"
action 1.1 syslog msg "$_cli_msg not executed, function disabled"
action 1.2 mail server ....
Or:
event manager applet TRACK_1_DOWN
event track 1 state down
...
Create a log message based on added routes (does not disable function):
event manager applet STATIC_ROUTES
event routing type add protocol static network 0.0.0.0/0 le 32
action 1.0 syslog msg "Static routes are not allowed, notifying admin"
action 1.1 mail server ....
EPC
Old Method
Association (and disassociation) are actions that can be performed in order to bind a capture point to a
capture buffer.
A capture point can only be associated with one capture buffer (an ACL filter can also be applied).
A capture buffer can be associated with many capture points.
A buffer can collect data from many points but a point can send data to only one buffer.
Capture local traffic with the monitor capture point ip process-switched LOCAL from-us command.
New Method
monitor capture PCAP match any int gi0/0 both
monitor capture PCAP start
KRON
Wednesday, October 12, 2016
2:31 PM
Disable all logging capabilities (except the console) with the no logging on global command
Output of show logging will display %SYS-5-LOGGING_STOP: Logging is disable - CLI
initiated
Buffer
Default severity is 7 (debugging)
Enable the buffer with the logging buffered global command (enabled by default / might
be disabled in the lab)
o The default size differs per platform, according to the CCNP guide it is 4096 bytes by
default (roughly 50 lines of text)
When the buffer is full, the oldest messages will be overridden (circular)
logging buffered 6
logging buffered informational
logging buffered 4096
informational - You can configure the severity level by the number (6) or by name
(informational)
Console
Default severity is 7 (debugging)
By default, syslog information sent to the console is only shown when connected to the
console port
This is not very efficient way to collect and view system messages because of its low
throughput
o Logging to a VTY line is more effective (requires logging monitor)
logging console 7
logging console guaranteed
guaranteed - This keyword ensures that all debugging messages will be sent to the console,
even if a lot of output is generated
This guaranteed delivery is achieved by slowing down other system processes and
preferring the logging process
Can lead to other time-critical processes failing
Monitor
More effective than console because of line speed and performance
Disabled by default
logging monitor 5
Host
Remote syslog server (disabled by default)
Default transport protocol is UDP on port 514
The logging trap defines the severity level of remote syslog logging
o Default severity is informational (6)
Timestamp
The device uptime value is used as the timestamp by default, this is not very helpful
Can be changed to use the current time/date value (local/NTP)
localtime - Display time on log message using the local time-zone, otherwise UTC is assumed
show-timezone - Displays the configured timezone in the log message
msec - Display time on log message in milliseconds
year - Display the current year in the log message
Logging Filtering
Many messages can be generated on switches (sent to either the buffer or a syslog host)
Apply filtering with the no logging event global command
An example is the link-state protocol of a port (up/down), which can occur often on access
switches
o Disable link-state protocol logging with no logging event link-status
Logging Discriminator
Filter certain messages from being logged to a destination
Can apply filtering based on facility, severity level, contents of the message or all at the
same time
Can only apply a single discriminator per destination (console, buffer, host, monitor)
Logging History
The logging history (not the command history) is a buffer that stores syslog messages sent
via SNMP
o Enable sending of syslog messages to a SNMP NMS with the snmp-server enable
traps syslog global command
Syslog messages sent via SNMP can be lost in transit, for this reason the recent logging
messages are also stored in the logging history table
o The logging history buffer is enabled even if SNMP is not configured
o The default severity level is 5
o The default size is 1 (meaning a single syslog message)
o New messages will override older messages (circular)
Command history
This is the actual command history
If you disable the history (no history) you also disable going to the previous commands
(up arrow)
Default history size is 20 commands
line con0
history
history size 20
NetFlow IP Flows
NetFlow Requires CEF in order to function
In original NetFlow if all of characteristics match, they're considered the same flow
An IP Flow can be characterized by a set of 5 and up to 7 packet attributes:
o Source / destination IP address
o Source / destination port
o L3 protocol type
o Class of Service
o Router or switch interface
NetFlow Collector
NetFlow Collector = NetFlow server
Flow records store IP flow information
The Collection Engine (local) exports NetFlow data to the collector with 1.5% export data
overhead
o The NetFlow Cache creates cache entries (flow records) for every active flow
o NetFlow export, unlike SNMP polling, pushes information periodically to the collector
o Flows that have terminated or expired (based on cache) are exported as well
NetFlow v5
NetFlow v5 does not have a concept of 'ingress' and 'egress' flows
The collector engine reverses the information behind the scenes without needing any additional
configuration
The ip route-cache flow command is the old way of configuring NetFlow
o This is called the flow fast-switching cache
o The old command will also enable NetFlow on all sub-interfaces, the newer command ip
flow ingress does not
o The old command is actually converted to ip flow ingress on newer devices
int gi0/0
description INSIDE
ip flow ingress
512 544 576 1024 1536 2048 2560 3072 3584 4096 4608
.000 .000 .000 .000 .000 .000 .000 .000 .000 .000 .000
The protocol (Pr), source port (SrcP) and destination port (DstP) in the output above are in Hexadecimal
(HEX)
The second line 06 8DD9 0017 is actually:
o Protocol HEX 06 > BINARY 0110 > DECIMAL 6 (TCP)
o Source port HEX 8DD9 > BINARY 1000 1101 1101 1001 > DECIMAL 36313( Random)
o Destination Port HEX 0017 > BINARY 0000 0000 0001 0111 > DECIMAL 23 (Telnet)
So the second line, traffic from 10.0.12.2 to the local interface (10.0.12.1) is actually a Telnet
session to port 23
NetFlow v9
NetFlow v9 introduces the 'egress' flows concept, possible to capture both ingress and egress on
same interface
o Egress calculates flows after compression
o Ingress calculates before compression, this is a problem if WAN links are using compression
of packets
o Multicast traffic cannot be effectively matched on ingress (see destination interface null
above)
Configuring NetFlow v9 with the egress keyword uses a default build-in template behind the
scenes
Only when templates are specified Flexible NetFlow (see below) is being used
int gi0/0
description INSIDE
ip flow ingress
int gi0/1
description OUTSIDE
ip flow egress
512 544 576 1024 1536 2048 2560 3072 3584 4096 4608
.000 .000 .000 .000 .000 .000 .000 .000 .000 .000 .000
FNF
Flexible NetFlow (FNF)
Consists of three parts:
Flow Records, which set key and non-key fields
Flow Exporter, which details where and how to send the exports
Flow Monitors, which match the flow records and exporters, and are then applied to an
interface
flow exporter FNF_EXPORT
destination 10.0.0.100
transport udp 9995
export-protocol netflow-v9
source loopback0
int gi0/0
ip flow monitor FNF input
Flows added: 1
Flows aged: 0
- Active timeout ( 1800 secs) 0
- Inactive timeout ( 15 secs) 0
- Event aged 0
- Watermark aged 0
- Emergency aged 0
FNF Sampler
sampler FNF_SAMPLER
mode random 1 out-of 10
int gi0/0
ip flow monitor FNF sampler FNF_SAMPLER input
ip flow-top-talkers
top 10
sort by packets
The protocol (Pr), source port (SrcP) and destination port (DstP) in the output above are in
Hexadecimal (HEX)
NetFlow Sampler
Sampled mode lets you collect only for a subset of traffic
Can be linked directly to the interface, or be part of a policy-map
o Default direction is ingress, use the egress keyword for egress
Cannot be used alongside the ingress command
o Either capture all flows or a subset of flows
flow-sampler-map RANDOM
mode random one-out-of 10
int gi0/0
flow-sampler RANDOM egress
show flow-sampler
Sampler : RANDOM, id : 1, packets matched : 1, mode : random sampling mode
sampling interval is : 10
int gi0/0
service-policy input SAMPLER
NTP
Network Time Protocol (NTP)
Masters on older IOS versions (12.4) use the 127.127.7.1 local address to peer with itself
Newer IOS versions use the 127.127.1.1 local address
Stratum is just a hop-count, less hops is better
o A hop count of 16 means infinite
o Default stratum is 8 when just configuring ntp master <cr>
The source local address is always one stratum lower than the configured value
o Stratum is the tie-breaker. If two servers offer the same stratum, the prefer keyword
can be added to prefer one over the other
ntp master 10
ntp server 10.0.0.1 prefer
ntp peer 10.0.0.2
NTP Peers can act as a client or a server at the same time and offer bidirectional
synchronization
o When the connection to the NTP server fails, the peer will be regarded as the new
server
The offset value is the time difference in milliseconds between the local clock and the NTP
server's reference clock.
A insane peer is unsynchronized, a sane peer is synchronized
The offset must be < 1000 msec (1 second) in order for the NTP source/server to be
considered sane
NTP does not shift the clock instantaneously, instead the router slowly drifts towards the
time
If the offset value between the client and the server is large, this process can take a long
time
After the offset value is < 1 second off, the router will adjust its stratum from 16 (infinite)
to the appropriate stratum
Time Zones
NTP updates are always sent in UTC/GMT
EU and US summer time dates are different.
o Default is US, configure with clock summer-time US recurring
US summer time begins second Sunday in March, ends first Sunday in November
EU summer time begins last Sunday in March, ends last Sunday in October
Server
int gi1/0/1
description TO_CLIENTS
ntp broadcast
ntp multicast 224.0.1.1
Client
int gi0/0
ntp broadcast client
ntp multicast client
Auth / Access
NTP Authentication
The client authenticates the server, it is more important to receive time from the correct
source over giving time to devices
o Giving time to specific devices is done through NTP Access Control (see below)
Other NTP clients will still be able to request time without authentication
You only need to configure the ntp authenticate command on the client
Server
ntp trusted-key 1
ntp authentication-key 1 md5 cisco
Client
ntp authentication-key 1 md5 cisco
ntp trusted-key 1
ntp authenticate
ntp server 1.1.1.1 key 1
ntp master
ntp peer 2.2.2.2
ntp access-group peer 1
ntp access-group serve-only 2
The serve-only keyword allows only time requests from NTP clients
The peer keyword allows bidirectional synchronization, time requests and NTP control
queries from clients/peers
IOS 12.4
access-list 1 permit host 127.127.7.1
access-list 1 permit host 2.2.2.2
ntp master
ntp peer 2.2.2.2
ntp access-group peer 1
Masters on older IOS versions (12.4) need to specifically allow peering with the own
loopback address (127.127.7.1)
show access-lists
Standard IP access list 1
10 permit 2.2.2.2 (1 match)
20 permit 127.127.7.1 (1 match)
SNTP
Switch(config)# ntp authentication-key key-number md5 key-string
Switch(config)# ntp authenticate
Switch(config)# ntp trusted-key key-number
Switch(config)# ntp server ip-address key key-number
As its name implies, the Simplified Network Time Protocol (SNTP) offers a reduced set
of NTP functions. When a switch is configured for SNTP, it operates as an NTP client
only. In other words, the switch can synchronize its clock with an NTP server, but it cannot
allow other devices to synchronize from its own clock. Time synchronization is also
simplified, resulting in a slightly less accurate result.
To configure SNTP, use the typical NTP commands and substitute sntp for the ntp keyword.
For example, the following SNTP configuration commands correspond to their
NTP counterparts:
Switch(config)# sntp authentication-key key-number md5 key-string
Switch(config)# sntp authenticate
Switch(config)# sntp trusted-key key-number
Switch(config)# sntp server ip-address key key-number
sntp master 10
sntp server 10.0.0.1 prefer
sntp peer 10.0.0.2
PPP
PPP Authentication
The router that enables PPP authentication requests credentials from the remote router.
The credentials supplied by the remote router has to match the local user database.
Local authentication is based on usernames.
EAP requires the addition of the local keyword to authenticate using the local database.
PPP usernames can still be used for line management. Configure the username PPP-USER
autocommand logout command to prevent this.
show users
who
debug ppp authentication
int se1/0
encapsulation ppp
ppp authentication eap PPP_R1_R2
ppp eap local
ppp chap hostname R1
ppp chap password cisco
int se1/0
encapsulation ppp
ppp eap identity R2
ppp eap password cisco
ppp authentication ms-chap-v2 PPP_R1_R2
int multilink 1
ppp multilink interleave
ppp multilink
int se1/0
ppp multilink
ppp multilink group 1
IPCP
Internet Protocol Control Protocol (IPCP)
IPCP relies on PPP
IOS ignores mask requests and offers. This is a problem when running RIP
Use PPPoE with import IPCP into DHCP to acquire the correct mask
Disable validate-update source in RIP when using IPCP
int se1/0
encapsulation ppp
ip address negotiated
ppp ipcp mask request
peer neighbor-route
no shut
router rip
no auto
version 2
network 10.0.12.0
network 192.168.0.0
no validate-update source
Import IPCP subnet settings to local DHCP
This will allow the import of the correct subnet mask
The imported IPCP pool will always start at the first address (.1) even if only a single address is
specified in the pool
This will ignore additional IPCP settings, such as the default route installed through IPCP
int se1/0
encapsulation ppp
ppp ipcp mask request
no ppp ipcp route default
no ip add negotiated
ip add pool LOCAL
PPPoE
PPP over Ethernet (PPPoE)
PPPoE provides a standard method of employing the authentication methods of PPP over an
Ethernet network
Allows authenticated assignment of IP addresses
The MTU size is automatically set to 1492 bytes
PPPoE IPCP
IOS ignores mask requests and offers. This is a problem when running RIP
Use PPPoE with import IPCP into DHCP to acquire the correct mask
Server:
bba-group pppoe R2
virtual-template 12
int fa0/0
pppoe enable group R2
int lo0
ip add 10.0.12.1 255.255.255.255
int virtual-template 12
description R2
ip address unnumbered lo0
ip mtu 1492
encapsulation ppp
ppp authentication chap
peer default ip address pool IPCP
ppp ipcp mask 255.255.255.255
interface Dialer 1
ip address negotiated
ip mtu 1492
encapsulation ppp
ppp chap hostname R2
ppp chap password cisco
dialer pool 12
ppp ipcp mask request
ppp ipcp route default
Client:
ip dhcp pool IMPORT_IPCP
import all
origin ipcp
int dialer1
dialer pool 12
ip mtu 1492
encapsulation ppp
ppp chap username R2
ppp chap password cisco
ppp ipcp mask request
ip address pool IMPORT_IPCP
int fa0/0
pppoe-client dial-pool-number 12
PPPoE DHCP
Use DHCP reservation based on client-identifier
Stay away from DHCP excluded address ranges
Server:
bba-group pppoe R2
virtual-template 12
int fa0/1
pppoe enable group R2
interface Virtual-Template12
description R2
ip address 10.0.12.1 255.255.255.252
ip mtu 1492
peer default ip address dhcp-pool DHCP_HOST
ppp authentication pap
Client:
int fa0/1
pppoe-client dial-pool-number 12
interface Dialer 1
dialer pool 12
ip mtu 1492
encapsulation ppp
ppp pap sent-username R2 password cisco
ip address dhcp
PBR
Policy-Based Routing (PBR)
PBR intercepts a (matched) packet before it is sent to the RIB (or CEF) and applies its policies
On older devices PBR traffic was only process switched, on newer devices PBR is cef switched
o Enable fast switching of PBR traffic on older devices with ip route-cache policy on the
interface
If the packet matches the ACL, the RIB is not consulted unless the outgoing interface that PBR uses
is down
o This is only applicable if the local router interface is down (admin down or protocol down)
o If the opposite side is down, then the PBR will black hole traffic (unless you implement IP
SLA as well, see below)
A permit clause in the route-map tells IOS to PBR route the packet, a deny clause will forward the
packet to the regular routing engine
default RIB first with exception of default route, PBR default route second, RIB default route
third
interface fa0/0
ip policy route-map PBR
show ip policy
debug ip policy
There's an order of operations to PBR set statements. ip next-hop -> interface -> ip default next-hop ->
default interface
If the first statement fails the next will be evaluated. Remember that addresses are preferred over
interfaces
The recursive keyword can be used to specify a next-hop that is not directly connected
Local PBR
Applying the PBR on an interface does not affect traffic locally generated by the router (even
when sourcing the interface)
Create an ip local policy using loopbacks to policy-route local traffic
Use extended access-lists to have more granular control over which local traffic is policy routed
Using standard access-lists will policy route all local traffic
ip sla 1
icmp-echo 10.0.12.2 source-ip 10.0.12.1
int gi0/0
ip policy route-map PBR
When tracking object 1 goes from UP > DOWN, the PBR next-hop clause will be deactivated and
traffic is routed normally
SNMP
Simple Network Management Protocol (SNMP)
Terminology Description UDP Configured with
port
SNMP SET Allows an NMS to make changes to the device 161 snmp-server
configuration (read/write) community rw
SNMP TRAP Unacknowledged sent from Agent to NMS 162 snmp-server host .
(default) Traps are sent when an event occurs and not on a traps
polling interval
SNMP Versions
SNMP Host
Only SNMP Traps will be sent to the host, unless you specify the inform keyword
SNMP v1 is the default when not specifying a version
SNMP Filtering
ip access-list standard SNMP
permit host 1.1.1.1
deny any log
snmp-server community public ro SNMP
SNMPv3 Filtering
ip access-list standard SNMP_USER
permit host 1.1.1.1
ip access-list standard SNMP_GROUP
permit host 1.1.1.1
snmp-server user USER GROUP v3 auth sha cisco priv aes 256 cisco access SNMP_USER
snmp-server group GROUP v3 priv access SNMP_GROUP
SNMP Engine-ID
SNMPv3 user passwords are hashed based on the value of the local Engine-ID
If the Engine-ID changes, the security digests of SNMPv3 users will be invalid, and the users will
have to be reconfigured
Trailing zeroes will be added automatically to create 24 characters when changing the Engine-ID
System
Memory Reservations
memory free low-watermark processor
memory reserve critical
memory reserve console
CPU Threshold
The rising and falling commands trigger a syslog message when CPU is above/below threshold.
TCL
TCL Scripting
tclsh
foreach X {
192.168.0.1
192.168.0.2
192.168.0.3
192.168.0.4
192.168.0.5
192.168.0.6
192.168.0.7
192.168.0.8
192.168.0.9
192.168.0.10
2001:192:168::1
2001:192:168::2
2001:192:168::3
2001:192:168::4
2001:192:168::5
2001:192:168::6
2001:192:168::7
2001:192:168::8
2001:192:168::9
2001:192:168::10
} { ping $X repeat 100 time 1 source loopback 0}
Traceroute / Ping
Traceroute
Traceroute has default TTL of 30.
Steps performed when traceroute is executed:
1. Sends 3 packets with TTL=1 to first-hop router. FH router responds with time-exceeded
(ICMP Type-11).
2. In response sends 3 packets with TTL=2 to FH router, second-hop router responds with TTL
message.
3. Continues until packets arrive at destination, last-hop router responds with (ICMP Type-3).
4. The LH router sends back a unreachable message because the destination is an unreachable
port.
Traceroute Output
The * means that ICMP rate limit is enabled at the last-hop router. The default timeout is 500 msec.
The reason only the LH router shows this is because intermediate routers send a time exceeded
TTL message.
The second traceroute packet usually times out because that one is within the 500 msec interval,
the third packet is not.
The same applies to ping with U.U.U output, the 1st message is sent back as unreachable by the
LH router. The 2nd times out because it is within the 500 msec interval, the 3rd is unreachable
again and so on...
TTL
Time to live values are different between vendors / operating systems
Linux distributions (including macOS) often have a default TTL value of 64
Windows usually sets the default TTL value to 128
Junos devices have a default value of 64
Cisco devices have a default value of 255
Traceroute Responses
* The probe timed out
U Port unreachable
H Host unreachable
N Network unreachable
Ping
Time exceeded on ping means TTL expired (ICMP Type-11). This is used in traceroute
Specify how often ICMP unreachable messages are sent to neighbors with the ip icmp rate-limit
unreachable command (500 default)
ICMP redirect messages are used to notify hosts that a better route (other router) is available for a
particular destination
The kernel is configured to send redirects by default. Disable with the interface command no ip
redirects
Cisco routers send ICMP redirects when all of these conditions are met:
The ingress interface is the same as the egress interface of the packet
The source is on the same subnet as the better next-hop
The source does not use source-routing
ICMP types
0 Echo Reply
3 Destination Unreachable
5 Redirect
8 Echo
. Timed Out
U Destination
Unreachable
Tracking
Object Tracking
Interface ip / ip routing - Track the presence of an ip address
Line-protocol - Track the line-protocol (up/down)
IP route - Track a route present in the routing table
IP SLA - Track an IP SLA object
List - Combine multiple track objects based on percentage/weight or boolean AND/OR
Tracking Options
State - Up or down (default)
Reachability - Up or down + within configured threshold (timeout settings)
If the tracking object is UP, after ip sla 1 times out, the tracking object will wait 25 seconds before
transitioning to a DOWN state
If the tracking object is DOWN, after ip sla 1 regains connectivity, the tracking object will wait 15
seconds before transitioning to an UP state
show track
Track 1
Interface GigabitEthernet0/0 ip routing
IP routing is Up
1 change, last change 00:01:18
Track 2
Interface GigabitEthernet0/1 line-protocol
Line protocol is Up
1 change, last change 00:01:18
Track 3
IP SLA 1 state
State is Up
1 change, last change 00:01:18
Delay up 15 secs, down 25 secs
Latest operation return code: OK
Latest RTT (millisecs) 7
Track 4
IP route 0.0.0.0 0.0.0.0 reachability
Reachability is Up (static)
2 changes, last change 00:00:02
First-hop interface is GigabitEthernet0/0
Percentage tracking
If two out of three objects are up(66%), track 123 is up
If one out of three objects is up (33%), track 123 is down
Track 123 will stay down until two out of tree objects are back up (66%)
Weighted tracking
If object 2 is down, track 234 is down
If either object 3 or 4 is down, track 234 is up
Track Timers
Not every object type is tracked at the same rate
Manually change track timers to allow for faster detection
IP Routing
Administrative Distance and Route Selection
Hardcoded original administrative distance will win if different routing protocols are configured to
use the same AD.
The metrics between different routing protocols or different routing processes are not compared
in the route selection.
When receiving the same route from different OSPF processes with the same AD, the route
learned first wins.
OSPF does not differentiate between internal and external routes to the same destination. Only
the AD matters.
When receiving the same route from different EIGRP ASs with the same AD, the route from the
lower AS wins.
IP Source-Routing
Allows the originator of a packet to decide which routers the packet will flow through.
Basically a custom path of all hops specified at the source and set in the actual IP header by the
source.
Enabled by default but is a security risk. Disable with no ip source-route command.
IP Accounting
Counts the number of IP packets and logs source/destination.
Only works for transit egress traffic, not local traffic.
int fa0/0
ip accounting output-packets
show ip accounting
IP Redirects
ICMP redirect messages are send by default when routers have to forward a packet on the same
interface it was received.
Routers will notify hosts of better next-hop through redirects.
int fa0/0
no ip redirects
no ipv6 redirects
IP Unreachables
By default the router will respond with an IP unreachable ICMP message in case the neighbor
router pings an unknown address
Disable to block UDP port scans. These have a destination of an unused or unreachable UDP port
IP packets for unknown destinations (in case of EIGRP discard route for example) are sent to null0
o Disable redirects for all discarded unknown traffic directly on the null0 interface instead of
each separate interface
o Other interfaces will still respond with unreachable if traffic is destined to the local interface
address
int fa0/0
no ip unreachables
no ipv6 unreachables
int null0
no ip unreachables
no ipv6 unreachables
IP Local Proxy-ARP
Enable proxy of ARP request on the same subnet with the ip local proxy-arp interface command.
The ip proxy-arp feature is for ARP requests to different subnets. Enabled by default.
Use in Private-VLANs to allow communication between isolated hosts. Configure on the
promiscuous port.
Instead of configuring local proxy-arp, you can also statically configured the IP to MAC mappings
for individual hosts.
IP Directed-Broadcast (SMURF)
Disabled by default. Exploited in SMURF attacks.
Enable with ip directed-broadcasts command on interfaces.
IP Event Dampening
Suppress flapping interface effects on routing protocols and routing tables.
Can only be configured on physical interfaces, not on sub-interfaces or virtual-templates.
int fa0/0
dampening 5 1000 2000 20
ODR
On-Demand Routing (ODR)
Disable CDP on outside (physical) interfaces. Enable CDP on tunnel interfaces.
ODR timers and CDP timers should be the same.
Configure on hub only, spokes will receive a default route via ODR and will advertise their
connected subnets.
In P2 all traffic will still flow through the hub, ODR needs P3 in order to create dynamic
tunnels.
Redistribution
Redistribution
Redistribution only redistributes routes that are present in the RIB
o There is no direct redistribution between protocols
Routing protocol redistribution also redistributes the connected networks that the protocol is
enabled for
You can either set route-tags with a route-map or directly in the redistribution statement
o Filtering can then be done through distribute-lists matching route-maps
Include IGP interfaces when filtering redistributed connected routes (loopbacks)
o Another way to include the connected interfaces is to advertise them into the protocols and
optionally configure as passive
OSPF default static route cannot be redistributed with the redistribute static command, even if a
route-map is specified
o Always redistribute the default route into OSPF using the default-information originate
command.
router bgp 12
address-family ipv4
redistribute ospf 1 metric 50 match internal
Tag 0 means that the tag will not be changed, by default when you redistribute the routes will not
receive a tag
Even though the metric says 20 in the output above, the routes will retain their original costs
o If you change the metric-type to E1, the costs will be incremented (1 in the case of Fast- or
GigabitEthernet) by the redistributing router
o If you leave the metric-type as E2 (default) or hardcode it, the costs will be the original value
before redistribution (without addition)
Example #1
router ospf 12
redistribute ospf 1 subnets metric-type 1 metric 5 match external 1
Only OSPF external type 1 (E1) routes in PID 1 will be redistributed into PID12
The ASBR will rewrite whatever costs the routes had to 5 and will set the metric-type to E1
The neighbor receiving the redistributed routes will see a cost value of 5 + its own interface cost
towards the ASBR
Example #2
ip prefix-list PID1_PREFIX permit 1.1.1.1/32
router ospf 12
redistribute ospf 1 subnets match external 2 route-map OSPF_TO_OSPF
Only OSPF external type 2 (E2) routes in PID 1 will be redistributed into PID12
The ASBR will set the metric-type to E1 and to cost to 5 for the prefix 1.1.1.1/32 via a route-map
All other prefixes will receive the metric-type E2 because of default configuration
The set metric statement is smart enough to determine which metric it should set, the same
command is used for BGP, RIP and EIGRP
router eigrp 12
default-metric 1000000 1 255 1 1500
redistribute ospf 1
Redistribution Scenario
Configure an ip route profile to test the data plane for routing loops
Enable debug ip routing to test the control plane for routing loops
ip route profile
show ip route profile
debug ip routing
router ospf 1
redistribute eigrp 1 subnets tag 90
distribute-list route-map EIGRP_ROUTES in
router eigrp 1
redistribute ospf 1 metric 1000000 10 255 1 1500 route-map OSPF_TO_EIGRP
router ospf 1
redistribute eigrp 1 metric-type 1 subnets route-map EIGRP_TO_OSPF
router eigrp 1
redistribute ospf 1 metric 1000000 1 255 1 1500 route-map OSPF_TO_EIGRP
redistribute rip metric 1000000 1 255 1 1500 route-map RIP_TO_EIGRP
router ospf 1
redistribute eigrp 1 metric-type 1 subnets route-map EIGRP_TO_OSPF
redistribute rip metric-type 1 subnets route-map RIP_TO_OSPF
router rip
redistribute eigrp 1 metric 3 route-map EIGRP_TO_RIP
redistribute ospf 1 metric 3 route-map OSPF_TO_RIP
VRF-Lite
VRF-Lite
Divide interfaces into VRFs and create separate routing tables
Do not implement L3VPN afterwards, this is why its called VRF-Lite
vrf definition 10
add ipv4
vrf definition 172
add ipv4
int fa0/0
vrf forwarding 10
ip add 10.0.12.1 255.255.255.0
int fa0/1
vrf forwarding 10
ip add 10.0.13.1 255.255.255.0
int se1/0
vrf forwarding 172
ip add 172.0.12.1 255.255.255.0
int se1/1
vrf forwarding 172
ip add 172.0.13.1 255.255.255.0
Non-VRF neighbors
router eigrp 10
no auto-summary
network 10.0.12.0 0.0.0.255
router eigrp 172
no auto-summary
network 172.0.12.0 0.0.0.255
EVN
Easy Virtual Networking
Extension of VRF-Lite
Interfaces acting as trunks between routers are divided into sub-interfaces when using VRF-Lite
Uses 802.1Q encapsulation and subinterfaces to differentiate between VRFs
This method can lead to many subinterfaces
The solution is to use EVN and create 'VNET trunks'
The concept is similar to regular trunks and VLANs, in this case the VLANs are the VRFs
Only supports static routes, OSPFv2 and EIGRP for unicast routing
int gi0/1
vrf forwarding A
ip add 10.0.10.1 255.255.255.0
int gi0/2
vrf forwarding B
ip add 172.16.10.1 255.255.255.0
int gi0/0
description TO_R2
int gi0/0.10
description VRF_A
encapsulation dot1Q 10
vrf forwarding A
ip address 10.0.12.1 255.255.255.252
int gi0/0.20
description VRF_B
encapsulation dot1Q 10
vrf forwarding B
ip address 10.0.12.1 255.255.255.252
R1
vrf definition A
vnet tag 10
address-family ipv4
vrf definition B
vnet tag 172
address-family ipv4
int gi0/1
vrf forwarding A
ip add 10.0.10.1 255.255.255.0
int gi0/2
vrf forwarding B
ip add 172.16.10.1 255.255.255.0
int gi0/0
description TO_R2
vnet trunk
ip add 10.0.12.1 255.255.255.252
R2
vrf definition A
vnet tag 10
address-family ipv4
vrf definition B
vnet tag 172
address-family ipv4
int gi0/1
vrf forwarding A
ip add 10.0.20.2 255.255.255.0
int gi0/2
vrf forwarding B
ip add 172.16.20.2 255.255.255.0
int gi0/0
description TO_R1
vnet trunk
ip add 10.0.12.2 255.255.255.252
Verify
show vrf
R1
ping vrf A 10.0.10.100
ping vrf B 172.0.10.100
R2
ping vrf A 10.0.20.100
ping vrf B 172.0.20.100
R1
router ospf 1 vrf A
network 10.0.10.0 0.0.0.255 area 0
network 10.0.12.0 0.0.0.3 area 0
router ospf 1 vrf B
network 172.0.10.0 0.0.0.255 area 0
network 10.0.12.0 0.0.0.3 area 0
R2
router ospf 1 vrf A
network 10.0.20.0 0.0.0.255 area 0
network 10.0.12.0 0.0.0.3 area 0
router ospf 1 vrf B
network 172.0.20.0 0.0.0.255 area 0
network 10.0.12.0 0.0.0.3 area 0
IP Services
Secure Copy Protocol (SCP)
Requires SSH and AAA Authorization
Has to be enabled on both routers to allow mutual copying
aaa new-model
aaa authentication login default local
aaa authorization exec default local
username bpin privilege 15 password cisco
ip scp server enable
copy scp://[email protected]/nvram:startup-config null:
Server
ip rcmd rcp-enable
ip rcmd rsh-enable
ip rcmd remote-host remoteadmin 10.0.12.2 R2 enable
The boot/service config enables auto-loading of configuration files from a network server:
service config
ip rcmd remote-username R2
boot network rcp://10.0.12.1/BOOT
boot network tftp:BOOT
Local TFTP-Server
Specify all files that are eligible for TFTP transfer separately.
Optionally create an alias for the file and limit access.
Configure client:
ip tftp source-interface loopback0
copy tftp://10.0.12.1/STARTUP null:
DNS Services
Create individual host entries on the DNS server.
Server:
ip domain-lookup
ip domain-name lab.local
ip dns server
ip host Server1 2.2.2.2
ipv6 host Server2 2::2
Client:
ip domain-lookup
ip name-server 1.1.1.1
ip name-server 1::1
telnet 10.0.12.1 19
Misc. Services
The X28 editor is enabled by default:
no service pad
The finger service (TCP port 79) gives line information and is disabled by default:
ip finger
service finger
DHCPv4
DHCPv4 Messages
Message Type Description
The DHCPOFFER and DHCPACK are sent broadcast by default (on IOS devices)
Request unicast from server with the no ip dhcp-client broadcast-flag global command
(on the client)
Disable DHCP
no service dhcp
ip dhcp bootp ignore
1 Subnet mask
3 Gateway
6 DNS
12 Hostname
15 Domain name
66 TFTP server
DHCP Server
interface vlan 10
ip add 10.0.0.1 255.255.255.0
service dhcp
no ip dhcp conflict logging
ip dhcp excluded-address 10.0.0.1 10.0.0.10
ip dhcp excluded-address 10.0.0.240 10.0.0.254
ip dhcp pool DHCP
network 10.0.0.0 /24
default-router 10.0.0.1
dns-server 10.0.0.10
domain-name lab.local
lease 1 0 0
Alternative
ip dhcp pool DHCP
network 10.0.0.0 /24
option 3 ip 10.0.0.1
option 6 ip 10.0.0.10
etc..
interface gi0/0
ip address dhcp
no ip dhcp-client broadcast-flag
no ip dhcp client request router
no ip dhcp client request dns-nameserver
no ip dhcp client request domain-name
broadcast-flag - Request unicast DHCPOFFER and DHCPACK from the server (default is
broadcast)
The DHCP relay agent sets the gateway address (giaddr) and adds the relay agent
information option (option 82) to the forwarded packet
o The giaddr address is used by the dhcp server to identify which subnet (VLAN) the
request originated on
o Using this information, the server knows which pool to assign an address from
Option 82 adds additional information such as the remote-id, which is just a text string
received on the server
o Adds information of hosts such as mac-address and the switchport the request
originated from, disabled by default
o This information can be used to set QoS, ACL or security policies
o Can cause issues with DHCP snooping
A DHCP relay agent may receive a message from another DHCP relay agent that already
contains relay information (relayed twice)
By default, the relay information from the previous agent is replaced
o Customize with ip dhcp relay information policy command
o If the information policy is changed, also disable the information check (no ip dhcp
relay information check)
service dhcp
ip dhcp relay information option
interface vlan 10
ip address 10.0.0.1 255.255.255.0
ip helper-address 172.16.0.100
ip helper-address 192.168.0.100
Forwards:
TFTP(UDP 69)
DNS (UDP 53)
Time protocol (UDP 37)
NetBIOS name server (UDP 137)
NetBIOS datagram server (UDP 138)
Bootstrap Protocol / DHCP (UDP 67)
Tacacs (UDP 49)
DHCP Server
ip dhcp pool CR1
client-identifier 0063.6973.636f.2d63.6130.342e.3233.6130.2e30.3030.382d.4769.302f.30
host 10.0.0.101 /24
dns-server 10.0.0.10
default-router 10.0.0.1
IRDP
ICMP Router Discovery Protocol (IRDP)
Allows routers to advertise themselves as a gateway
Similar in concept to IPv6 RAs
IP routing has to be disabled on client
Server
int se0/0
ip irdp
ip irdp maxadvertinterval 30
ip irdp minadvertinterval 10
ip irdp holdtime 90
ip irdp preference 200
Client
no ip routing
ip gdp irdp
FHRP
GLBP
Protocol HSRP VRRP GLBP
GLBP States
State State # Definition
Initial 1 Interface comes online but GLBP is not yet running, primary state
Standby 5 Neighboring device has won the election and is the AVG
Device is waiting to become the AVG if the neighbor fails
Device functions as AVF and forwards packets sent to the virtual mac-
address
Active 6 Device is the active virtual gateway (AVG) and forwards packets sent to
the virtual mac-address
Device will first move to the standby state before moving on the active
state
GLBP Authentication
Authenticate via a MD5 hash set directly on the group or via a key chain
interface vlan 10
glbp 1 ip 10.0.0.101
glbp 1 authentication md5 key-chain GLBP
Weighted The AVF is chosen based on the set weighting value (all AVF are set to 100
by default)
interface vlan 10
glbp 10 ip 10.0.0.100
glbp 20 ip 10.0.0.200
Weighted load-balancing
This is the only form of GLBP that offers tracking options
AVF is chosen based on the set weighting value
o Default value is 100 for all AVFs
o AVFs can lose their forwarder status if they drop below a certain weight (based on
tracking)
Tracking objects (no interfaces/VLANs) can be used to decrement the weighting value
The weight is basically just a percentage of the host requests that are forwarded to the
AVF
Lower If speaker goes below the lower weighting value, they lose their 1
AVF status
Upper If speaker goes above the upper weighting value, they regain Same as
their AVF status (after losing it) maximum
interface vlan 10
glbp 10 load-balancing weighted
glbp 10 weighting 100 lower 51 upper 74
glbp 10 weighting track 1 decrement 25
glbp 10 weighting track 2 decrement 25
glbp 10 weighting track 3 decrement 25
The msec keyword is required to send sub-second hellos (up to 1 hello every 50
milliseconds)
GLBP Configuration
interface vlan 10
ip address 10.0.0.1 255.255.255.0
ip access-group 100 in
glbp 12 ip 10.0.0.100
glbp 12 priority 200
glbp 12 preempt delay minimum 10
glbp 12 weighting 200
glbp 12 load-balancing weighted
glbp 12 weighting track 1 decrement 50
Notice that the virtual mac-address is 0007.bf00.0c01 for AVF1 and 0c02 for AVF2
o 0c is group 12
o 01 is forwarder number 1
o 02 is forwarder number 2
This is from the AVGs perspective, which lists itself as the active router for AVF number 1
The neighbor (10.0.0.2) is AVF number 2
The first line is the state of the AVG, which lists the active router as local (meaning that this
speaker is the AVG)
HSRP
Protocol HSRP VRRP GLBP
HSRP States
State State # Definition
Initial 1 Interface comes online but HSRP is not yet running, primary state
Standby 5 Neighboring device has won the election and is the active router
Device is waiting to become the active router if the neighbor fails
Device does not forward packets sent to the virtual mac-address
Active 6 Device is the active router and forwards packets sent to the virtual mac-
address
Device will first move to the standby state before moving on the active
state
The first set of commands mostly apply to group number 0 and can set 'global' HSRP settings
The second set of commands apply only to a specific group (0-255)
Global Interface HSRP Settings
Apply to all groups
interface
standby version 1-2
interface
standby use-bia
Use the actual interface mac-address instead of the virtual HSRP mac-address
interface vlan 10
ip address 10.0.0.1 255.255.255.0
standby ip 10.0.0.100
standby preempt
standby priority 200
HSRP Timers
standby timers msec hello_interval hold_timer
HSRP Name
This is more than just a description and is used by standby follow and stateful NAT (see
NAT section)
interface vlan10
standby version 1
standby ip 10.0.0.100
standby 1 ip 10.0.0.101
Track an object or interface in order to decrement the priority or shutdown the group
When you just press <cr> the actual configuration will be to decrement a priority of 10
interface vlan 10
standby 1 ip 10.0.0.101
standby 1 priority 200
standby 1 preempt
standby 1 track 1
HSRP Authentication
Authenticate via a MD5 hash set directly on the group or via a key chain
interface vlan 10
standby 1 ip 10.0.0.101
standby 1 authentication md5 key-chain HSRP
HSRP Configuration
interface vlan 10
ip add 10.0.0.1 255.255.255.0
ip access-group 100 in
standby version 1
standby ip 10.0.0.100
standby priority 200
standby preempt
standby authentication md5 key-string cisco
standby track 1
standby name MASTER
standby 1 ip 10.0.0.101
standby 1 follow MASTER
standby 2 ip 10.0.0.102
standby 2 follow MASTER
standby 3 ip 10.0.0.103
standby 3 follow MASTER
IPv6 and IPv4 HSRP with standby version 2
interface vlan 10
ip add 10.0.0.1 255.255.255.0
ipv6 address fe80::1 link-local
standby version 2
standby 10 ip 10.0.0.100
standby 20 ipv6 fe80::200
standby 10 timers 2 6
standby 20 timers 5 15
VRRP
Protocol HSRP VRRP GLBP
VRRP States
State State # Definition
Initial 2 Interface comes online but VRRP is not yet running, primary state
Backup 3 Neighboring device has won the election and is the master router
Device is waiting to become the master router if the neighbor fails
Device does not forward packets sent to the virtual mac-address
Master 4 Device is the master router and forwards packets sent to the virtual
mac-address
Device will first move to the backup state before moving on the master
state
interface vlan 10
vrrp 1 ip 10.0.0.101
vrrp 1 priority 200
vrrp 1 preempt delay minimum 10
vrrp 1 track 1
VRRP Authentication
Supports plain-text and md5 authentication (both key chains and key-strings)
Authenticate via a MD5 hash set directly on the group or via a key chain
interface vlan 10
vrrp 1 ip 10.0.0.101
vrrp 1 authentication md5 key-chain VRRP
VRRP Configuration
access-list 100 permit ip any host 224.0.0.18
access-list 100 permit 112 any any
access-list 100 permit ip any any
interface vlan10
ip add 10.0.0.1 255.255.255.0
ip access-group 100 in
vrrp 10 ip 10.0.0.100
vrrp 10 authentication text cisco
vrrp 10 timers advertise 2
vrrp 20 ip 10.0.0.200
vrrp 20 preempt delay minimum 10
vrrp 20 priority 200
interface vlan 10
ipv6 address fe80::1 link-local
ipv6 traffic-filter VRRP in
IP SLA
TCP Connect
Control messages communicates the port that will be used from the sender to the receiver
(enabled by default)
Disable control packets when using a well-known TCP port (telnet for example).
o Using a well-known port does not need a responder on the receiver side
o Using an unknown port requires a SLA responder at the destination
Sender / Source
ip sla 1
tcp-connect 10.0.12.2 23 control disable
threshold 500
timeout 1000
frequency 5
ip sla schedule 1 life forever start-time now
IP SLA Responder
Does not calculate processing time, allowing for more accurate measurements on the speed of the
link
Enable globally with the ip sla responder command.
o General IP SLA responder uses port 1967 for control messages (not important to remember)
o Control messages are sent by the sender to provide the receiver with the port to listen to
The receiver can also be configured to listen on a specific port for UDP-echo or TCP-connect
o Configure this specific port with ip sla responder udp-echo <port> <ip address>
o However this specific port must match on both sides and control messages should be
disabled at the sender
o It is not possible to use control messages at sender with a specific port at the receiver
o It is also not possible to disable control messages at the sender and just configure ip sla
responder at the receiver
Sender / Source
ip sla 1
tcp-connect 10.0.12.2 2323 control disable
Receiver / Destination
ip sla responder tcp-connect port 2323
tcpConnect Responder:
IP Address Port
0.0.0.0 2323
:: 2323
UPP Echo
UDP echo always requires a responder at the destination
If control messages are disabled, the responder must be configured to listen on the specific port
Sender / Source
ip sla 1
udp-echo 10.0.12.2 5353
threshold 500
timeout 1000
frequency 5
ip sla schedule 1 life forever start-time now
Receiver / Destination
ip sla responder
UDP Jitter
Same as UDP echo, also requires a responder configured at the destination
Success/failures will only be updated when all packets are analyzed (10 packets are sent by
default)
o Per-direction jitter (source to destination and destination to source)
o Per-direction packet loss
o Per-direction delay (one-way delay)
o Round-trip delay (average round-trip time)
Sender / Source
ip sla 1
udp-jitter 10.0.12.2 23232 num-packets 1000
threshold 500
timeout 1000
frequency 5
tos 184
ip sla schedule 1 start-time now life forever
IP SLA Authentication
The authentication hash is MD5
Enabled for all SLAs present on the device
Only applied on SLAs where both sides need to participate (using a responder)
uRPF
Unicast Reverse Path Forwarding (uRPF)
Verifies reachability of source address in packets being forwarded.
Requires CEF, and the source address is checked based on the entry in the Forward Information
Base (FIB)
Use optional ACL to log dropped packets by uRPF, or use it to allow specific subnets that fail the
check
ACLs are only checked when the regular uRPF check fails
uRPF Modes:
With strict mode (rx keyword) packets must be received on the interface that the router uses to
forward the return packet
With loose mode (any keyword) it is only required that the source address appears in the FIB
Use loose mode when asymmetric routing paths are present in the network
A third mode exists called 'VRF mode' that is not covered in depth in the CCNP/CCIE exams.
This mode is also referred to as uRPFv3 and is similar to loose mode while checking against
the FIB for each specific VRF
The allow-default keyword also includes the default route in valid route list.
The allow-self-ping keyword allows a router to ping itself on that particular interface.
int fa0/0
ip verify unicast source reachable-via any allow-default allow-self-ping
ip verify unicast source reachable-via rx 100
Verify
show cef interface fa0/0
show ip interface fa0/0
IPv6
Address Ranges
IPv6 Address Ranges
Prefix Range Definition Most Information
common
FF00::/8 FF00 - Multicast FF02:: Usually FF02:: for all nodes / all routers
FFFF multicast etc.
FF05:: is often used for services such as DHCP
and NTP
FF02::1 All Nodes Communication between all IPv6 enabled hosts Broadcast
Used by NDP and most common IPv6 features 255.255.255.255
Anycast Address
One to nearest form of communication
An anycast address is shared by multiple systems, with the closest system being the receiver of
the packet
An address configured with :: at the end specifies an anycast interface
The anycast keyword is optional and only required if there are multiple hosts on the same subnet
o Meaning they are connected to the same interface on the router using the same address
int gi0/0
description TO_SERVERS
ipv6 address 2001:10:0:12::/64 anycast
EUI-64 address
An auto configured address using the MAC address of the interface
A MAC address is split in the middle and a 16-bit hex value FFFE is inserted forming a 64-bit
address
Afterwards the 7th bit is flipped in the OUI part of the MAC address
MAC address MAC address + FFFE Flip 7th bit in OUI EUI-64 address
int gi0/0
mac-address A012.7ACB.6B40
ipv6 address 2001:10:0:12::/64 eui-64
Same as
int gi0/0
ipv6 address 2001:10:0:12:A212:7AFF:FECB:6B40/64
DHCPv6
DHCPv6 multicast groups
FF02::1:2 Link-local DHCP using UDP 546, 547
DHCPv6 Messages
Message Direction Description IPv4 Equivalent
Type
SOLICIT Client -> Sent by a client to locate servers DHCPDiscover
Server
rapid-commit - Only SOLICIT and REPLY messages are used for address assignment
preference - Higher preference will overrule other DHCPv6 servers on the link (default = 0)
allow-hint - The server considers delegating client suggested prefixes (default = ignore)
Server
ipv6 dhcp pool STATEFUL
address prefix 2001:10:0:12::/64
dns-server 1::1
domain-name lab.local
int gi0/0
ipv6 dhcp server STATEFUL
ipv6 nd managed-config-flag
Clients
int gi0/0
ipv6 enable
ipv6 address dhcp
Server
ipv6 dhcp pool STATELESS
dns-server 1::1
domain-name lab.local
int gi0/0
ipv6 dhcp server STATELESS
ipv6 nd other-config-flag
Clients
int gi0/0
ipv6 address autoconfig default
default - Also add the advertising (remote) router as the default-gateway even if ipv6-
unicast routing is enabled
IPv6 Default-Gateway
The default gateway is a link-local address that is discovered through RAs
Routers will only send out RAs if ipv6 unicast-routing is enabled
o Routers will not receive a default-gateway if ipv6 unicast-routing is enabled
Hosts normally pick the first router they discover through ND as the default-gateway
This decision can be influenced with the router-preference command (default preference is
medium)
o Routers will preempt other gateways after decision has been made
Optionally advertise the DNS server address through RAs (not supported on all platforms)
int gi0/0
ipv6 nd router-preference high
ipv6 nd ra dns server 1::1
Stop a router from becoming the default gateway with the ipv6 nd ra lifetime 0 interface
command
This does not disable SLAAC or RAs, hosts will just not install a default route towards the
router
Stop a router from sending RA messages and becoming the default gateway with the ipv6 nd ra
suppress all interface command
The suppress keyword indicates not to send periodic RAs
The all keyword will instruct the router not to respond to RS
Prefix-Delegation
IPv6 Prefix-Delegation (PD)
ipv6 local pool LOCAL 2001:db8:abcd::/56 60
ipv6 dhcp pool PD_POOL
prefix-delegation pool LOCAL lifetime infinite infinite
int fa0/0
description TO_CLIENT
ipv6 address 2001:db8:abcd::1/64
ipv6 dhcp server PD_POOL
Client:
int fa0/0
description OUTSIDE
ipv6 address autoconfig default
ipv6 dhcp client pd PD_PREFIXES
int fa0/1
description INSIDE
ipv6 address PD_PREFIXES ::0:0:0:0:254/64
Relay
DHCPv6 Relay
The interface on the DHCP router that the relay address points to has to be configured for
a DHCP pool
If relay destination is link-local, specify the outgoing interface
Relay server
int gi0/1
description TO_CLIENTS
ipv6 address 2001:10:0:12::254/64
ipv6 nd managed-config-flag
ipv6 dhcp relay destination fe80::1 gi0/0
DHCPv6 server
ipv6 dhcp pool STATEFUL
address prefix 2001:10:0:12::/64
dns-server 1::1
domain-name lab.local
int gi0/0
description TO_DHCP_RELAY
ipv6 address fe80::1 link-local
ipv6 dhcp server STATEFUL
NDP
Neighbor Discovery
Uses ICMP and solicited-node multicast addresses to discover neighbors on the local link segment
and verify reachability.
A solicited-node multicast address starts with FF02:0:0:0:0:1:FF::/104.
Is formed by taking the low-order 24 bits of an address and appending those bits to the solicited-
node prefix.
Afterwards, Duplicate Address Detection (DAD) sends a ping to the solicited node multicast
address.
If another node responds, then the router will not use the address.
Is performed first on a new, link-local IPv6 address before the address is assigned to an interface.
The new address remains in a tentative state [TEN] while DAD is performed.
Neighbor Neighbor solicitations are used by nodes to determine the link layer FF02::1
Solicitation (NS) address of a neighbor.
Or to verify that a neighbor is still reachable via a cached link layer
address.
Also used in SLAAC (by hosts) to verify uniqueness of a local address
before it is assigned.
Router Periodically sent out between neighboring routers (200s default) on FF02::1
Advertisement supporting interfaces
(RA) Used by routers to notify hosts of presence of a router and a default-
gateway address
Can also be a reply to a RS message.
Will only be advertised if ipv6 unicast-routing is enabled
INCMP Incomplete
NS has been sent, but NA has not yet been received
REACH Reachable
Note that the state of a static neighbor is always REACH, unless the interface is down.
Summarization
IPv6 Address Summarization
Addresses Differences in Binary Summary Range Start Summary
2001:db8:24:131a:: 131a = 0001 0011 0001 0001 0011 0001 101x 2001:10:0:12:24:131a::/63
2001:db8:24:131b:: 1010 = 131a
131b = 0001 0011 0001 Subnets differ at 63th
1011 bit = /63
2001:cfb:14:: 0014 = 0000 0000 0001 0000 0000 0001 01xx 2001:cfb:14::/46
2001:cfb:15:: 0100 = 0014
2001:cfb:16:: 0015 = 0000 0000 0001 Subnets differ at 46th
2001:cfb:17:: 0101 bit = /46
0016 = 0000 0000 0001
0110
0017 = 0000 0000 0001
0111
Tunneling
Automatic Tunneling Methods
Automatic Treats the underlying IPv4 network as an NBMA cloud.
6to4 Point-to-Multipoint. Uses 2002::/16 address space.
Encapsulates IPv4 address into IPv6 address (converted to HEX).
Does not support dynamic routing protocols.
Automatic 6to4
The first 32-bits after the 2002::/16 address space as used for the converted IPv4 address.
All addresses that need to be reachable over the tunnel need to be configured with the same
2002::/16 prefix.
Alternatively, a route can be created for non 2002::/16 prefixes pointing to the tunnel address of
the neighbor.
6RD
The 6RD feature is an extension of the 6to4 feature that uses encapsulation.
Does not require 2002::/16 prefix or all 32bits of the IPv4 address.
Embeds IPv6 into IPv4 using protocol type 41.
ipv6 unicast-routing
int se1/0
ip address 10.0.123.1 255.255.255.0
int lo0
ip address 192.168.0.1 255.255.255.255
int tun0
ipv6 address 2002:c0a8:1::1/64
tunnel source lo0
tunnel mode ipv6ip 6to4
int lo1
description PREFIXES_OVER_TUNNEL
ipv6 address 2002:c0a8:1:1::1/64
ipv6 address 2002:c0a8:1:2::1/64
ipv6 address 2002:c0a8:1:3::1/64
ISATAP
Automatically converts IPv4 addresses and inserts these in the IPv6 address.
Preferably use eui-64 addressing. Free to choose network portion of the address.
The last 32-bits after 0000:5EFE are used for the converted IPv4 address (in the host portion of the
address)
By default, tunnel interfaces disable periodic router advertisements (RA).
RAs must be enabled on ISATAP tunnels to support client auto configuration. Enable with no ipv6
nd ra suppress.
IPv4 Address Converted to HEX ISATAP Address with custom Network Range
ipv6 unicast-routing
int fa0/0
ip address 10.0.123.1 255.255.255.0
int lo0
ip address 192.168.0.1 255.255.255.255
int tun0
ipv6 address 2001:10:0:123::/64 eui-64
tunnel source lo0
tunnel mode ipv6ip isatap
no ipv6 nd ra suppress
Same as:
int tun0
ipv6 address fe80::5efe:c0a8:1 link-local
ipv6 address 2001:10:0:123:0:5EFE:C0A8:1/64
tunnel source lo0
tunnel mode ipv6ip isatap
no ipv6 nd ra suppress
int lo1
description PREFIXES_OVER_TUNNEL
ipv6 address 1::1/128
ipv6 address 11::11/128
ipv6 unicast-routing
int se1/0
ip add 10.0.12.1 255.255.255.0
int tun0
tunnel source se1/0
tunnel destination 10.0.12.2
ipv6 address fe80::1 link-local
ipv6 address 2001:10:0:12::1/64
tunnel mode ipv6ip
MPLS
MPLS Label Binding
MPLS assigns a local label and receives a remote label for routes.
The local label is distributed to neighbors and stored in their forwarding table.
Traffic arriving with a label matching a local label can then immediately be forwarded to the
remote label that is assigned for the same route, not requiring any form of lookup.
MPLS Infrastructure
MPLS is globally enabled and requires CEF to operate.
MPLS traffic will follow the same path as IP traffic by default.
All IGPs (including connected and static) routes will have a label assigned by default.
L3VPN / IPVPN
Route Distinguisher (RD) and Route Target (RT)
The only purpose of the RD is to make routes unique in the mBGP.
Doesn't have to match on neighboring routers that are part of the same VPNv4 neighborship.
There is no relationship between RT and RD, they do not have to match on the same router or on
neighboring router.
RT helps sort routes in the appropriate routing table.
The router imports the RT that the other router exports, this does not have to match the RD.
Labels
The top-most label (MPLS) is the transport label. This gets swapped between LSRs and popped at
the egress PE.
One transport label per VRF, not per route.
The label between the top-most and the prefix is the mBGP label (VPN).
One mBGP label per route in the VRF.
vrf definition 1
rd 192.168.0.1:1
address-family ipv4
route-target both 1:1
router bgp 1
no bgp default ipv4-unicast
neighbor 192.168.0.2 remote-as 1
neighbor 192.168.0.2 update-source Loopback0
add vpnv4
neighbor 192.168.0.2 activate
neighbor 192.168.0.2 send-community both
route-map NEXT_HOP
set ip next-hop 192.168.0.1
router bgp 1
add vpnv4
neighbor 10.0.12.2 route-map NEXT_HOP out
neighbor 192.168.0.2 route-reflector-client
vrf definition 1
rd 192.168.0.1:1
address-family ipv4
route-target both 1:1
export map EXPORT_MAP
vrf definition 2
rd 192.168.0.1:2
address-family ipv4
route-target both 2:2
route-target import 11:11
BGP
BGP PE-CE
Either associate each CE with a different AS (65000+) or give each CE the same AS.
If same AS on CE:
Configure CEs to allow their own AS inbound.
Override CEs AS when forwarding BGP prefixes.
Prevent loops between CE backdoors by setting the Site of Origin (SoO) on the PE
ip bgp-community new-format
router bgp 1
no bgp default ipv4-unicast
neighbor 192.168.0.3 remote-as 1
neighbor 192.168.0.3 update-source Loopback0
address-family vpnv4
neighbor 192.168.0.3 activate
neighbor 192.168.0.3 send-community both
address-family ipv4 vrf 2
neighbor 172.0.58.8 remote-as 65001
neighbor 172.0.58.8 activate
neighbor 172.0.58.8 send-community
neighbor 172.0.58.8 as-override
neighbor 172.0.58.8 soo 1:1
BGP Multipathing
Same rules apply for normal multipathing.
Routes from different PEs must have the same values in relation to cost, med, local-preference
etc.
When using full-mesh peering, the RD can be the same on all PEs.
When using RR peering, the RD must be unique between the PEs that advertise the same routes.
The route-import and export values can be the same between PEs.
Specify the eibgp keyword otherwise multipathing is only applied for iBGP routes.
BGP GRE
BGP GRE Tunnels (Old way)
Alternative to using a MPLS / L3VPN configuration with VRFs:
int tun0
ip address 13.0.0.1 255.255.255.0
tunnel source lo0
tunnel destination 192.168.0.3
route-map NEXT_HOP_TUNNEL
set ip next-hop 13.0.0.1
router bgp 3
neighbor 192.168.0.3 remote-as 3
neighbor 192.168.0.3 update-source lo0
address-family ipv4
neighbor 192.168.0.3 route-map NEXT_HOP_TUNNEL out
EIGRP / RIP
EIGRP
EIGRP routes that are redistributed into BGP receive a Cost Community ID of 128 by default.
This will ensure that routes over the L3VPN are considered internal.
This value is compared before all other BGP path selection attributes (including weight).
The value/cost of the pre-bestpath community is the composite metric of the redistributed EIGRP
route.
Routes without this cost community are evaluated as if they had a cost value of 2147483647,
which is half of the maximum possible value.
Possible to modify the Cost Community ID. Lower values are better. Apply on EIGRP redistribution
point or between VPNv4 neighbors.
Ignore the cost community with the bgp bestpath cost-community ignore command.
router bgp 1
add ipv4 vrf 2
redistribute eigrp 1
router bgp 1
address-family ipv4 vrf 2
redistribute eigrp 1 route-map SET_EXT_COMM
RIP
Backdoor CE-CE using Offset-Lists
An offset list of 7 in both directions will ensure that routes are not looped around the MPLS
backbone.
router bgp 1
address-family ipv4 vrf 2
redistribute rip route-map RIP
router rip
address-family ipv4 vrf 2
no auto
version 2
redistribute bgp 1 metric 1
router rip
no auto
version 2
offset-list 0 in 7 FastEthernet0/0
offset-list 0 out 7 FastEthernet0/0
OSPF
mBGP OSPF Super Backbone
The super backbone exists as the BGP cloud itself, as an area logically above Area 0.
If both CE routers connect to the PE are using OSPF area 0, the process ID that is configured on the CE-
PE connection actually matters.
If the process ID is different on the CEs the routes through the super backbone will be seen as
external.
If the process ID matches, the routes through the super backbone will be seen as inter-area
routes.
The OSPF domain ID is based on the process ID.
If the CE's are using VRF-lite then it is required to disable the downward bit (D-bit) loop-
prevention check when using the same domain-id.
router bgp 1
add ipv4 vrf 2
redistribute ospf 26 vrf 2
Configuration steps:
Create new loopback interfaces on PE routers.
Associate loopback interfaces with VRF instance and assign unique IP.
Advertise loopbacks in mBGP, but not in OSPF (Route-Map Filter).
PE routers must be an ASBR, redistribute mBGP -> OSPF.
Create sham-links on PE routers between new loopbacks.
Modify cost on CE routers preferred internal interfaces.
Sham-links are Type-5 external LSAs. Networks sent over the sham-link are Type-1 LSA.
int lo1
description SHAM LOOPBACK
vrf forwarding 2
ip add 1.1.1.1 255.255.255.255
router bgp 1
address-family ipv4 vrf 2
network 1.1.1.1 mask 255.255.255.255
LDP / TDP
Tag Distribution Protocol (TDP)
Uses UDP 711 to create adjacency.
Uses destination port TCP 711 to create session, random TCP source port.
Does not support authentication.
TDP uses same commands as LDP. The only requirement is that it is either enabled globally or separately
per interface.
If not specified, LDP will be the default label protocol.
TDP and LDP can coexist on the same router. However they must match on interfaces between
neighbors.
Interface configuration takes precedence over global configuration.
TDP and LDP use a default hello timer of 5 seconds and a hold timer of 15 seconds.
Uses the all router multicast address 224.0.0.2 (UDP 646 or 711) to form the neighborship.
Label Switched Paths (LSPs) are unidirectional.
ip cef
mpls ldp router-id loopback0 force
no mpls ip
mpls label range 100 199
mpls ip
int fa0/0
mpls ip
int fa0/0
mpls ldp discovery transport-address 10.0.12.1
A password rollover takes effect after the duration when passwords are configured without the use of a
key chain.
This feature is used when statically configured neighbor passwords (not with the option) need to
be changed on the router.
Targeted Session
Can speed up label convergence time when the connection is restored after a failure.
With a targeted session the session state between neighbors is kept after a failure,
This is done by setting the holdtime to infinite.
The targeted session can also be enabled globally for all peers or per prefix. Default duration is
24h.
MPLS Filtering
Only add labels for /32 prefixes (preferred):
mpls ldp label
allocate global host-routes
Or:
ip access-list standard LDP_ADV
permit host 192.168.0.1
permit host 192.168.0.2
permit host 192.168.0.3
permit host 192.168.0.4
no mpls ldp advertise-labels
mpls ldp advertise-labels for LDP_ADV
int fa0/0
ip ospf prefix-suppression
MPLS TTL
Hide the MPLS backbone by setting the TTL of traceroute traffic to 255.
Forwarded applies to transit traffic.
Local applies to locally generated traffic.
Default is both.
no mpls ip propagate-ttl
With 0 a packet with an expired TTL is forwarded by the global routing table.
With 1-6 a packet is forwarded by the underlying label, if more than 1 label is present.
QoS
MPLS Experimental Bits (EXP bits)
The DSCP value set on the IP packet is not changed by MPLS by default. Uses two modes:
Pipe Mode. Uses egress queues based on EXP bits.
Short Pipe Mode. Uses egress queues based on the 'original' ToS (DSCP) bits.
The DSCP value in the IP packet can also be replaced by the EXP bits, this is called 'Uniform Mode'.
The solution is to use QoS groups, which are local to the device itself.
A packet is marked with a QoS group value only while it is being processed within the device.
The QoS group value is not included in the packets header when the packet is transmitted over
the output interface.
class-map match-all EXP5
match mpls experimental topmost 5
policy-map MPLS_INGRESS
class EXP5
set qos-group 5
int fa0/0
description MPLS_CORE
service-policy input MPLS_INGRESS
policy-map MPLS_EGGRESS
class QOS_GROUP5
set ip dscp af41
int s1/0
description VRF_CE
service-policy output MPLS_EGGRESS
Table-Maps
Rewrite all ingress traffic using a Table Map.
Table-Maps map a QoS group to a specific ToS value using DSCP values.
int fa0/0
description MPLS_CORE
service-policy input MPLS_INGRESS
table-map TABLE_MAP
map from 1 to 8
map from 2 to 16
map from 3 to 24
map from 4 to 32
map from 5 to 40
map from 6 to 48
map from 7 to 56
policy-map MPLS_EGGRESS
class class-default
set dscp qos-group table TABLE_MAP
int s1/0
description VRF_CE
service-policy output MPLS_EGGRESS
Multicast
Multicast Addressing
Link-Local 224.0.0.0/24 Used by network protocols on a local network segment.
Non-Routable traffic.
Globally 224.0.1.0 - Normal range. Can send between organizations and across
Scoped 238.255.255.255 the Internet.
GLOP Addresses
Convert AS to Hex, then take the separate parts of the 4-part hex and convert them back into
decimal groups.
Or convert straight to binary and separate the 16bit value into two groups of 8 and convert back
into decimal.
0 and 255 are valid addresses in these ranges.
Anycast RP
Anycast RP
PIM Register and Join messages go to the closest RP in the topology.
When PIM Register is received, MSDP Source Active (SA) is sent to MSDP peers which synchronize
(S,G) information.
The originator-id must point to a unique address on the router (do not use the same loopback
used for the MSDP peering).
The anycast loopback (not the peering loopback) is specified with the rp-candidate (BSR) or send-
rp-announce (Auto-RP) command.
int lo0
description MSDP_PEERING
ip address 192.168.0.1 255.255.255.0255
ip pim sparse-mode
int lo1
description ANYCAST_RP
ip address 12.12.12.12 255.255.255.255
ip pim sparse-mode
int lo0
ip address 192.168.0.1 255.255.255.0255
ip pim sparse-mode
Auto-RP
Auto-RP Discovery and Announcements
Auto-RP needs a RP to form multicast trees and allow traffic to flow.
However the location of the RP has to be discovered through multicast as well.
This creates a chicken and the egg situation. In order to find the RP, some kind of dense-mode
solution is needed.
Statically assign the mapping agent and the RP for the 224.0.1.39-40 addresses. Kind of
defeats the purpose of Auto-RP.
Configure interfaces with ip pim parse-dense mode. Uses dense mode for all groups without
an RP, sparse for all others.
Configure the ip pim autorp listener. Allows usage of sparse-mode only interfaces and
basically configures an ACL for the 224.0.1.39-40 addresses to be allowed to run in dense
mode (preferred method).
Mapping Agent
Receive candidate messages (announcements) and decide which one will be the RP (Highest IP
address wins).
The mapping agents listen on 224.0.1.39 and propagate the decision to all other routers via
224.0.1.40.
All routers join the 224.0.1.40 group by default, but only the mapping agents join 224.0.1.39.
Configure with ip pim send-rp-discovery, the scope has be large enough to reach the DR for the
PIM segments.
Static Auto-RP groups without listener (configure on all mrouters, including RP):
ip access-list standard AUTO_RP
permit host 224.0.1.40
permit host 224.0.1.39
Auto-RP Filtering
Filter RP announcement messages on the mapping agent to only allow specific RPs, or bind RPs to
specific groups.
Configure on mapping agent only.
BSR
Bootstrap Router (BSR)
The rp-candidate is the actual RP. The bsr-candidate is the mapping agent
Messages are flooded hop-by-hop by all multicast routers, this is because 224.0.0.13 is a link-local
address.
Designed for Sparse-Mode, there is no need for Dense-Mode. Flooding is a control-plane feature and
can be debugged.
Auto-RP uses routable addresses that are outside the 224.0.0.0/24 range (224.0.1.39-40).
BSR on the other hand uses link-local addresses, so its easier to control where traffic is flooded.
Even though these messages are flooded, they are still subject to the RPF check.
The edge of the BSR network can be specified with the ip pim bsr-border interface command.
BIDIR-PIM
Bidirectional PIM (BIDIR-PIM)
No source-based (S,G) trees.
RP builds a shared tree through which source routers forward traffic downstream toward the RP.
The RP in BIDIR-PIM is always in the data plane, so placement is important.
It's possible to limit which groups will be enabled for BIDIR, and use another or the same RP for
regular ASM.
ip pim bidir-enable
ip pim bsr-candidate Loopback0
ip pim rp-candidate Loopback0 bidir BIDIR_RANGE
PIM-DM
PIM Dense Mode (PIM-DM)
Forwards multicast traffic out of all interfaces, except the one received.
Does not forward if no active downstream router and no hosts joined group.
If both are true, router informs upstream router to stop sending via a prune message.
If host joins the network after prune, then routers will use graft message to override prune.
Only uses SPT.
State refresh messages can be used to 'refresh' the state before the 3min prune timer.
This will stop all routers from pruning and un-pruning on the specified interval.
Only has to be enabled on interface pointing to source, mrouter closest to source will relay state-
refresh messages.
Disable state-refresh with the ip pim state-refresh disable command.
int fa0/0
ip pim state-refresh origination-interval 60
PIM-DM Assert
Prevents multiple senders from replicating the same multicast stream on to the wire.
Used in dense-mode and enabled automatically.
PIM-SM
PIM Sparse Mode (PIM-SM)
Assumes that no clients want to receive multicast packets until they specifically ask to receive
them.
Downstream routers request multicast traffic using PIM Join messages.
Routers keep sending Joins, otherwise they are pruned.
RP Messages
Multicast receivers (clients) inform the router that they want to receive multicast traffic, this is the
(*,G) state.
Multicast sources also inform the RP that they are sending multicast traffic, this is the (S,G) state
(register message).
This information is propagated through the network, by all routers that know the location of the
RP.
3min state, after 3min the client will re-register with the RP. The RP informs routers to stop
sending with register-stop message.
As long as the source is transmitting this register-stop-register-stop state will continue
This is similar to Dense-Mode, except that it is only between the RP and the source router (instead
of all routers).
interface Tunnel 12
ip address 12.0.0.1 255.255.255.0
ip pim sparse-mode
tunnel source Loopback 0
tunnel destination 192.168.0.2
Change the next_hop to the next BGP destination that the neighboring router must take.
Remember that multicast will only try to go over PIM enabled interfaces.
Instruct R3 to choose R4 as the next-hop for mtraffic destined towards 172.16.0.0/24 (1.1.1.1 is the RP):
router bgp 234
no bgp default ipv4-unicast
neighbor 10.0.234.3 remote-as 234
add ipv4 multicast
network 172.16.0.0 m 255.255.255.0
network 1.1.1.1 m 255.255.255.255
neighbor 10.0.234.3 activate
neighbor 10.0.234.3 route-map NEXT_HOP_MC out
distance bgp 20 20 200
SSM
Source Specific Multicast (SSM)
Does not require RP, BSR or Auto-RP.
Receiver specifies the source address, RPF is still applied.
Specify a custom range with the range statement (must fall within the 232.0.0.0/8 range).
int lo0
ip pim sparse-mode
ip igmp join-group 232.0.0.1 source 192.168.0.1
ip igmp join-group 232.0.0.2 source 192.168.0.1
ip igmp join-group etc..
Static RP
Static RP Configuration
Statically configure each router with the location of the RP.
This also has to be configured on the RP to point to itself.
By default dynamically learned RP (BSR, Auto-RP) is preferred over static. Override this behavior
with the override keyword.
Between BSR and Auto-RP there is no preferred mapping order, the last mapping learned is
preferred.
RP Register Filtering
Prevent unauthorized sources from registering with the RP (S,G). Configure on RP.
If an unauthorized source sends a register message to the RP, the RP will immediately send back a
register-stop message.
RP Join Filtering
Accept only (*, G) join messages destined for the specified RP address.
Configure on mrouters, and optionally on RP.
The group address must be in the range specified by the access list.
If the RP points to itself, the RP will only accept registers from that particular multicast range.
This is basically the same as the ip pim accept-register command.
Dense-Mode Fallback
Dense mode fallback allows the usage of dense mode if the RP becomes unreachable.
Requires sparse-dense-mode configured on interfaces.
ip pim dm-fallback
int fa0/0
ip pim sparse-dense-mode
NAT
Application Level Gateway (ALG)
Some protocols embed IP address information in the Application Level payload.
Regular NAT does not check the application level for protocols such as FTP, HTTP, DNS, SIP.
ALG allows the use of dynamic ports by clients.
ALG is on by default. Disable ALG by specifying the no-payload command.
NAT Terms
Static NAT (SNAT) - One-to-One translation of a single inside local address to a single inside global
address
Dynamic NAT (DNAT) - Many-to-Many translation of multiple inside local addresses to multiple
inside global addresses (uses pools)
Port Address Translation (PAT) - Many-to-One translation of multiple inside local addresses to a
single inside global address (overload)
Stateful NAT (SNAT) - Allows multiple routers to share NAT tables levering the HSRP FHRP
protocol
NVI
NAT Virtual Interface (NVI)
No more concept of nat inside and nat outside interfaces
The add-route keyword also adds the NAT_POOL route to the RIB, this can then be redistributed
into BGP
Using this method, the outside interface address does not necessarily have to match the
NAT_POOL ip range
int gi0/0
description PRIVATE
ip address 10.0.0.1 255.255.255.0
ip nat enable
int gi0/1
description PUBLIC
ip address 2.0.0.1 255.255.255.252
ip nat enable
Dynamic
Dynamic NAT Pool
Maps multiple inside local addresses to multiple inside global addresses (many-to-many)
PAT
Port Address Translation
Common NAT usage to map multiple Inside Local addresses to a single Inside Global address
Only 65536 ports are available, extend the range by specifying more address in a pool
The main identifier of a PAT configuration is the overload keyword
int fa0/0
description PRIVATE_TO_R2
ip address 10.0.12.1 255.255.255.0
ip nat inside
int se1/0
ip address 14.0.0.1 255.255.255.0
description PUBLIC_TO_R4
ip nat outside
int fa0/0
description PRIVATE_TO_R2
ip address 10.0.12.1 255.255.255.0
ip nat inside
int se1/0
description PUBLIC_TO_R3
ip address 13.0.0.1 255.255.255.0
ip nat outside
int se1/1
description PUBLIC_TO_R4
ip address 14.0.0.1 255.255.255.0
ip nat outside
ip sla 1
icmp-echo 13.0.0.3 source-interface se1/0
frequency 5
track 1 ip sla 1
ip alias 14.0.0.100 23
ip access-list standard ROTARY_NAT
permit host 14.0.0.100
Static
Static NAT
Map a single Inside Local (IL) address to a single Inside Global (IG) address.
The no-alias keyword will stop the creation of an alias for the global address space.
The extendable keyword is added automatically in IOS, and is used when the same IL address is
mapped to multiple IG addresses.
int fa0/0
description PRIVATE_TO_R2
ip address 10.0.12.1 255.255.255.0
ip nat inside
int se1/0
ip address 14.0.0.1 255.255.255.0
description PUBLIC_TO_R4
ip nat outside
ip nat inside source static 10.0.12.2 14.0.0.100 extendable
ip nat inside source static 10.0.12.2 14.0.0.200 extendable
Static PAT
Map specific ports to IG addresses (or the outside interface address).
Stateful (SNAT)
Stateful NAT (SNAT)
The SNAT feature allows multiple routers to share NAT tables.
When used alongside HSRP, the standby router can take over the NAT translations.
The standby router can share state with the active router, keeping the NAT sessions alive.
The mapping-id must be the same between peers. The redundancy string must match the standby
name.
The configuration of the standby router is identical, with the exception of the ip nat stateful id.
int fa0/0
standby 1 name SNAT
standby 1 ip 10.0.123.254
ip nat inside
int se1/0
ip nat outside
ip nat stateful id 1
redundancy SNAT
mapping-id 12
router bgp 12
neighbor 14.0.0.4 remote-as 4
add ipv4
network 12.0.0.0 mask 255.255.255.0
Internal routes (network statement) are advertised as Type-1 LSAs and are translated to Type-3 by
ABRs.
The next-hop of redistributed routes are advertised as Type-1 LSAs with the E-bit set by the ASBR
and are translated to Type-4 LSAs by the next ABR.
The Type-4 LSA is updated by each ABR which changes the next-hop value.
Redistributed routes are also advertised as Type-5 LSAs, this is the actual route, not the way to
reach it.
The Type-5 LSA next-hop is unchanged, Type-4 is used to reach the Type-5 next-hop.
The Type-5 external LSA advertising router is not updated, only the Type-4 LSA indicating how to
reach this prefix is updated.
Primary DR Role
All routing updates will be forwarded from the DROTHER routers to the DR/BDR using 224.0.0.6.
The DR will update the LSAs and propagate the changes to the rest of the DROTHER routers using
224.0.0.5.
Secondary DR Role
Informs all routers in the area of the shared segment using Type-2 LSA.
This is only performed by the DR, not the BDR. The BDR only receives LSAs and is promoted if the
DR fails.
OSPF Bits
Bits that don't deal with NSSA areas or MPLS L3VPNs are usually set on Type-1 (router) LSAs
E Edge bit. Set by ASBRs upon injecting (redistributing) external routes into Type-1
OSPF
Upon reception of a Type-1 LSA with the E-bit set, the ABR wil generate
a Type-4 LSA
P Propagate bit. The propagate bit will allow translation of Type-7 to Type- Type-7
5
The nssa-only keyword will set the P-bit to 0, meaning that the route will
stay in the NSSA area
F Forward bit. Indicates that a forwarding address is included in the Type-7 Type-7
LSA when translated to Type-5
DN Downward bit. Set by default only on routers running OSPF in a VR Type-3 / Type-5 /
Type-7
If two routers are border routers, and only one is redistributing a route, then this router will be chosen
as the next hop regardless of cost.
The above is true unless the following conditions are met:
Exit interface pointing towards external destination must be enabled for OSPF and must not be
passive.
To be considered valid the external destination forward address must be known as OSPF route.
The network attached to the external destination must be either broadcast or NBMA.
Authentication
OSPF IPv4 Authentication
Authentication can be configured for an entire area, or per interface
Globally configuring authentication for area 0 will also enable authentication for virtual-links
(are always in area 0)
The key-strings themselves have to be configured per interface
Interface authentication modes overrides area authentication
When using MD5 the key ID and the key-string must match between neighbors
Multiple keys can be configured on an interface, using this method key ID can be added/removed
without any downtime (key rollover)
OSPF actually sends and accepts messages that use all the currently configured
authentication keys on an interface
The youngest key ID appearing in the output of the show ip ospf interface is the one being
used for authentication
The youngest key ID appearing in the output of the show ip ospf interface is the most
recently configured, regardless of its key ID
Adding a new key ID will initiate a 'key rollover', during this time the neighborship will
stay up until the dead-timer expires
Make sure to add the new key on both devices during the dead-timer, older keys can
be deleted afterwards
Technically OSPFv2 also supports SHA authentication, however this feature is not widely deployed in
Cisco IOS. The same is true for IS-IS
Simple Authentication (Type-1)
router ospf 1
area 0 authentication
int fa0/0
ip ospf authentication-key cisco
ip ospf authentication
int fa0/0
ip ospf message-digest-key 1 md5 cisco
ip ospf authentication message-digest
router ospf 1
area 0 authentication message-digest
area 1 virtual-link 192.168.0.2 authentication message-digest message-digest-key 1 md5 0 cisco
int fa0/0
ipv6 ospf authentication ipsec spi 256 md5 1234567890abcdef1234567890abcdef
ESP Null:
ipv6 router ospf 1
area 0 encryption ipsec spi 256 esp null md5 1234567890abcdef1234567890abcdef
int fa0/0
ipv6 ospf encryption ipsec spi 256 esp null md5 1234567890abcdef1234567890abcdef
int fa0/0
ipv6 ospf encryption ipsec spi 256 esp aes-cbc 128 1234567890abcdef1234567890abcdef md5
1234567890abcdef1234567890abcdef
OSPFv3 Authentication
There is no built-in mechanism for authentication in OSPFv3, instead it relies on IPsec
OSPFv3 (like OSPF IPv6) supports using IPsec for authentication
Both SHA and MD5 are supported hashing algorithms
OSPFv3 does NOT support Type-1 plain text authentication
Adjacencies / LSAs
OSPFv2 Adjacency Requirements
Matching hello/dead timers
Matching area ID between neighbors on the same link
Matching subnet mask and/or network prefix
Matching area type (stub / transit / nssa)
Matching authentication (type-0 / type-1 / type-2)
Matching ospf network type (broadcast / p2p / p2mp / non-broadcast)
Unique router-id (RID) between neighbors
Matching MTU (1500)
2-WAY Router has seen its own RID reflected in a neighbor's hello message Type-1 Hello
Possible stable state on DR/BDR network types
LOADING Contents of the LSA database is sent between neighbors (this is not a Type-3 LSR
full table) Type-4 LSU
Content that is sent is based on the LSAs that the router misses and Type-5 LSAck
LSAs that are requested
LSR (Link State Request) requests an LSA from a neighbor
LSU (Link State Update) provides a neighbor with the LSA or LSAs
LSAck (Link State Acknowledgement ) confirms the reception of the
LSU
int gi0/0
ip add 10.0.12.2 255.255.255.0
ip ospf 1 area 21
router ospf 1
network 10.0.12.0 0.0.255.255 area 0
network 10.0.12.0 0.0.0.255 area 12
In the above config, the more specific network statement places interface gi0/0 in area 12
However the interface statement > network statement so the interface is placed in area 21
OSPF Packet Types
Type 1 Hello Message Discovers and monitors neighbors.
Sent periodically to 224.0.0.5 on all interfaces (link-local in scope).
Virtual-Links use unicast Hello packets.
On broadcast and NBMA networks, Hello packets are used to elect DR
and BDR.
Type 2 Database Descriptor Synchronizes the link-state databases for all routers.
(DD/DBD) The Database descriptor is basically a summary of the OSPF LSA
database
The routers only exchange the list of all LSAs they possess and update
the ones that are missing from the database.
No actual LSAs are exchanged.
Type 4 Update Response to LSR with LSA details. Implement the flooding of LSAs.
(LSU) The local router advertises LSA with an LSU packet to its neighboring
routers.
The local router also advertises the LSU packet with information in
response to an LSR.
Stuck in Reason
2-WAY No DR elected
Possible stable state
Filtering
OSPF Filtering
OSPF restricts most filtering to either ABRs or ASBRs, it is not possible to filter LSAs from within
the same area
It is always possible to filter prefixes between the OSPF database and the local RIB, even on
internal routers
Filtering options:
o Filter Type-3 or Type-5 LSAs using filter-lists on ABR/ASBR
o Filter routes using distribute-lists on all routers between the OSPF database and the local
RIB
R1 is ABR between area 0 and area 123, prevent route 192.168.0.3/32 from reaching area 0:
ip prefix-list R3_Lo3 deny 192.168.0.3/32
ip prefix-list R3_Lo3 permit 0.0.0.0/0 le 32
router ospf 1
area 0 filter-list prefix R3_Lo3 in
Or:
ip prefix-list R3_Lo3 deny 192.168.0.3/32
ip prefix-list R3_Lo3 permit 0.0.0.0/0 le 32
router ospf 1
area 123 filter-list prefix R3_Lo3 out
R1 is ABR between area 0 and area 123, prevent internal routes 192.168.0.1-3/32 from reaching area
0:
router ospf 1
area 123 range 192.168.0.0 255.255.255.252 not-advertise
R1 is ABR between area 0 and area 123, prevent external routes 192.168.0.1-3/32 from reaching area
0:
router ospf 1
area 123 summary-address 192.168.0.0 255.255.255.252 not-advertise
Distribute-Lists
Filtering routes using distribute-lists is only possible in the inbound direction
Only one distribute list can be applied per process and can match an ACL, prefix-list or route-map
It is not possible to filter LSAs from being received within the same area
Distribute-Lists are a local filter of the LSA database and the RIB, they do not actually block the LSA
from being received
o Only prevents routes from being installed in the RIB
router ospf 1
distribute-list prefix R3_Lo3 in
router ospf 1
distribute-list prefix PREFIXES gateway R2 in
router ospf 1
area 13 nssa
distribute-list prefix Lo3 in
int fa0/0
ip ospf database-filter all out
router ospf 1
neighbor 10.0.12.2 database-filter all out
Prefix-Suppression
Only advertises prefixes associated with secondary IP addresses, and passive interfaces.
This can be configured on a per interface basis or for the entire process.
Basically, all primary addresses will be suppressed.
Secondary IP addresses are only advertised by enabling OSPF on the interface, not the network
statement.
If prefix suppression was enabled for the entire process, only secondary addresses and loopbacks
would be advertised.
By specifying the secondaries none keyword, the secondary address is not advertised into OSPF.
router ospf 1
prefix-suppression
ip ospf 1 area 0 secondaries none
int lo0
ip ospf prefix-suppression disable
LFA / FRR
Fast Reroute (FRR) Direct LSA
IOS only supports per-link LFA.
The high priority enables FRR for /32 prefixes only, the low priority enables FRR for all prefixes.
The fast-reroute keep-all-paths option keeps all information in the table, including paths that were
not chosen.
When an area is specified, external routes are not a candidate for FRR. This is because they do not
belong to an area.
router ospf 1
fast-reroute per-prefix enable area 0 prefix-priority high
fast-reroute per-prefix enable prefix-priority high
fast-reroute keep-all-paths
router ospf 1
prefix-priority high route-map FRR
Manually specify tie breakers and index number (lower is more preferred).
The required keyword forces matching. If no match, do not go to next-tie breaker and don't use
the path.
When manually configuring tie-breakers, others not included will not be used.
router ospf 1
fast-reroute per-prefix tie-break lowest-metric required index 10
fast-reroute per-prefix tie-break node-protecting required index 20
fast-reroute per-prefix tie-break srlg required index 30
Misc
OSPF TTL Security
Normally OSPF packets are sent with a TTL of 1 or 2 for directly connected neighbors.
With TTL Security the TTL for sent packets is set to 255 and received packets must match the
configured value.
Must be configured and on both sides.
If TTL Security is configured with a hop count of 1, the router will only accept packets with a TTL of
254.
int fa0/0
ip ospf ttl-security hops 1
router ospf 1
ttl-security all-interfaces hops 1
int fa0/0
ip ospf ttl-security disable
int fa0/0
ip ospf mtu-ignore
Incremental SPF (iSPF)
Faster convergence means that the routing protocol is more sensitive to oscillating processes,
which in turn makes it less stable.
iSPF keeps the SPT structure after the first SPF calculation and using it for further computation
optimizations.
router ospf 1
ispf
OSPFv3 / IPv6
OSPFv3 (IPv6 OSPF)
Confusingly, Cisco refers to IPv6 OSPF as just OSPFv3 or 'Tradidional OSPFv3'
o Whereas OSPFv3 that uses both IPv4 and IPv6 is referred to as 'OSPFv3 Address-Family
Configuration'
Type-8 Link LSA Only exists on the local-link and only advertises IPv6 addresses
Advertises all IPv6 associated with the link (global / link-local)
Similar to Type-1 LSA, except limits the prefixes to a single link per LSA
Can set OSPFv3 specific bits that influence the networks advertised by the
router
NU-Bit (No-Unicast) for example indicates that a network should not be
used in calculations
Type-9 Intra-area Sends information about IPv6 networks (including stub) attached to the
Prefix LSA router
Sends information about IPv6 transit network segments within the area
Basically this LSA combines OSPFv2 Type-1 and Type-2 LSAs into a single
LSA for IPv6 networks
Type-10 / Opaque Used as generic LSAs to allow easy future extension of OSPF
11 Type-10 has been adapted for MPLS traffic engineering
ipv6 unicast-routing
ipv6 cef
!
ipv6 router ospf 1
router-id 0.0.0.1
!
interface gi0/0
ipv6 address fe80::1 link-local
ipv6 ospf network point-to-point
ipv6 ospf 1 area 0
!
interface lo0
ipv6 address fe80::1 link-local
ipv6 address 1::1/128
ipv6 ospf network point-to-point
ipv6 ospf 1 area 0
ipv6 unicast-routing
ipv6 cef
router ospfv3 1
router-id 0.0.0.1
!
address-family ipv6 unicast
passive-interface default
no passive-interface gi0/0
!
address-family ipv4 unicast
passive-interface default
no passive-interface gi0/0
!
interface gi0/0
ip address 10.0.12.1 255.255.255.0
ipv6 address fe80::1 link-local
ospfv3 1 ipv4 area 0
ospfv3 1 ipv6 area 0
ospfv3 network broadcast
!
interface lo0
ip address 1.0.0.1 255.255.255.255
ipv6 address fe80::1 link-local
ipv6 address 1::1/128
ospfv3 network point-to-point
ospfv3 1 ipv4 area 0
ospfv3 1 ipv6 area 0
Show commands
show ospfv3 neighbors
show ospfv3 interface brief
show ospfv3 database
show ospfv3
Session / Networks
OSPF Network Types
Name Timers Hello Updates Neighbor DR / Mask Default on type
BDR
DR Networks
224.0.0.5 - All SPF-Routers multicast address
224.0.0.6 - All Designated Routers (DR) multicast address
All LSA updates will be forwarded from the DROTHER routers to the DR/BDR using 224.0.0.6
The DR will update the LSAs and propagate the changes to the rest of the DROTHER routers using
224.0.0.5
The DROTHERS respond to the DR with a LSU or a LSAck using 224.0.0.6
Non-DR Networks
Normally sent to 224.0.0.5 (All SPF Routers) and 224.0.0.6 (All Designated Routers).
Primary DR Role
All routing updates will be forwarded from the DROTHER routers to the DR/BDR using 224.0.0.6.
The DR will update the LSAs and propagate the changes to the rest of the DROTHER routers using
224.0.0.5.
Secondary DR Role
Informs all routers in the area of the shared segment using Type-2 LSA.
This is only performed by the DR, not the BDR. The BDR only receives LSAs and is promoted if the
DR fails.
Summarization
OSPF Inter-Area Route Summarization (ABR/ASBR)
Routes can only be summarized manually at the area boundaries (ABR) or at the ASBR
The area range command can summarize inter-area routes for which it is about to create a Type-3
Summary LSA
The area that is specified is the area where the routes are located, not the area that is being
summarized into
o ABR does not advertise the subordinate route Type-3 LSAs
o If the subordinate route does not exist, the summary will not be created
router ospf 1
area 1 range 172.16.0.0 255.255.0.0
The metric (cost) chosen for the summary is the cost associated with the best subordinate route
o It is also possible to associate a new (lower) cost value with the summary by using the area
<area id> range <prefix> cost keyword
Basically, the more specific Type-3 LSAs are suppressed and instead a single Type-3 LSA is
advertised to the adjacent area
router ospf 1
summary-address 172.16.0.0 255.255.0.0 nssa-only
The metric (cost) chosen for the summary is the cost associated with the best subordinate route
o It is NOT possible to associate a new cost value with the summary
router ospf 1
no discard-route internal
no discard-route external
router ospf 1
default-information originate metric 5 metric-type 2 route-map DEFAULT_RM
The above configuration will only advertise the Type-5 LSA into OSPF if the 1.0.0.0/30 network
towards the ISP is operational (link is up)
If the link goes down between the ASBR and the ISP router, the 1.0.0.0/30 will be withdrawn from
the RIB, and thus the default route from OSPF
router ospf 1
area 123 stub no-summary
router ospf 1
area 123 nssa no-summary no-redistribution
area 123 nssa default-information-originate metric 1 metric-value metric-type 2 nssa-only
area 123 default-cost 1
The default-cost keyword will affect the cost of the redistributed default-route. Not other routes
NSSA default-information-originate does not require the presence of a default route when configured
on the NSSA ABR
Originating the default route on routers within the NSSA the presence of a default route is
required
The nssa-only keyword will limit the default route to the NSSA area only by setting the propagate
(P) bit in the type-7 LSA to zero
The F-bit indicates that a forwarding address is included in the LSA when set (Used to forward
Type 7 LSA)
router ospf 1
area 123 nssa translate type7 suppress-fa
The suppress-fa keyword will stop the forwarding address of the Type-7 LSAs from being placed in the
Type-5 LSAs.
This keyword takes effect only on an NSSA ABR or an NSSA ASBR.
The P-bit is used in order to tell the NSSA ABR whether to translate type 7 into type 5. P=1 means
translate.
When using multiple NSSA ABRs, if suppression is enabled on the translating NSSA ABR (highest
RID) ECMP will stop functioning.
In this case the translating router (highest RID) will become the next-hop, because the forward
address is not known (0.0.0.0).
VL / GRE
OSPF Virtual-Links
Only work over normal (transit) areas and do not operate over stub areas and NSSA areas
Always in area 0, even if they are configured on other areas. Use area 0 authentication by default
Endpoints are the RIDs, not actual ip-addresses
Can only cross one area
P2P in nature and unnumbered, and they carry only OSPF communication such as hellos and LSAs
Existing VLs can easily be spotted by the DNA bit set in the OSPF database, VLs also set the V-bit to
1
Default hello-timer is 10 seconds and dead timer is 40 seconds
The ttl-security hops keyword specifies over how many hops the Virtual-Link is allowed to travel
The area that you specify with area . virtual-link command is the area the VL travels over
router ospf 1
area 23 virtual-link 192.168.0.3 ttl-security hops 2
OSPF GRE
Beware of recursive routing when choosing tunnel endpoints.
Tunnel between ABRs, not the routers that should be linked in the same area.
int fa0/0
ip ospf 1 area 1234
int fa0/1
ip ospf 1 area 0
int tun0
ip unnumbered fa0/1
tunnel source fa0/1
tunnel destination 10.0.23.2
tunnel mode gre ip
ip ospf 1 area 1234
Quality of Service (QoS)
QoS
Simplest form of traffic queing is tail drop, which simply drops new packets when the queue os full
This can lead to problems in TCP traffic and cause 'global synchronization'
All hosts simultaneously reduce their transmission rate when a packet is dropped, afterwards
they will all resume simulatiously
TCP starvation / UDP dominance is caused when UDP and TCP traffic are mixed, the TCP hosts will
throttle but UDP will keep using bandwidth
This can happen when there is no QoS, or tcp/udp is combined in the same class-map, this can not
always be avoided however
TCP
A TCP window is the number of data bytes that the sender is allowed to send before waiting for an
acknowledgment, the higher the more performance
The window size is defined by receiver, the defualt size is 4128 bytes (33024 bits), can be modified
with the ip tcp window-size command
The remote host/receiver will also need to support (and be configured for) receiving this
larger window size
TCP selective acknowledgment improves perforamnce if multiple packets in a window are lost
The receiver notifies the sender (acknowledgments) that data has been received
Enable with the ip tcp selective-ack global command
Only used when multiple packets are lost in a window, not during 'regular' tcp operations
The feature can be used alongside:
TCP ECN (Explicit congestion notification). Router suggests host to slow down traffic,
enable with ip tcp ecn command
TCP Keepalives. Identifies dead connections
TCP time stamps. Improves round-trip measurements, enable with ip tcp timestamp
command
ip tcp ecn
ip tcp selective-ack
ip tcp timestamp
VoIP
Different applications require different treatment, the most important parameters are:
Delay: The time it takes from the sending endpoint to reach the receiving endpoint.
Jitter: The variation in end to end delay between sequential packets.
Packet loss: The number of packets sent compared to the number of received as a percentage.
Hardware Queue
Hardware transmit (Tx) queue is FIFO by default for ethernet interfaces. Tx queue is 256.
Hardware queue is WFQ by default for serial interfaces. Tx queue is 64.
int fa0/0
tx-ring-limit 256
802.1p
111 7 Reserved
110 6 Reserved
101 5 Voice
100 4 Video
cs1 001|000|00 8 32
af11 001|010|00 10 40
af12 001|100|00 12 48
af13 001|110|00 14 56
cs2 010|000|00 16 64
af21 010|010|00 18 72
af22 010|100|00 20 80
af23 010|110|00 22 88
cs3 011|000|00 24 96
ef 101|110|00 46 184
Maps
Class-Maps
With match-all, all criteria must be met in order to have a match. Default.
With match-any, only one of the criteria has to be met in order to have a match.
The ip precedence and ip dscp keyword only match on IPv4 traffic.
Match telnet traffic that is not marked with the default value of cs6:
class-map match-all TELNET
match protocol telnet
match not dscp cs6
policy-map TELNET
class TELNET
drop
int fa0/0
service-policy input TELNET
Hierarchical Policy-Map
1. Police traffic matching the ACL to 64000 bps.
2. Police traffic matching a subset of this ACL with IPP0, IPP1, IPP2 to 32000 bps.
3. Police traffic matching a subset of this ACL with IPP2 to 16000 bps.
4. Always nest the most specific subset into the upper level policy-map.
5. In this case IPP2 with 8000 bps is the most specific, so this will be the lowest level policy-map.
policy-map LEVEL_3_PM
class LEVEL_3_CM
police 16000
policy-map LEVEL_2_PM
class LEVEL_2_CM
police 32000
service-policy LEVEL_3_PM
policy-map LEVEL_1_PM
class LEVEL_1_CM
police 64000
service-policy LEVEL_2_PM
int fa0/0
service-policy output LEVEL_1_PM
NBAR
NBAR
NBAR uses deep packet inspection instead of just matching on the specified port.
This is more CPU-intensive than matching with an ACL.
Managing with an ACL should be used if a previous devices has already performed deep-packet
inspection with NBAR.
List all known ports with show ip nbar port-map.
Map a well-known port of a protocol to a new port with ip nbar port-map http 80 8080.
NBAR Protocol-Discovery
Monitor traffic protocols known to NBAR on a specific interface. CPU intensive.
int fa0/0
ip nbar protocol-discovery
Policing / Shaping
Policy-Maps
Policy-maps can be applied in both the ingress and egress direction.
CBWFQ and LLQ policy-maps can only be applied in the egress direction.
Shaping should be applied in the egress direction. But can be applied ingress.
Policing should be applied in the ingress direction. But can be applied egress.
Terminology
Access rate (AR). This is the actual speed of the physical port.
Committed Information Rate (CIR). Average rate the shaper is targeting in bps.
Time Committed (Tc). Time interval in ms to emit traffic bursts.
Burst Committed (Bc). Amount of bits that should be sent every Tc.
Burst Excessive (Be). Amount of bits exceeding Bc that could be sent during Tc. Accumulated by
idle periods.
Policing
Can be used to drop incoming packets that do not conform to the policy.
Cisco routers have a Tc default value of 125 ms = 8 times a second.
If the goal is 50Mbit/sec transmit speed on a 100Mbit/sec interface. The CIR would be specified as
50Mbit.
The IOS will automatically calculate the Bc based on the configured CIR (recommended).
In order to calculate the Bc the CIR needs to be divided by 8 or 4 (depending on the platform).
Conform. Traffic is under Bc.
Exceed. Burst size exceeds Bc, but under Bc+Be.
Violate. Burst size exceeds Bc+Be.
Tc = CIR/Bc
Bc = CIR/Tc
policy-map POLICER
class class-default
police cir 50000000 bc 781250
conform-action transmit
exceed-action drop
int fa0/0
service-policy input POLICER
Shaping
Shaping is applied by altering the time in which traffic is allowed to send, not the speed of the
port.
This means that the average traffic sent will be less over time.
The IOS will automatically calculate the Bc and Be based on the configured CIR (recommended).
With a shape average (CIR) of 50 Mbit, the calculated Bc and Be will be 200000.
The Tc will be 250, meaning that every 4ms (1 second / 250) the interface will forward at the line
speed.
The shaper can also be based on a percentage of the link speed, however this is dependent on the
manually configured bandwidth, not the hardcoded line speed.
Tc = CIR/Bc
Bc = CIR/Tc
policy-map SHAPER
class class-default
shape average 50000000 200000 200000
int fa0/0
service-policy output SHAPER
Pre-Classify
QoS Pre-Classification
By default tunneling and VPN operations are applied before the QoS policy. QoS pre-classify (PQ)
reverses the order.
PQ on crypto map affects all tunnels on that physical interface.
PQ on tunnel affects only that specific tunnel interface.
PQ is needed when classification is based on IP address, ports, etc. Or a crypto map is used.
PQ is not needed when classification is based on ToS. Or a tunnel interface is used.
Can be enabled regardless, very little impact on performance.
interface tun0
qos pre-classify
crypto map CMAP 10 ipsec-isakmp
qos pre-classify
Rate-Limiting
Rate-Limiting
Requires CEF. Can be configured on physical or sub-interface.
Works similar to policer without MQC configuration.
Like a policer, the CIR is configured in bits. The Bc and Be are configured in bytes.
Match on all traffic or specific DHCP, QoS group, ACL (no named ACL support).
int fa0/0
rate-limit input 50000000 781250 781250 conform-action transmit exceed-action drop
WRED
Weighted Random Early Detection (WRED)
Only works for TCP traffic. Enable in the egress direction.
Drop preference values (AF) are used by WRED.
WRED turns any queue on the interface into FIFO. The minimum threshold is the FIFO's queue
depth before WRED is activated.
The overall size of the queue depth is specified by the hold-queue command.
The hold-queue must be higher than the minimum threshold configured in WRED.
int fa0/0
hold-queue 40 out
The default WRED values differ per precedence and DSCP values.
Minimum-threshold. Above this threshold WRED engages and starts randomly dropping packets.
Maximum-threshold. Above this threshold TAIL-DROP engages and starts dropping packets (WRED
is basically disabled).
Mark-probability. Amount of packets dropped up until maximum threshold is reached (1 out of 10,
1 out of 5, etc).
The Exponential Weighting Constant (EWC) alters how quick WRED reacts.
Higher EWC value makes WRED react more slowly, lower EWC value makes WRED react more
quickly (default is 9).
Change IPP 0 to 15 min, 30 max and 1/5:
policy-map WRED_IPP
class class-default
random-detect precedence-based
random-detect precedence 0 15 30 5
random-detect exponential-weighting-constant 9
int fa0/0
service-policy WRED_IPP out
int fa0/0
service-policy WRED_DSCP out
AF Values
AF11 is IP Precedence 1 (cs1) with low drop preference.
AF23 is IP Precedence 2 (cs2) with high drop preference.
AF32 is IP Precedence 3 (cs3) with medium drop preference.
int fa0/0
service-policy WRED_ECN out
ECN Values
The 7th bit is the ECT bit and the 8th bit is the CE bit.
If a TCP host supports ECN, it sets either (but not both) of the low-order bits in the DSCP byte - ECT
or CE - to 1.
If a TCP host doesn't support ECN, these will both be set to 0.
11 Congestion experienced
RIP
RIP Passive Interfaces
Passive interfaces transmit no protocol-related data, but still receive data
o Protocol related data in case of RIP is only the updates
o This includes RIP updates that cannot be sent, but still be received
o This is because RIP does not use a hello mechanism to maintain adjacencies
Updates can still be exchanged over passive-interfaces by using the neighbor statement
router rip
passive-interface default
neighbor 10.0.12.1
RIP Redistribution
Routing protocols or static routes redistributed into RIP require a set metric
With a transparent the redistributed route will inherit the metric that is seen in the routing
table of the redistributing router
Use the transparent keyword only when you know that the metric is lower than 16.
Redistributed OSPF E2 routes (cost 20) will always lead to an infinite metric when using the
transparent keyword
router rip
redistribute ospf 1
default-metric 5
RIP Summarization
RIP does not install a discard route by default. Instead it relies on route poisoning when a
routers own summary is received
Manually add a discard route to null0 with ip route 0.0.0.0 0.0.0.0 null0
RIP will generate a default route with the default-route originate command whether it
exists or not in the routing table
router rip
default-information originate route-map RIP
router rip
validate-update-source
interface fa0/0
ip address 10.0.12.1 255.255.255.252
no shutdown
!
interface lo0
ip add 1.1.1.1 255.255.255.255
!
router rip
network 10.0.0.0
network 1.0.0.0
no auto-summary
show ip protocols
Routing Protocol is "rip"
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Sending updates every 30 seconds, next due in 24 seconds
Invalid after 180 seconds, hold down 180, flushed after 240
Redistributing: rip
Default version control: send version 1, receive any version
Interface Send Recv Triggered RIP Key-chain
FastEthernet0/0 1 12
Automatic network summarization is not in effect
Maximum path: 4
Routing for Networks:
10.0.0.0
Routing Information Sources:
Gateway Distance Last Update
10.0.12.1 120 00:00:22
Distance: (default is 120)
When configuring RIPv1 only, the router will send v1 and receive v1/v2
Using the command version 2 in router configuration mode will hardcode all ports to
send and receive v2 only
o This is not backwards compatible
o RIPv1 is forwards compatible with routers running v2 only, because it also listens for
v2 updates on 224.0.0.9 by default
o Override router configuration with ip rip send/receive version 1 2 on the interfaces
o Interface configuration overrides router configuration
interface fa0/0
ip rip send version 1 2
ip rip receive version 1 2
RIPv2
RIPv2 updates are sent to 224.0.0.9 using UDP port 520 by default
Send v2 updates to the broadcast address using the ip rip v2-broadcast interface
command
o This does not mean the updates will be accepted by clients running RIPv1 only
Authentication
RIP Authentication
RIPv1 does not support authentication
RIPv2 supports MD5 authentication and plain-text
o The default authentication mode for RIPv2 is plain-text, even if not specifically
configured
int fa0/0
ip rip authentication mode md5
ip rip authentication key-chain RIP
Filtering
RIP Filtering
Filtering can be done with distribute-lists or offset-lists
Offset lists manipulate the RIP metric to an infinite value
Distribute lists filter based on access- or prefix-lists
router rip
distribute-list prefix PREFIX gateway NOT_R2 in se1/0
offset-list 0 in 16 se1/0
RIPng
RIPng
Passive interfaces are not supported
Static (manual) neighbors cannot be configured (no neighbor command)
Split Horizon and Poison Reverse can be activated only on a per-process basis, not on
individual interfaces
RIPng Updates are send to FF02::9 using UDP port 521 by default (RIPv2 uses UDP port
520)
int fa0/0
ipv6 rip RIPng enable
ipv6 rip RIPng default-information originate metric 1
ipv6 rip RIPng summary-address 2001::/16
RIPng Metric
The metric is incremented by the receiver instead of the sender
Offset lists are configured only on interfaces and are for all received subnets, use the
metric-offset command
The metric-offset specified replaces the original increment of the metric (1)
o Meaning that a metric-offset with value 4 will increase the metric by adding 3 to the
existing value (4-1)
int fa0/0
ipv6 rip RIPng enable
ipv6 rip RIPng metric-offset 4
RIPng Redistribution
Routes redistributed into RIPng do not require a set metric
Default behavior is to redistribute with a transparent metric
This will inherit the metric from the other protocol
Can lead to infinite metric (16)
Default behavior is to not redistribute connected interfaces for the other routing protocol
Override with the include-connected statement
This advertisement can be overruled with a route-map filter
Because the flushed after timer expires after 240 seconds, the effective hold-down period
is only 60 seconds
RIP Updates
RIP sends routing update based on two conditions:
Request message (flash update) is sent immediately when there is a change to the
topology
Full update is sent when RIP is started, at the regular interval or when routes are cleared
from the RIB
o Full updates contains learned and connected RIP routes.
RIP Route Poisoning advertises a truly unreachable route to quickly flush it from routing
tables
RIP Flash-Update-Threshold
If there is a change in the topology at 27 seconds, RIP will send a Flash Update, and then
again a full update at the 30 second interval
So in 3 seconds 2 updates are send flooding the network
The flash-update-threshold can be configured to stop this behavior and will delay flash
updates if they are within the interval
router rip
flash-update-threshold 10
Triggered Updates
When triggered extensions to RIP are enabled, updates are sent on the WAN only if one of the
following events occurs:
The router receives a specific request for a routing update. (Full database is sent)
Information from another interface modifies the routing database. (Only latest changes are
sent)
The interface comes up or goes down. (Partial database is sent)
The router is first powered on, to ensure that at least one update is sent. (Full database is
sent)
int se1/0
ip rip triggered
Spanning Tree
Spanning Tree Protocol (STP) Workings (802.1D)
The function of STP is to prevent bridging loops
o These exist because switches are not aware of other switches on the network and will
loop frames
STP works by establishing a hello mechanism between two neighboring switches (bridges
in STP)
o These hello's are called Bridge Protocol Data Units (BPDUs) and
o BDPUs are sent to the L2 multicast address 0180.c200.0000
o 802.1D (STP) frames are sent in the native VLAN
o (R)PVST+ will also sent BPDUs to 0100.0ccc.cccd
The entire goal of STP is to elect a root bridge and establish a reference point
When switches first come online they will start sending BPDUs on all active links
The goal is to detect other switches on the segment and decide on a winner for each
segment
A segment is just a link between two switches
The winner is the switch that has the lowest bridge ID (see STP Root Election below)
When the network converges there will be 1 overall winner (the root bridge) which will become
the center of STP
The root bridge will be the only one sending the BPDUs after convergence
All other bridges will forward these BPDUs and will add their costs to the root bridge to
the BPDU
Between non-root bridges, election still happens to decide which bridge is the winner for
each individual segment
o The loser of this election will put its port in the blocking state, the winner will put its
port in the forwarding state
STP Bridge Protocol Data Units (BPDUs)
The most relevant information in a BPDU is the root path cost
Every bridge adds its own path cost to the root bridge when receiving a BPDU
The BPDU is then forwarded to other bridges along the path with the root bridge ID and
timers intact
The only thing that is updated by intermediate switches is the sender bridge ID
In the diagram above, switch A has the lowest mac-address (0000.0000.000a) and will become
the root bridge
After convergence only A will send BPDUs to B and C
B and C will forward these BPDUs, in this case only on the link between B and C
o Between B and C another election happens to decide which bridge will put its port in
the blocking state (see STP Path Selection below)
o Both bridges forward a BPDU from A and both have a root path cost of 4
o The decision is then made based on the lowest bridge ID, which B will win because it
has the lowest mac-address (0000.0000.000b)
o Bridge C will put its port in the blocking state and B will put its port in the forwarding
state
BDPU Types & Info
Type Description
Topology Change Notification (TCN) Used to announce changes in the network topology
Configuration BPDUs
Configuration BPDUs are sent out only from Designated Ports
Designated Ports store the BPDU they send
Root and Blocking ports store the best BPDU they receive
Received superior stored BPDUs will expire in MaxAge-MessageAge seconds if not
received within this time period
TCN BPDUs
Sent only out of root port by non-root bridges
Carries no data, only announces that something has changed (a port running STP has
changed its state)
Forwarded and acknowledged by every bridge in the network until it reaches the root
The root will then send a configuration BPDU with the TCN flag informing the entire
domain of a change
o The TCN also makes switches set the aging of mac-address in the cam table from
(300 seconds default) to the forward delay (15)
o This process continues for the max-age time + the forward delay (35 seconds by
default)
TCN BPDUs are not forwarded out of portfast ports and not generated if a portfast port
goes up/down
o For this reason it is important to configure client PC ports as portfast to limit the
sending of unnecessary TCN flooding/flushing CAM tables
RSTP uses the TCN BPDU for backwards compatibility with STP only
o Topology changes in RSTP are sent via the configuration BDPUs with the TCN flag set
Non-root
The 3 BPDUs sent in the output above were sent before STP converged
After convergence only designated ports should increment their sent counter
All other ports (root / blocking) should only increment their receive counter
Likewise the root bridge should not be incrementing its receive counter
16 Mbit/s 62 1250000
1 Gbit/s 4 20000
2 Gbit/s 3 10000
10 Gbit/s 2 2000
Blocking Receive BPDUs Send BPDUs - Prevents bridging loops and only
Send or listens to BPDUs to detect other
receive data bridges
If bridge loses election on the
segment, the port will remain in this
state
Listening Send and Send or 15 Bridge thinks the port can either be
receive BPDUs receive data a root or designated port
Send or Port is 'on its way' to begin
receive data forwarding
Listens for and sends BPDUs and
participates in STP
These link types do not really matter for PVST+/CST, and primarily come into play when running
RSTP/RPVST+
STP Timers
Timer Duration Description
All timers are set by the root bridge and should only be updated on the root bridge
o You can configure different timers on non-root bridges, but they will only be used
when they become the root
o Non-root bridges will use the timers set by the root, regardless of their locally
configured values
The forward delay is set to 15 seconds by default and applies to both the learning and
listening state (15 sec for learning, 15 sec for listening)
o You cannot configure alternating timers for the learning and listening states
spanning-tree hello-time 1
spanning-tree hello-time 4
spanning-tree max-age 10
If you don't specify a VLAN ID the timers will apply to all VLANs
BackboneFast / UplinkFast
UplinkFast (802.1D STP)
Deals with direct failures, basically RSTP alternate port on IEEE STP
o The switch in the access layer usually have two uplinks, one root port and one
blocking
o The switch knows the domain is loop-free by the BPDUs received on the blocking
port
o Uplinkfast is triggered when the root port goes down or the BPDUs stop
o The switch will move over to the blocking port and change it to the new root port
Blocked ports immediately transition to the forwarding state by skipping listening and
learning state
When you enable UplinkFast the priority for all VLANs is set to 49152
The spanning tree port cost is increased by 3000 (short) or 10^7 (long)
UplinkFast is enabled / disabled for all VLANs
o Only actually active if switch has a STP blocking port
o Use on access layer switches
o Never try to enable on root, no error messages are generated when you do
spanning-tree uplinkfast
After uplinkfast is triggered, the bridge will also start flooding its cam table to its
neighbors (using ARP)
o The switch does this by spoofing the known mac-addresses to the L2 multicast
destination 0100.0ccd.cdcd
o The source of these frames will be spoofed by the switch and will be exactly the same
mac-address as the hosts connected to the switch
o 1 spoofed frame will be sent per entry in the CAM table
The point of this flooding is a result of using a new root port to a new uplink bridge
o The new uplink bridge does not know the contents of the current mac-address table
because the port was previously blocking
o By spoofing the CAM table, the new uplink bridge learns the contents of the CAM
table which will prevent unnecessary unicast flooding
o The rate at which this happens is configurable with the spanning-tree uplinkfast
max-update-rate command (default is 150 packets/sec)
spanning-tree backbonefast
BackboneFast removes the max-age timer if inferior BPDUs are received on a (separate) blocked
port
The switch will first generate a RLQ (Root Link Query) to the root bridge to verify that the
other switch has lost connectivity to the root
o The other switch is isolated and thus declares itself root
o The root will respond to the RLQ and the switch will remove max-age timer from the
blocked port
o The port still has to go through the listening and learning state (30 seconds)
Must be enabled on all switches in the network
o Not supported on Token Ring networks
o Only switches that have blocked ports will generate a RLQ
MSTP
Multiple Spanning Tree Protocol (802.1S MSTP)
You can configure multiple MST regions within the same topology
o The region is defined by the name
o The revision number must match between neighbors
o Instance to VLAN mappings are not sent of the link, instead a MD5 hash is sent and
compared between bridges
o Rely on either VTP or manual configuration to configure the same instance to VLAN
mappings between bridges
o You can configure instances in the range of 1-4094, however only 16 (MST0 + 15
user defined) total are supported on cisco switches
Hello, ForwardTime and MaxAge timers can only be tuned for the IST
o All other MIST inherit the timers from the IST
o The hello-time is the timer at which configuration messages are sent by the root
switch
Configure the maximum number of switches between any two end stations with the
diameter command (MST0 only)
The MST extended system-id is made up of the instance number instead of the VLAN
number (instance 1 with default priority is 32679)
MST Caveats
If one VLAN is active on the link in the instance, the entire instance is active
This can be a problem if other VLANs are pruned (administratively disallowed) that are part
of the instance
Make sure that all VLANs that are part of the instance are allowed on the trunk
If not, either add the VLAN to the allowed list (if not restricted)
Or remove other VLANs from the allowed list (prune them) so the MST instance switches
to another link
Or put the disallowed VLAN in another instance by itself and make it go over a separate
link
MST Interoperability
The idea is to hide the internal MST from other versions of STP. But maintain backwards
compatibility and fast convergence
Other regions will view the MST region as a single switch
Every MST region runs a special instance of spanning-tree known as IST or Internal
Spanning Tree (MST0)
IST has a root bridge, elected based on the lowest Bridge ID
With multiple MST regions in the network, a switch that receives BPDUs from another region is a
boundary switch
Another region can be RSTP or PVST+, the ports to these regions are marked as MST
boundary ports
o Shown as P2p Bound(STP) in show spanning-tree
When multiple regions connect together, every region constructs its own IST and all
regions build a common CIST
A CIST Root is elected among all regions and CIST Regional Root (IST root) is elected in
every region
CIST Root The bridge that has the lowest Bridge ID among ALL regions
This could be a bridge inside a region or a boundary switch in a region
CIST Regional A boundary switch elected for every region based on the shortest external
Root path cost to reach the CIST Root
Path cost is calculated based on costs of the links connecting the regions,
excluding the internal regional paths
CIST Regional Root becomes the root of the IST for the given region as well
Loopguard / UDLD
Protecting Against Sudden Loss of BPDUs
Loopguard and UDLD protect against a sudden loss of BPDUs from a neighboring bridge
This can be dangerous because switches might (falsely) think that a topology changed has
happened
This behavior can lead to bridging loops when there is no actual TCN and the BPDUs are
just delayed / timed out
UDLD is a better option for etherchannels, because it can block individual ports
Protects from
Unidirectional links
Switches/links that block BPDUs
STP Loopguard
Prevents alternate or root ports from becoming designated in response to a unidirectional
link
Puts ports into a loop-inconsistent state if BPDUs are no longer received on the interface
(basically blocking state)
o Does not block the entire port from receiving data, only the VLANs on which STP is
active
Incompatible with RootGuard
Prevents loops by detecting the sudden loss of BPDUs
o Only superior BPDUs are considered
o Loopguard-enabled ports may send BPDUs when inferior BPDUs are received
int gi1/0/1
spanning-tree guard loop
Portfast + Features
STP PortFast (Edge Port)
Interface is moved directly to forwarding state, bypassing learning/listening without forward-
time delay (15sec x2)
This only happens when the port transitions from a disabled state, not from a blocking /
alternate state
PortFast ports will still transmit BPDUs, but will lose their PortFast state if a BPDU is
received
TCNs are not generated when a portfast port changes state (important)
o This means that connecting/disconnecting hosts on portfast ports will not lead to
STP topology re-calculations
Shown as P2P edge in the show commands
interface gi1/0/1
spanning-tree portfast
spanning-tree portfast disable
spanning-tree portfast trunk
disable - Use this in combination with spanning-tree portfast default to exclude certain
access ports from the default state
trunk - Enable PortFast on trunk ports (will also turn on portfast on access ports)
o PortFast on trunks works on a per-VLAN basis
o Can be off for certain VLANs but on for others (depending on root placement /
reception BPDUs for specific VLANs)
STP BPDUGuard
BPDUGuard supersedes PortFast and can be configured per port or globally
o Errdisables port if BPDU is received, can be automatically enabled with errdisable
recovery cause bpduguard
Global BPDUGuard is part of PortFast and will only be active if PortFast is also enabled
(operational)
o It is very important to understand that this is the operational state of PortFast, not
the administrative state (see PortFast above)
When configured on the port, BPDUGuard is enabled unconditionally and does not need
PortFast to function
int gi1/0/1
spanning-tree bpduguard enable
STP BPDUFilter
Filters BPDUs on the port in egress direction (global) or both directions (per interface)
Global BPDUFilter stops sending outgoing BPDUs on interfaces that have an operational
PortFast status
Will still sent 11 BPDUs when the interface comes online, this is to prevent
misconfigurations
PortFast enabled ports that receive BPDUs will lose their PortFast status, and thus global
BPDUFilter will also be disabled
BPDUFilter configured on the port itself will filter all incoming and outgoing BPDUs
This is the equivalent of turning off STP on the port
PortFast does not have to be enabled on the port for BPDUFilter to be active
int gi1/0/1
spanning-tree bpdufilter enable
This is a valid configuration that err-disables ports that receive BPDUs, and filters outgoing
BPDUs
BPDUFilter configured on the port itself will filter BPDUs in both directions, and will supersede
PortFast and BPDUGuard on the port
This is not a valid configuration because incoming and outgoing BPDUs will be filtered by
BPDUFilter
The guard never receives BPDUs and will never be triggered
Root Guard
STP Rootguard
Ignores superior BPDUs on specified ports, preventing rogue switches from becoming the root
Apply on interfaces that connect to switches that should never become the root
Allows interface to participate in STP but will trigger when superior BPDUs are received
o Rootguard ignores superior BPDUs and will put a port in a 'root-inconsistent' state
(except MST)
o This state does not allow sending or receiving of data, only BPDUs (basically the
listening state)
o This state is automatically cleared when superior BPDUs stop
In MST the port does not become root-inconsistent, but is forced to become a designated
port
Not VLAN-aware, enabled for all VLANs present on the port
o Cannot be enabled globally, disabled by default
Do not enable the root guard on interfaces to be used by the UplinkFast feature
o When combined with UplinkFast the blocking ports will go to root-inconsistent state
instead of forwarding state
int gi1/0/1
spanning tree guard root
RSTP (RPVST+)
Rapid Per-VLAN Spanning Tree Plus RPVST+ (Cisco / 802.1W)
The + means that the STP instance is backwards compatible with IEEE standard STP
o Per-VLAN instances appear as one instance to non-cisco switches
RSTP uses BPDU version 2 instead of version 0 in the Message Type field, to distinguish from
802.1D STP
Will start speaking 802.1D STP on links if detected for backwards capability
o These links will show as P2P Peer (STP) in show spanning-tree
BPDUs are sent out every switch port at hello time intervals,
o This happens regardless of whether BPDUs are received from the root
o If three BPDUs are missed in a row, the neighbor is presumed down and is aged out
RSTP Synchronization
RSTP is not faster because of increased timers, but because of synchronization
o The synchronization process only works on ports that are P2P and full-duplex
o RSTP uses these ports to form a 'handshake' with the neighboring bridge, knowing
that there is only 1 device at the other end
RSTP detects a topology change only when a non-edge port transitions to the
Forwarding state, not when STP enabled ports go up or down
If the switch cannot support 1024 unique MAC addresses for its own use, the extended system
ID is always enabled by default
Otherwise, the traditional method is enabled by default
The actual priority of a default STP bridge for VLAN1 is 32768+1 = 32769 and so on
Root Allocation
spanning-tree vlan vlan-list priority bridge-priority
Root primary
If the current root priority is more than 24576, the local switch sets its priority to 24576
(32768 - 2 x 4096)
If the current root priority is less than 24576, the local switch sets its priority to 4096 less
than the current root
o Does not work if the current root has a priority of 4096, use the priority 0 command
instead
Root secondary
Does not detect other potential root bridges and will blindly set the priority to 28672
(32768 - 1 x 4096)
Diameter
You can view this as just a simple hop count of how large the switching domain is
Default value is 7, range is 1-7
All this applies to is the automatic configuration of the hello-timer based on the network
diameter
By default the lower port-ID (gi1/0/23) on the root will be used as the active path
Influence this decision by lowering the priority on gi1/0/24 on the root, or increasing the
priority on gi1/0/23 on the root
Influence this decision by lowering the cost on gi1/0/23 on the non-root, or increasing the
cost on gi1/0/24 on the non-root
Root
interface gi1/0/24
spanning-tree port-priority 64
Non-root
interface gi1/0/24
spanning-tree cost 2
The .23 under the priority number is the port id (priority + interface number)
STP Types
Spanning-Tree Protocol (STP) Types
STP Type Abbreviated Standard Description
Multiple Spanning MST 802.1S Groups multiple VLANs into STP regions
Tree Backwards compatible with other STP
types (boundary)
Switching Features
Bridge Groups
Bridge Groups (Fallback Bridging)
Allows non-IP traffic to be communicated between hosts that reside in different VLANs or
are connected on routed ports
SVIs allow hosts in different VLANs to communicate using IP addressing. Bridge groups
extends this functionality to L2 as well
Can only be applied to SVI interfaces or L3 routed ports (no switchport)
An actual IP address is not required to be configured on these SVIs or routed ports for
fallback bridging to work
bridge 1 protocol vlan-bridge
int fa0/0
no switchport
bridge group 1
int vlan 10
bridge-group 1
CDP
Cisco Discovery Protocol (CDP)
CDP messages (advertisements) are sent to the Cisco proprietary multicast address
0100.0ccc.cccc
o Messages are sent every 60 seconds by default
o The hold-timer is 3x the advertisement timer (180 seconds by default)
CDP carries various pieces of information in Type-Length-Value fields (TLVs)
CDP is enabled by default and will most likely be CDPv2 (see below)
CDP can be used for routing (see On Demand Routing / ODR section)
cdp timer 20
cdp holdtime 60
Clear CDP information
clear cdp counters
clear cdp table
Platform 12 Hardware
CDP can also transfer information regarding power discovery and PoE classes
You can customize which information gets sent to neighbors by creating custom TLV lists
Applies globally for all neighbors or per interface
Can only apply a single custom TLV list globally per device
VTP domain and native VLAN always seem to be included, regardless of limitation
(unverified)
cdp tlv-list list_name
tlv 1.
tlv 2.
interface
cdp filter-tlv-list list_name
interface gi1/0/1
cdp filter-tlv-list LIMIT
CDPv1 vs CDPv2
The version generally in use is CDPv2 which includes reporting that allows for more rapid error
tracking
CDPv2 also supports the following TLVs
o Duplex information
o Native VLAN information
o VTP domain information
CDPv2 Errors messages can be sent to the console or to a logging server, includes:
o Duplex errors
o Native VLAN mismatches
Go back to CDPv1
no cdp advertise-
v2
This stops CDP from reporting any errors on the link relating to duplex/native VLAN errors
o Even if it is disabled on one of the two neighbors, the error reporting will stop
CDPv2 packet
CDPv1 packet
CDP Output
The capabilities reflect those in the CDP packet capture and the output below:
Capability Short name
Router R
Switch S
Transparent Bridge T
Host H
IGMP capable I
Repeater r
CVTA C
Phone P
Remote D
Etherchannel (LAG)
Etherchannels (Link Aggregation Groups / LAG)
Bundle up to eight (active) links of the same type into a logical Link Aggregation Group
(LAG)
o 8x Fast Etherchannel (FEC) = throughput of up to 1600 Mbps (2 directions)
o 8x Gigabit Etherchannel (GEC) = throughput of up to 16 Gbps (2 directions)
o 8x 10-Gigabit Etherchannel (10GEC) = throughput of up to 160 Gbps (2 directions)
A multi-chassis Etherchannel (MEC) is a LAG divided between multiple members of a stack
Even though the (potential) throughput is 8 times higher, doesn't mean the speed is 8
times higher as well
o Load is shared between the links and this is not always done equally (depending on
algorithm)
Only one interface will be 'master in the bundle', contrary what show etherchannel detail
will show
o This interface is responsible for reception and transmission of STP frames
o The interface in the bundle with lowest port-id is usually the master in the bundle
Load-Balancing Algorithms
Traffic is not sent over multiple paths (ECMP) instead a link in the bundle is chosen
o This is basically load-sharing and is entirely dependent on the algorithm
o The algorithm is just a hash value based on the load-balancing method (default is
usually src-mac)
o Different traffic-types or network designs can lead to different algorithms
o Think about traffic paths (including return) when choosing the optimal algorithm
o Even if you chose the optimal pattern, hosts may use different amounts of traffic,
resulting in an imbalance
Simple algorithms use only a single piece of information to make a choice
o The same traffic will always use the same link
Complex algorithms use multiple pieces of information to make a choice
o The same traffic will always use the same link
Not all switches may support all load-balancing methods, largely dependent on platform
o When using ip-based hashing the switch will fall back to the next lowest method
when non-ip traffic is received
Neighboring switches do not have to match on load-balancing methods
Use show etherchannel port-channel to acquire an insight into the link utilization
Load-balancing Methods
Method Simple/Complex Choice made based on Hash
The complex load-balancing methods use a XOR operation to make a choice on which link to
take
Links are chosen based on the last bits in the hash
2-link etherchannels use only the last bit (0 or 1)
4-link etherchannels use the last two bits (00, 01, 10 or 11)
8-link etherchannels use the last three bits (000, 001, 010, etc.)
Simple load-balancing methods make a decision simply on the last bit value (0 or 1)
2-link Etherchannel
Value 1 Value 2 XOR Outcome Ethernet Link chosen
0 0 0 gi1/0/1
0 1 1 gi1/0/2
1 0 1 gi1/0/2
1 1 0 gi1/0/1
Example #1
Load-balancing method is source-destination-ip and two etherchannel links are used (gi1/0/1-2)
Source ip-address is 10.0.0.1
Destination ip-address is 172.16.0.254
Example #2
Load-balancing method is source-destination-ip and eight etherchannel links are used (gi1/0/1-
8)
Source ip-address is 10.0.0.1
Destination ip-address is 172.16.0.254
LACP
Link Aggregation Control Protocol (LACP)
16 interfaces can be bundled into a PAgP etherchannel, but only 8 will be active (see Hot-
Standby below)
LACP does not support half-duplex ports, half duplex ports will be put in suspended state
LACP frames (hello) are sent at a 30 second interval to the L2 multicast address
0180.c200.0002
Bundled interfaces need to match on:
o Speed
o Duplex
o VLANs
o Trunk / Access
Bundled interfaces do not need to match on
o STP cost (if hardcoded)
o Bandwidth (if hardcoded) - Port channel will be torn down at regular intervals
because bandwidth does not match
o LACP mode (active or passive)
LACP Suspended ports (not meeting above criteria) will transition to STP blocking ports
One switch will become the LACP master and one will become the slave
o This decision is based on the system-id (same as STP, mac-address + priority 32768
by default)
o Usually the winner of STP on the segment (with default config/priority) will also
become the LACP master
o Manually change the priority with the lacp system-priority global command (lower
priority is better)
The master decides which ports in the bundle are active and which are hot-standby (when
using 8+ ports)
LACP Hot-Standby
Additional links (up to 8) are placed in hot-standby mode to replace links that have
become inactive
o 16 interfaces total of which 8 are active, and 8 are hot-standby
o The decision on which links are active are based on port-id and priority (lower
priority is better)
o The master switch has control over which ports are active (master switch port-id is
used)
The priority is equal (32768) by default, meaning that the highest port-id's will become
hot-standby
lacp system-priority 0
Switch will become the master, interfaces gi1/0/9 - 16 will be active and gi1/0/1 - 8 will be
hot-standby
LACP Modes
Mode Description
You can mix and match different modes on interfaces in the same bundle
interface port-channel 12
switchport trunk encapsulation dot1q
switchport mode trunk
PAgP frames (hello) are sent at a 30 second interval to the L2 multicast address
0100.0ccc.cccc
Does not support Hot-Standby ports, PAgP port-priority settings have nothing to do with
standby interfaces
o Port-priority and learn methods are used for interoperability between different
platforms, not actual traffic distribution
PAgP Modes
Mode Description
You can mix and match different modes on interfaces in the same bundle
channel-protocol pagp
channel-mode 1-255 mode desirable | auto non-silent
interface po12
switchport trunk encapsulation dot1q
switchport mode trunk
interface port-channel 12
switchport trunk encapsulation dot1q
switchport mode trunk
int po1
link state group 1 upstream
int fa0/0
description SERVER
link state group 1 downstream
int fa0/0
switchport mode access
switchport access vlan 10
link state group 1 downstream
LLDP
Link Layer Discovery Protocol (LLDP)
Network discovery based on the IEEE 802.1ab standard
LLDP messages are sent to the multicast address 0180.cc00.0100
Similar in functionality to CDP, where no actual neighborships are formed
o Hosts simply advertise their status and receive neighbor status updates
o Unlike CDP, LLDP can be customized to only send or only receive data independently
Messages are sent every 30 seconds by default
o The hold-timer is 4x the advertisement timer (120 seconds by default)
LLDP carries various pieces of information in Type-Length-Value fields (TLVs)
LLDP is disabled by default and not supported on all Cisco platforms
o Enabling LLDP will also enable LLDP-MED
LLDP packet
You can customize which information gets sent to neighbors by specifying TLVs
By default all TLVs are used
Applies globally for all neighbors or limit certain TLVs per interface
interface
no lldp tlv-select 4-wire-power-management | power-management
no lldp med-tlv-select inventory-management
LLDP Configuration
interface gi1/0/1
no lldp transmit
lldp timer 20
lldp holdtime 60
LLDP Output
The local interface is the interface on the device
The port ID is the interface on the neighbor device
The capabilities reflect those in the LLDP packet capture and the output below:
Capability Short name
Router R
Station S
Telephone T
Other O
Repeater P
Access Point W
Mac Filtering
MAC Filtering
Disabled by default and only supports unicast static addresses
Multicast MAC addresses, broadcast MAC-addresses, and router MAC addresses are not
supported (forwarded to the CPU)
Only works on access-ports, L2 ACL takes precedence over L3 ACL
You cannot apply named MAC extended ACLs to Layer 3 interfaces
When filtering the same MAC-address that is also configured statically, the command
configured last is applied
int fa0/0
mac access-group MAC_ACL in
show access-lists
show mac access-group
Be careful when only permitting only certain addresses. MAC-addresses will time out and the
MAC ACL will block the ARP
To prevent this, also create static entries that match the ones permitted in the MAC ACL
int fa0/1
mac access-group MAC_ACL in
Macros
Switch Macros
Some switches come with in macros
o Show with show parser macro name macro-name command
End custom macros with the @ sign
$ values can be used as variables
Show the individual commands in the cli when the macro is running with the trace
keyword
Global macro
macro name ACCESS_PORT
default interface $int
interface $int
switchport mode access
switchport access vlan $vlan
switchport voice vlan $voice
no shut
end
@
Interface macro
macro name ACCESS_PORT
switchport mode access
switchport access vlan $vlan
switchport voice vlan $voice
int fa0/0
macro trace ACCESS_PORT $vlan 10 $voice 60
int gi0/0
switchport access vlan 30
switchport mode dot1q-tunnel
l2protocol-tunnel cdp
l2protocol-tunnel dtp
show dot1q-tunnel
SPAN
Switch-Port Analyzer (SPAN)
Basically copies the traffic from one port or VLAN (source) to another port (destination)
o SPAN that copies traffic from a VLAN is called VSPAN
o SPAN traffic will stay local on the switch (unless you use RSPAN or ERSPAN)
o Does not affect the switching of traffic on source ports (traffic is still forwarded)
o The destination port is dedicated for SPAN use and cannot be used for other
purposes (unless you use ingress keyword)
o The destination port line protocol will show as down and the port state is
(monitored)
SPAN will not be operational if the destination port is shutdown
SPAN does not monitor routed traffic
o VSPAN only monitors traffic that enters or exits the switch, not traffic that is routed
between VLANs
Source can be multiple ports or VLANs, but not both mixed in the same session
A maximum of two sessions (local or RSPAN) can exist on the same switch
Multiple source/destination ports can be combined into a single session
o An unlimited number of VLANs or source ports can be specified
o Allows up to 64 span destination ports per switch
Only a single session per destination port is allowed
o You cannot send multiple sessions to same port
o Even though STP/CDP/etc. can be copied to the destination port, the port will not
participate in STP/CDP
o An etherchannel cannot be the destination of a span session (it can be the source
however)
Does not capture traffic that is forwarded within the switch (Inter-VLAN)
Local SPAN does not copy locally sourced RSPAN and ERSPAN traffic
SPAN Source
monitor session session_number source interface interface_id | vlan vlan_id both | rx | tx
Copy traffic twice (ingress & egress) from the source interface
monitor session 1 source interface gi1/0/1
monitor session ... encapsulation replicate ingress dot1q vlan vlan_id | isl | untagged vlan
vlan_id | vlan vlan_id
The ingress keyword allows traffic from the monitoring station to enter the switch on the SPAN
destination port
This setting allows the monitoring station (or another switch) to still access the network
The traffic arriving on the destination port will be encapsulation with either dot1q, ISL or a
VLAN-id
ingress dot1q vlan - Incoming traffic will be encapsulated as 802.1q with the specific VLAN-id
ingress isl - Incoming traffic will be encapsulated as ISL
ingress untagged | vlan - Incoming traffic will be not be encapsulated and sent untagged with
the specific VLAN-id
The destination port line protocol will show as down and the port state is (monitored)
SPAN Filtering
All VLANs active on the trunk are monitored by default
Use filtering to only capture specific VLANs or subnets (using ACL)
o Can only be done on trunk or voice VLAN ports
o Filtering using ACL is called Flow-based SPAN (FSPAN)
VLAN filtering affects only traffic forwarded to the destination SPAN port
o Meaning that all traffic is still captured, however only the filtered traffic is sent to the
destination
RSPAN workings
1. The traffic is sourced from a port on the local switch
2. The traffic is sent to the RSPAN-VLAN and forwarded to a remote switch
3. The remote switch sources the traffic from the RSPAN-VLAN
4. The remote switch sends the traffic to a local destination port
All participating switches must support RSPAN and must have the RSPAN-VLAN configured
RSPAN-VLAN
The RSPAN-VLAN must be dedicated with the remote-span keyword under the VLAN
configuration
o VTPv3 can propagate RSPAN-VLAN information to other switches (not extended-
range)
o No mac-address learning occurs on the RSPAN-VLAN
o Cannot be a primary or secondary private-VLAN
The RSPAN-VLAN only flows over trunk ports, you cannot create an access-port in the
RSPAN-VLAN
o By default the RSPAN-VLAN is active on all trunk ports, so traffic will be flooded on
all trunks
o Either manually prune the RSPAN-VLAN from trunks where it is not needed or use
VTP pruning
o Remember that VTP pruning only works for VLANs 2-1001, so if your RSPAN-VLAN is
in the extended-range it will not be pruned
vlan vlan_id
name RSPAN-VLAN
remote-span
vlan 999
remote-span
remote vlan - The RSPAN vlan dedicated earlier with the remote-span keyword in the VLAN
configuration
reflector-port - The resources of this port are 'borrowed' in order to copy traffic to the RSPAN-
VLAN
The reflector port cannot be used for any other purpose, however it must be online and
connected
The reflector port is set to loopback mode and will not be able to send or receive traffic
Not needed/present on switches that have enough resources available without having to
sacrifice a port
remote vlan - The RSPAN vlan dedicated earlier with the remote-span keyword in the VLAN
configuration
Though visible in the cli, encapsulation replicate is not supported for RSPAN
o The original VLAN-id is overwritten by the RSPAN-VLAN-id (untagged)
o See SPAN section for more information about encapsulation replicate
The destination port also supports the ingress keyword
o This allows traffic from the monitoring station to enter the switch on the SPAN
destination port
o See SPAN section for more information about ingress
RSPAN Configuration
vlan 999
remote-span
UDLD
Protecting Against Sudden Loss of BPDUs
Loopguard and UDLD protect against a sudden loss of BPDUs from a neighboring bridge
This can be dangerous because switches might (falsely) think that a topology changed has
happened
This behavior can lead to bridging loops when there is no actual TCN and the BPDUs are
just delayed / timed out
UDLD is a better option for etherchannels, because it can block the individual ports
Protects from
Unidirectional links
Switches/links that block BPDUs
UDLD Modes
Mode Keyword When unidirectional link is detected
Timers do not have to match between neighbors, all that is needed is that a new hello is
received before the expiration time
o Detection interval (Expiration time) is 45 sec by default
o The target time must be less than the Max Age timer plus two intervals of the
Forward Delay timer, or 50 seconds
UDLD Configuration
interface gi1/0/1
udld aggressive
Fast UDLD in enable mode
udld fast-hello error-reporting
interface gi1/0/1
udld fast-hello interval 500
Re-enable ports
udld reset
Or
errdisable recovery cause udld
Ethernet Cabling
Naming Conventions
T = Twisted pair copper cable
F = Optical cable (Fiber)
L = Long range single- or multi-mode fiber
S = Short range single- or multi-mode fiber
C = Balanced copper cable
X = Coding method
Speed Types
10 Mb/s (IEEE 802.3)
10BASE-T
Half-duplex
Hierarchical Design
Hierarchical Network
A L2 switch is a transparent bridge, or a multiport transparent bridge
VLANs and broadcast domains converge here and L3 filtering/routing/policies are applied
Switches used here must be capable of high throughput routing and are a L3 boundary between
VLANs
Do not extend L2 beyond the D layer
D layer should always be the boundary of VLANs, subnets and broadcast traffic
Modular Design
Linking all A switches to all D switches can quickly become disorganized
The solution is to create switch blocks
Switch Block
A group of A and D switches
Also called an access distribution block
The C layer connects all the switch blocks
Links between D and C switches should preferably be L3
A dual core or redundant core is a C layer of two identical switches
o A multi-node core is a C layer of four identical switches
A switch block will reduce overall redundancy but will create a more logical designed network
that is organized
The size of a switch block is dependent on traffic-types, behavior and size of
workstations/VLANs
The amount of D switches in a switch block depends on the amount of A switches / port
density needed
o The number of D switches is usually 2
If a switch block is too large the D layer becomes a bottleneck due to the large amount of inter-
VLAN traffic / policies / security checks
Another issue is the propagation of broadcast and multicast traffic to many destinations
VLAN Design
Ideally, you should not allow VLANs to extend beyond the Layer 2 domain of a distribution
switch
The VLAN should stay inside a switch block and NOT reach across a networks core and
into another switch block
The idea again is to keep broadcasts and unnecessary traffic movement out of the core
block
VLANs can be scaled in the switch block by using two basic methods:
End-to-end VLANs (campus-wide VLANs)
Local VLANs
End-to-end VLANs
Span the entire switching network
Offers Flexibility and mobility where users can plug in their device in any access switch
Follows the 80-20 rule
Older-style design where many resources (servers/applications) were available in the local
network
Easy management of users
Characteristics:
End-to-end VLANs are present on core switches
Users are grouped into a VLAN based on function, not location
Users can plug in their device in any access switch and be assigned their respective VLAN
(requires VMPS/dot1x/etc.)
Issues:
End-to-end VLANs are present on core switches, leading to an increase in broadcast traffic
Possibility of bridging loops
Large STP domain and many blocking links
Does not scale well
Complex troubleshooting
Local VLANs
Only present on the local switch
Users cannot receive the same VLAN when they plug in at different parts of the network
o However resources are usually located outside of the network, so this does not
matter as much
Follows the 20-80 rule
Newer-style design where many resources (servers/applications) are available outside the
local network
Characteristics:
VLANs are not present on core switches
Users are grouped into a VLAN based on location, not function
Scales well
Easy troubleshooting
Resources are accessed outside of the local network
Layer 3 links between switches
Almost non-existent STP domain
No possibility of bridging loops
Decreased broadcast traffic
Issues:
Possible security issues if users are no longer segmented
May need to configure many PACLs/ACLs in order to achieve segmentation
MAC / (T)CAM
Flooding & Learning
L2 traffic is divided into 3 categories:
Unknown unicast
o Flooded on all ports except the port it was received on
o Mac-address of source is learned and stored in CAM table (mac-address table)
o After successful communication between two hosts, the switch should have
dynamically learned two source mac-addresses and associated VLANs + interfaces
o Example traffic is when a frame is received with source + destination but it is not
known to the switch (not in the mac-address table)
Unknown multicast
o Flooded on all ports except the port it was received on
Unknown broadcast
o Always flooded on all ports except the port it was received on
o Example traffic types is ARP or Gratuitous ARP
Learning
All interfaces and VLANs can learn MAC-addresses
It is possible to disable learning for specific VLANs
The amount of masks and values supported in TCAM depend on the switch hardware and the
SDM template
PoE
Power over Ethernet Modes & Standards
PoE mode / standard Naming Output Proprietary
Cisco Inline Power (ILP) is a proprietary method that was developed before the IEEE
standards (Around 2000)
o ILP only supports BASE10/100 (Ethernet + FastEthernet) cabling
The first standardized form of PoE was in 2003 (802.3af by the IEEE)
PoE+ was standardized in 2009 (802.3at by the IEEE)
PoE++ is an upcoming standard supposed to be standardized somewhere in 2017 (802.3bt
by the IEEE)
Terminology
Power Sourcing Equipment (PSE) - A network device (switch) that provides the power
Powered Device (PD) - A network device (phone / access-point / etc.) that requires power
Active The PSE and PD negotiate the voltage that the PD Yes Unlikely
needs
The PD is placed in a power class (see below)
The passive/active naming convention is confusing because it implies that passive PoE is
not always on
The naming relates to the negotiation of PoE:
o Active PoE devices negotiate the amount of power (voltage) that is required
o Passive PoE devices do not negotiate anything
GigabitEthernet (unlike FastEthernet) uses all 4 pairs of the cable. However it is still compatible
with mode B
The spare pairs in this case will be the pairs that would be spare if the cable was running at
10/100 speed
1 Optional 0.443.84W 4W
2 Optional 3.846.49W 7W
3 Optional 6.4912.95W 15.4W
- UPoE - 60W
Default class (0) is used if the powered device does not support power class discovery and
provides 15.4W
o This is usually the default power output provided by 802.3af
If a device requires more power (30W) it will inform the switch trough LLDP or CDP
(Requires 802.3at support)
PoE Configuration
interface
power inline auto | never | static max max_wattage (milliwatts)
auto - The PD can request the amount of power needed through CDP or LLDP
The PSE will deliver power up to the maximum of 30W (as long as there is power available
and the PSE is not oversubscribed)
You can customize the maximum amount of power with the max keyword
static - The PSE will deliver a fixed amount of (maximum) wattage and no negotiation is
performed (basically passive PoE)
If the PD requires less power than is delivered, no adjustment is made
If the PD requires more power than is deliver, the port is shutdown
never - The PSE disables PoE on the port and power is never delivered
max - Sets the maximum wattage (in milliwatts) on the specific port
The range is 4000 to 30000 mW
The default value is the maximum (30000 mW or 30 W)
Ports gi1/0/1-12 will negotiate the PoE settings / wattage and will be limited to 25.5 W
maximum
Ports gi1/0/13 - 24 will not negotiate the PoE settings / wattage and will be limited to 15.4
W maximum
Fast PoE
interface
power inline port poe-ha
The PSE remembers the last known power negotiation on the port
After the PSE recovers after a reboot (or power-failure) it will immediately provide the last
known wattage on the port
o This allows devices to boot up faster after a power failure, but could also crash the
PSE again in case of oversubscription
Police PoE
interface
power inline police action log | errdisable
log - Generate a syslog message if the wattage exceeds the maximum power allocation on the
port (but continue providing power)
errdisable (default) - Shuts down the port if the wattage exceeds the maximum power
allocation on the port (30 W by default)
You can automatically recover errdisabled ports with the errdisable recovery cause
inline-power global command
o The errdisable detection of PoE events is on by default (errdisable detect cause
inline-power) and the recovery interval is 300 seconds by default
SDM Templates
Switching Database Manager (SDM) Templates
Configure system resources in the switch to optimize support for specific features
Different templates allocate resources in a different manner
Requires reload in order to apply new template
Access Maximize system resources for ACLs More access control entries (ACE)
Less unicast routes and mac-
addresses
Dual-IPv4-and- Supports IPv6 routing (disabled by More unicast routes for IPv4 and
IPv6 default) IPv6
Less overall mac-addresses and
ACEs
RPR Route Processor Partially booted Standby must reload every >2
Redundancy Partially other module minutes
initialized Standby must initialize all
supervisor functions
SSO Stateful Switchover Fully booted Standby immediately takes > 1 second
Supervisor over
initialized L2 is already synced
Route engine L3 functions are started (see
initialized NSF below)
Configs synced
L2 synced
redundancy
mode rpr | rpr-plus | sso
Supported protocols:
BGP
EIGRP
OSPF
IS-IS
StackWise
StackWise
StackWise uses a closed stacking loop (stacking ring)
o All switches are connected in series and the last switch in the chain connects back to
the first switch
o This design makes it possible to add and remove switches from the stack, without
interruption
o Removes the need for a FHRP protocol
StackWise Master & Slaves
One of the switches in the stack will become the stack master
This switch holds the control plane and management functionality
All the other switches become slaves and only forward frames
o Depending on the platform, up to nine switches (including the master) can be part of
a stack
o The master is indicated with a * in show switch (see below)
When a switch is added to the stack, it will receive the config and image from the master
The mac-address table of the new switch is also updated to reflect all the other members
Each switch is aware of all other switchports and mac-address tables
If you power on two identical switches with default configuration at the same time, the decision
will probably fall back on the lowest mac-address
Time delay after a stack-master change before the stack MAC address changes to that of the
new master
Default timer is 4 minutes
If you configure 0, you disable the mac-address change (old master mac-address will be
used indefinitely)
o This will not change until manual intervention with no stack-mac persistent timer
switch stack-member-number renumber 1-8
Stack Cabling
Cisco uses special proprietary cables for stacking (Cisco StackWise Technology Resilient Cabling)
Supports up to 16 Gbps in both directions (32 Gbps bi-directionally), depending on
platform
When switches are connected in a ring, the most optimal path is chosen to the neighbor
switch
o This is done through QoS, which prefers the link with the lowest bandwidth load
VSS
Virtual Switching System (VSS)
Combines two (only two) physical switches into a logical switch (stack)
VSS is supported on platforms such as the catalyst 4500/6500
Removes the need for a FHRP protocol
One switch will be active and the other will be standby
Virtual Switch Link (VSL) is an etherchannel between two chassis with up to 8 links
Requires the usage of two port-channel (Po) interfaces (1 for each chassis, remember they
are combined)
o Supports only 10 Gb/s ethernet ports
o 8x 10-Gigabit Etherchannel (10GEC) = throughput of up to 160 Gbps (2 directions)
o Supports LACP / PAgP and static LAGs
Carries control and data traffic between active and passive chassis
o Control traffic has a higher priority than data so that they are never lost
o Data traffic is load-balanced using the port-channel load-balancing method
All traffic that flows over the VSL is encapsulated with a special 32-byte header (so it is very
similar to ISL)
o Traffic needs to traverse the VSL if it is flooded, or a packet destination is only
plugged into one of the two chassis
VSS Configuration
virtual domain - Basically defines the two chassis as neighbors and must match on both sides
switch - Identifies the switch in the chassis and must be unique
The chassis with number 1 will become the active switch, and number 2 will become
passive
o The above is true, unless you configure the switch priority as well
priority - Lower priority is better, a chassis with number 2 with a lower priority will become
active
This change can only happen on a reload of the VSS or if you enter redundancy force-
switchover
VSS does not preempt if you configure a new priority, unless you force it with the
command above
switch virtual link - defines the chassis number (created in the virtual domain above) to be the
owner of this port-channel
Both active and passive chassis need to use a DIFFERENT port-channel interface
CSW1
redundancy
mode sso
router ospf 1
nsf
switch virtual-domain 12
switch 1 priority 100
interface po10
switch virtual link 1
CSW2
redundancy
mode sso
router ospf 1
nsf
switch virtual-domain 12
switch 2 priority 100
interface po20
switch virtual link 2
interface range te2/0/1 - 2
channel-group 20 mode on
In order to prevent this, the switches must be able to detect a dual-active scenario
This detection is achieved by using communication methods outside of the VSL link
For example, the communication between the active/standby chassis can be done through
other switches that connect to the VSS
There are three methods to detect a dual-active scenario (all three communicate via other
switches/links):
o Enhanced PAgP - Both chassis communicate with each other via PAgP over the MEC
links to neighboring (distribution) switches
o BFD - Connect a separate ethernet link between the two chassis which will run
Bidirectional Forwarding Detection (BFD)
o Dual-Active Fast Hello - Sends hello-messages over a separate ethernet link between
the two chassis (similar to BFD, but faster)
You can configure all methods at the same time
o Cisco recommends to use at least two ports for the backup ethernet links (using one
or more of the above methods)
During Recovery
If the VSL connection goes down, the active switch will be informed over the backup
connection and will go into recovery mode
o In this mode, all ports on the active chassis except the VSL ports are shut down (err-
disabled)
o The switch will wait until the VSL comes back online
o If it detects that the VSL is back online, the switch will reload and come back as the
standby switch with all ports forwarding
The standby switch will initiate SSO and will become the active switch
o All ports on the new active switch will be placed in the forwarding mode
Shutting down all ports in case of recovery may lead to unwanted results
For example, certain ports may be used for management or other L3 services
You can exclude ports from being err-disabled by configuring exclusion lists
Another action you can take is creating a backup management address (recovery ip) for the
active switch
When the active switch is in recovery mode, the standby (new active) will receive
connections for the management ip
Configure a recovery ip to still manage the previous active switch
interface po3
shutdown
interface po3
no shutdown
The show pagp dual-active command displays the same information as show switch virtual
dual-active pagp
interface gi1/0/24
no switchport
ip address 169.254.12.1 255.255.255.252
bfd interval 500 min_rx 500 multiplier 3
interface gi2/0/24
no switchport
ip address 169.254.21.1 255.255.255.252
bfd interval 500 min_rx 500 multiplier 3
interface gi1/0/23
dual-active fast-hello
interface gi2/0/23
dual-active fast-hello
802.1X (Port-Authentication)
Port-Based Authentication (802.1X / dot1x)
Traffic is only forwarded after user has authenticated to the switch (aaa server)
802.1x uses Extensible Authentication Protocol over LANs (EAPoL)
o 802.1x can be combined with DHCP snooping option 82 to insert dot1x information
into the DHCP packet
802.1x requires the client to supply a username and password, verified by a RADIUS server
Only RADIUS authentication (in combination with dot1x) is supported on IOS
o Multiple RADIUS servers can be defined to service requests
o Servers are consulted in the order in which they were configured (see aaa radius
section)
Only a single host is expected per switch-port (default)
o Override this behavior using the dot1x host-mode multi-host interface command
o This setting is useful when a switch connects to another access-switch with clients
When a client connects, initially only 802.1x (l2) traffic is allowed between the switch and client
Only after authentication is successful can other protocols start communicating
o This includes ip-addressing information (DHCP), which will be blocked
Both the client and the switch can initiate the session
o The authenticated session ends when the client sends a termination request, or the
port is timed out
Radius servers do not speak EAPoL (they do support EAP) and clients do not understand
RADIUS
o The switch acts as a translation device (relay) between EAPoL and RADIUS
o The ethernet header (oL) is stripped and the EAP frame is encapsulated in a radius
packet
If 802.1x authentication times out the switch can fallback to another authentication method
If configured, the switch can fallback to:
o Mac-Authentication Bypass (MAB) - Switch relays client mac-address to the server for
authorization
o Web-Based Authentication (WEBAUTH) - Switch presents client with a splash page
(HTTP) asking for credentials
If not configured, the request will time-out and the client is never authenticated
interface
dot1x pae authenticator | supplicant | both
The switch can act as an authenticator (default) or as a dot1x client (supplicant), or both at the
same time
PAE stands for Port Access Entity
802.1X Host-Modes
Host Description # of allowed mac-
modes addresses
interface
authentication host-mode multi-auth | multi-domain | multi-host | single-host
interface
dot1x host-mode single-host | multi-host | multi-domain
Protect Traffic from violating hosts is dropped Port will automatically resume after
No record of the violation is kept violations stop
Restrict Traffic from violating hosts is dropped Port will automatically resume after
Record of the violation is kept violations stop
Switch can send a SNMP trap and/or
syslog message
Replace Removes the current session and Port will change to authenticate new host
authenticates with the new host
You can configure err-disable recovery to automatically bring up disabled ports with the
errdisable recovery cause security-violation global command
interface
authentication violation shutdown | replace | protect | restrict
aaa new-model
You can also define custom radius groups (see aaa radius section)
Each server is polled in the order in which they were configured
dot1x system-auth-control
interface
authentication port-control force-authorized | force-unauthorized | auto
802.1X Re-Authentication
interface
authentication periodic
authentication timer reauthenticate | inactivity 1-65535 seconds
interface
dot1x reauthentication
dot1x timeout reauth-period seconds
802.1X Guest-VLAN
The switch can put non-speaking clients into a special purpose VLAN
o Used to provide access to clients that do not support dot1x (do not respond to
switch queries)
o Guest-VLAN is not implemented by default
All VLANs are supported except:
o RSPAN VLAN
o Primary private-VLAN
o Voice VLAN
Not supported on trunk ports, only on access
interface
authentication event no-response action authorize vlan vlan-id
interface
dot1x guest-vlan vlan-id
802.1X Restricted-VLAN
The switch can put unauthenticated clients (who failed authentication) into a special
purpose VLAN
o Used to provide access to guest-clients that do not have credentials in order to
provide limited connectivity
o You can set the failed authentication attempts needed before a client is placed in the
restricted-VLAN
o Restricted-VLAN is not implemented by default
A port in the restricted VLAN tries to reauthenticate the client at configured intervals
o Reauthentication (for restricted VLAN, not normal) is enabled by default on a 60
second timer
o If disabled, the only way client can reauthenticate is by a link-down event
(unplugging/re-plugging the host machine)
All VLANs are supported except:
o RSPAN VLAN
o Voice VLAN
Not supported on trunk ports, only on access
interface
authentication event fail retry 0-5 retries action authorize vlan vlan-id
Default is 2 retries
interface
dot1x auth-fail vlan-id
dot1x auth-fail max-attempts 0-3 attempts
Default is 3 attempts
interface gi1/0/1
switchport mode access
switchport access vlan 10
authentication port-control auto
authentication event fail retry 2 action authorize vlan 100
authentication host-mode multi-auth
authentication periodic
authentication timer reauthenticate 3600
interface gi1/0/1
switchport mode access
switchport access vlan 10
dot1x port-control auto
dot1x pae authenticator
dot1x host-mode single-host
interface gi1/0/1
switchport mode access
switchport access vlan 10
switchport voice vlan 60
dot1x port-control auto
dot1x pae authenticator
dot1x host-mode multi-domain
dot1x guest-vlan 100
dot1x reauthentication
dot1x timeout reauth-period 3600
DHCP Snooping
DHCP Snooping
DCHP snooping inspects DHCP traffic to make sure no rogue switches can be installed on
the network
An access/trunk port connected to a switch can either be untrusted (default) or trusted
o Only trust ports where DHCP servers are located
o Untrusted ports can be rate-limited, to limit the amount of DHCP messages can be
sent per second
The switch basically acts as a DCHP relay, inspecting and inserting options into the packet
o Any packets that have the gateway address (giaddr) set will be dropped, unless the
port is trusted for relaying (see below)
o If the DHCPDISCOVER originated on the host, the giaddr is 0.0.0.0, this will not be
altered by the snooping switch
o The switch also inserts the snooping information option 82
When this DHCPDISCOVER arrives at the DHCP server, it will arrive appearing to be relayed
(option 82) but will not have a set giaddr
o On Cisco IOS DHCP servers, this is not a valid packet and will be dropped (other
platforms may behave differently)
DHCP Option 82
DHCP option 82 (relay information option) identifies hosts by both the mac-address and
the switchport
o Insertion is enabled by default on snooping switches, disabled by default on DHCP
servers/relays
o It allows DHCP relays to inform the DHCP server where the original request came
from
There are two ways the information option 82 is inserted in a DHCP packet:
ip dhcp relay information option
By default the information in this table is stored in volatile memory, meaning it will be
cleared on a reboot
o It may be preferable to store the database in a persistent storage location (remote or
local)
write-delay - The entries are batched together and written in one action, the delay specifies
how long the switch waits before writing (300 sec default)
timeout - If the write action fails to complete the transfer in this period, it will be aborted (300
sec default)
Override with
no ip dhcp snooping verify mac-address | no-relay-agent-address
Snooping Switch
ip dhcp snooping
ip dhcp snooping vlan 10
no ip dhcp snooping information option
interface gi1/0/1
description DHCP_SERVER
ip dhcp snooping trust
interface gi1/0/2
description DHCP_CLIENT
switchport mode access vlan 10
ip dhcp snooping limit rate 10
debug ip dhcp snooping packet
DHCP server
interface vlan 10
ip dhcp relay information trusted
Or
ip dhcp relay information trust-all
Configure these options when not disabling the ip dhcp snooping information option
on the switch
service dhcp
ip dhcp snooping
ip dhcp snooping vlan 10
no ip dhcp snooping information option
interface gi1/0/1
description TO_CSW2
switchport mode trunk
interface gi1/0/2
description DHCP_CLIENT
switchport mode access vlan 10
interface vlan 10
description DHCP_RELAY
ip address 10.0.0.1 255.255.255.0
ip helper-address 172.16.0.100
ip dhcp snooping
ip dhcp snooping vlan 172
interface gi1/0/1
description TO_CSW1
switchport mode trunk
interface gi1/0/2
description DHCP_SERVER
switchport mode access vlan 172
ip dhcp snooping trust
ARP Verification
By default only ip/mac-address bindings in the ARP reply are verified
o Basically, only the ARP message is inspected which is encapsulated in a packet >
frame
o The extra options also verify the information present in the packet and frame
Can verify one or more of the following:
Destination mac-address in frame containing ARP reply
Source mac-address in frame containing ARP reply
Destination ip-address in packet containing ARP reply
Source ip-address in packet containing ARP reply
ip - Compare the ip information in the ARP reply against the information in the IP packet
src-mac - Compare the source mac-address in the ARP reply against the one in the Ethernet
header
dst-mac - Compare the destination mac-address in the ARP reply against the one in the
Ethernet header
ARP Rate-Limiting
ip arp inspection limit rate pps burst interval seconds
ip arp inspection limit none
rate - Max mount of incoming arp packets that are processed per second, range is 0-2048
(default is 15)
burst interval - The interval at which the port is monitored for high rates of ARP packets
(default is 1)
none - Set the max amount to unlimited
DAI Configuration
Switch CSW1
ip dhcp snooping vlan 10
ip arp inspection vlan 10
interface gi1/0/1
description CSW2
switchport mode trunk
ip arp inspection trust
interface gi1/0/2
description CLIENT
switchport access vlan 10
ip arp inspection limit rate 10 burst-interval 2
IP Source Guard
IP Source Guard
Checks the source IP address of received packets against the DHCP snooping binding
database
If the source address does not match an entry in the binding database, it will be dropped
o Requires DHCP snooping in order to function
o If a client tries to send traffic without a DHCP received address, it will be dropped
o Clients using static ip-addresses need to be specifically allowed with custom entries
(see below)
IP source guard is a port-based feature that automatically creates an implicit (dynamic)
port access control list (PACL)
o Only supported in the ingress direction on L2 ports (cannot configure source guard
on routed port)
o Not supported on private-VLANs
Optionally extend the functionality by also verifying the source mac-address with the port-
security keyword
o In this case the source mac-address must be identical to the learned address (in the
CAM and DHCP snooping table)
interface
ip verify source port-security
interface
access-group mode merge | prefer port
ip dhcp snooping
ip dhcp snooping vlan 10
interface gi1/0/2
switchport access vlan 10
ip verify source
interface gi1/0/3
switchport access vlan 10
ip verify source port-security
In this case the 230.255.124.2 and 227.127.124.2 lead to exactly the same L2 address
A 2nd byte of 255 or 127 will always result in the same value
IPv4 address 1st byte 2nd byte 3rd byte 4th byte L2 address
ip igmp snooping
ip igmp snooping vlan 10
ip igmp snooping vlan 1 static 01-00-5E-7F-7C-02 interface fa0/0
int fa0/0
ip igmp filter 1
PIM Snooping
IGMP Snooping only limits traffic to and from hosts, PIM Snooping also limits traffic to
mrouters
Limits multicast traffic to interfaces that have downstream receivers joined to the same
multicast group
Listens to PIM hello, join, forward-election and prune messages
Requires IGMP snooping and is applied on VLAN SVIs
interface vlan 10
ip pim snooping
IPv6 Security
Destination Guard
Destination Guard
Destination Guard is a "last hop" security feature, the last hop router is the only one that is
heavily impacted
Interim routers don't have to NS for the final destination, they just CEF-switch the packet
Needed because of the size of /64 IPv6 subnets and the possible amount of destinations
ipv6 destination-guard policy DESTINATION_POLICY
enforcement always | stressed
vlan configuration 1
ipv6 destination-guard attach-policy DESTINATION_POLICY
The stressed option will only enable Destination Guard during high usage
Default is always
DHCPv6 Guard
DHCPv6 Guard
Trust all ports but require matching on link-local source and address range reply
ipv6 prefix-list TRUSTED_PREFIX permit 2001:10:0:12::/64 le 128
ipv6 access-list TRUSTED_SERVER
permit ipv6 host FE80::1 any
vlan configuration 1
ipv6 dhcp guard attach-policy DHCP
Or
interface vlan 1
ipv6 dhcp guard attach-policy DHCP
ND Inspection
Control plane feature only, it doesn't inspect actual data traffic and only looks at ND ICMP
packets.
Builds a table based on NS/NA messages. It then enforces the table.
If there is a link local address on the network, the switch will send a NS from the IPv6
address.
If there isn't an IPv6 address on the VLAN (L2 switching only), it will send an NS from the
IPv6 unspecified address.
ND Tracking Policy is optional when enabling ND Inspection.
Tracking is basically IP SLA echo only with ND packets. And is useful for two reasons:
o Since the table is first-come first-serve, this frees up address space if it's actually not
in use.
o It allows for a host to move ports by aging out information.
vlan configuration 1
ipv6 nd inspection
show ipv6 neighbor binding
vlan configuration 1
ipv6 nd inspection attach-policy ND_POLICY
IPv6 Snooping
IPv6 Snooping
Builds the neighbor database, similar to IPv6 ND inspection
Glean ports are trusted ports
The difference is that it uses and enforces more methods all at once
It can use:
o Information from DHCP (Default)
o Information from ND (Default)
o Static bindings
vlan configuration 1
ipv6 snooping attach-policy UNTRUSTED_HOSTS
int gi1
ipv6 snooping attach-policy TRUST_ROUTER
vlan configuration 1
ipv6 source-guard
RA Guard
Router Advertisements (RA) Guard
Apply on ports that should not receive router advertisements (RAs)
In other words, another router should not be present on the link
Configure on the switch to allow only RA from a single router on the specified port
int fa0/0
description TRUSTED_ROUTER_PORT
ipv6 nd raguard attach-policy ROUTER
Block all other RAs from other sources on the specified VLAN
ipv6 nd raguard policy HOSTS
device-role host
Or
interface vlan 1
ipv6 nd raguard attach-policy HOSTS
The ipv6 snooping logging packet drop command is needed for logging untrusted RA
messages
RA Guard PACL
It is also possible to configure the concept of RA Guard using a PACL to block unwanted
RAs
The undetermintedtransport keyword must be included to capture all unwanted traffic
int fa0/0
description UNTRUSTED_PORT
ipv6 traffic-filter RA_PACL in
PACL
PACL / VACL Order of Preference (Interaction)
Direction Order
Ingress Direction PACL is applied first
If packet is permitted by PACL, the VACL is consulted
If packet is permitted by VACL, access-list on L3 VLAN interface is
consulted
interface
access-group mode merge | prefer port
interface
mac access-group acl-name in
ip access-group acl-name in
interface gi1/0/1
switchport mode access
switchport access vlan 10
ip access-group ICMP_HOST1 in
mac access-group MAC_HOST1 in
interface vlan 10
ip add 10.0.0.1 255.255.255.0
no shutdown
Port Security
Port-Security
Control port access based on host source mac-addresses
Prevents users from plugging in (unmanaged) switches
o Define how many mac-addresses can be learned on a specific port
o Optionally statically define the source mac-addresses that are allowed to connect
The port does not forward packets that do not conform
o Can also be configured to err-disable ports or send SNMP traps when violations
occur
Protect Traffic from violating hosts is Port will automatically resume after
dropped violations stop
No record of the violation is kept
Restrict Traffic from violating hosts is Port will automatically resume after
dropped violations stop
Record of the violation is kept
Switch can send a SNMP trap and/or
syslog message
Port-Security Configuration
Can only be configured on static access ports or trunk ports, not dynamic (DTP) ports
Not supported on Private-VLAN ports
When using the voice VLAN, set the maximum number of MAC-addresses for both the
access and voice VLAN
interface
switchport port-security
If you try to configure this on a DTP port, you will get the error message Command
rejected: Ethernet0/1 is a dynamic port
Default is aging absolute with a time of 0, this means the secure-mac-address never times
out
interface gi1/0/1
switchport mode access
switchport access vlan 10
switchport port-security
The dynamic mac-address in the CAM table will turn into a static address and will never time out
maximum - Specify the maximum mac-addresses that can be learned on the port (default is 1)
Detect violations
interface gi1/0/1
switchport mode access
switchport access vlan 10
switchport port-security
switchport port-security maximum 1
switchport port-security mac-address 0000.0000.0001
switchport port-security violation restrict
Clear dynamically learned mac-addresses on a port (allow other host to use the port)
This can be used when the protect/restrict condition is in effect
Port-Security Aging
Static address aging is disabled by default
Sticky addresses never time-out
After address age out, they are also removed from the CAM table (mac-address table)
Inactivity Address only time out after being inactive for a disabled Static /
certain period of time Dynamic
Enable static aging with the switchport port-security aging static command
Dynamic addresses that are converted to sticky will lose aging limitations
Inactivity timer is reset each time a frame is received from the host
Protected Ports
Protected Ports
Does not forward any traffic to any other port that is also a protected port
o Same concept as isolated Private-VLAN ports
Only control traffic (PIM for example) is forwarded
All data traffic passing between protected ports must be forwarded through a Layer 3
device
interface fa0/0
switchport protected
Storm Control
Storm Control
Storm control monitors incoming traffic on the interface and applies limitations on
flooding
Limitation is applied before the traffic is flooded
Storm control can apply to these traffic types (see MAC / (T)CAM / SDM section)
o Broadcast frames
o Multicast frames
o Unknown unicast frames
interface
storm-control broadcast | multicast | unicast level rising % falling %
interface
storm-control broadcast | multicast | unicast level bps rising falling
interface
storm-control broadcast | multicast | unicast level pps rising falling
The normal transmission restarts when traffic drops below the falling threshold
o If you don't specify a falling threshold, the rising value will be copied
o This means that as soon as the traffic drops below the rising value, it is allowed again
The benefit of the falling threshold is to drop traffic until it is lower than a certain value
o This prevents the storm control from triggering on/off, on/off, etc.
The falling value only really means something when the trap action is used
o Otherwise the port is simply shutdown when the rising value is triggered
Storm Control Actions
Mode Port Action Administrative Action
Trap Traffic from violating hosts is Port will automatically resume after violations
(default) dropped stop
Switch can send a SNMP trap
message
Percentage based
interface gi1/01
bandwidth 1000000
storm-control broadcast level 50 25
storm-control action trap
Storm control will start dropping traffic after broadcast traffic consumes 50% of the link
When the broadcast storm drops under 25% the port stops dropping traffic
Storm control will shut down the port after unknown unicast traffic reaches 1000 bps
After 60 seconds the port is re-enabled
interface
small violation rate pps
interface gi1/0/1
small violation-rate 1000
VACL
PACL / VACL Order of Preference (Interaction)
Direction Order
redirect - Change the destination and to forward the traffic to another interface (up to 5)
The redirect interface must be in the VLAN for which the vlan access-map is configured
Can be used to intercept traffic and forward it to a SPAN (destination) port
o Cannot be used to redirect traffic to a L3 VLAN interface
Only allow hosts which have NICs from certain vendors (0050.79)
mac access-list extended OUI
permit 0050.7900.0000 0000.00ff.ffff any
Capture all traffic from host1, regardless of which VLAN it is connected to (10 or 20)
mac access-list extended CAPTURE_HOST1
permit host 0050.7966.6800 any
interface gi1/0/1
switchport capture
If you don't specify the second sequence statement (99) all other traffic will be dropped
interface gi1/0/1
description HOST1
switchport access vlan 10
interface gi1/0/2
description HOST2
switchport access vlan 20
VACL Logging
Only traffic that is dropped can be logged
o Only denied IP packets are logged
o Logs are generated based on flows, meaning that not every single packet is logged
o Log is generated when first matching packet in the flow is received
o Alternatively you can configure a threshold which will only start logging at a certain
amount of packets
Logs are stored in the VLAN access-log table
o This table is finite and holds 500 flows by default
o When the log table is full, new logs entries are not written to the table
o The contents of the table can be cleared by setting the maxflow value to 0
Instead of logging every single flow, you can configure a log threshold
o This threshold defines when logging of the flow should start (after certain amount of
packets)
o Disabled by default
You can also rate-limit the amount of packets for per second
o Enabled by default at 2000 packets per second (pps)
The amount of flows that are stored in the table (500 flows by default)
The maximum redirect VACL logging packet rate, exceeding packets are dropped (default
is 2000 pps)
VLAN 1 default
vlan 100
vlan 200
vlan 300
int gi1/0/1
switchport trunk encapsulation dot1q
switchport mode trunk
int gi1/0/1
switchport mode access
switchport access vlan 100
int gi1/0/2
switchport mode access
switchport access vlan 200
int gi1/0/3
switchport mode access
switchport access vlan 300
If you remove a VLAN that has active ports, the ports will go into an inactive state until
they are added to a new VLAN
vlan 10
interface gi1/0/1
switchport mode access vlan 10
no vlan 10
VLAN Database
When the switch is in VTP server or transparent mode, you can configure VLANs in the
VLAN database mode
When you configure VLANs in VLAN database mode, the VLAN configuration is saved in
the vlan.dat file
interface gi1/0/1
no switchport
ip address 10.0.0.1 255.255.255.0
802.1Q 4 byte tag 12-bit field Embeds tag directly in the L2 yes
Range 0- frame
4095 FCS (Frame Check Sequence) is
0,1,4095 re-calculated after insertion
reserved Total overhead is 4 bytes,
effective
Destination mac-address is not
changed
vlan dot1q tag native - A trunk will always perform tagging on the outgoing frames
The native VLAN setting is ignored and all frames are tagged with the corresponding tag
value
Untagged frames arriving at a trunk port will be dropped without being forwarded further
Essentially this command disables the regular workings of the native VLAN
Has no effect on access-ports
Both ISL and dot1q add bytes to the overall frame (30 for ISL and 4 for dot1q)
Ethernet frames cannot exceed 1518 bytes
Trunking protocols can cause the frame to become too large and be dropped (errors on
link)
o Frames that barely exceed the MTU size are called baby giant frames
ISL uses proprietary hardware with ISL to ensure frames are not oversized
802.1Q complies with 802.3ac, which increases the maximum frame size to 1522 (1518 + 4)
o The MTU is 1500 bytes (with the header (18) and dot1q it is 1522)
Wireless VLANs
Cisco APs can operate in one of the two following modes:
Autonomous mode - The AP operates independently and directly connects VLANs to
WLANs on a one-to-one basis
o Generally connects to trunk links that carry multiple VLANs
Lightweight mode - The AP must join and cooperate with a wireless LAN controller located
elsewhere on the network
o The AP connects each of its own WLANs with a VLAN connected to the controller
o All of the VLAN-WLAN traffic is encapsulated and carried over a special tunnel
between the AP and the controller
o Generally connect to access ports that carry a single VLAN
DTP
Dynamic Trunking Protocol (DTP)
DTP Frames negotiate the port state (trunk or access) and the trunking mode
o DTP frames are sent to the L2 multicast address 0100.0ccc.cccc
Carries VTP domain information and sent every 30 seconds
o If VTP domain does not matches, DTP will not negotiate a trunk
o In this case the port state will always be access
DTP Modes
Default mode depends on switch platform
Desirable has priority over auto
o If one side is set to auto, and one side is desirable the port will become a trunk
If you configure one side as static trunk, and the other as DTP auto/desirable a trunk will form
The side that is statically configured has to also configure the trunk encapsulation to
isl/dot1q
Trunk encapsulation negotiate only works with DTP auto / desirable ports, not static trunks
The side that is still set to use DTP can negotiate and adjust its encapsulation to static side
Desirable Trunk
Auto Access
interface gi1/0/1
switchport mode dynamic desirable
switchport trunk encapsulation negotiate
Inter-VLAN / MLS
Routing Between VLANs
Three options:
Inter-VLAN Router - One router connected to multiple access interfaces in different VLANs
Router on a Stick - One router with sub-interfaces connected to a trunk
Multilayer Switch - Switch with routing capabilities
Packet Rewrite
When using MLS, the switch behaves very much as a router does (mac-address rewriting)
A L2 switch just blindly forwards frames (transparent bridging)
The L3 switch does the following with an incoming packet from a host on VLAN10 to
VLAN20 for example:
o Destination mac-address is changed from the original value (L3 VLAN interface) to
next-hop device mac-address
o Source mac-address is changed from the original value (host) to the L3 VLAN
interface
o TTL is decremented by 1 and L2 and L3 checksums are recalculated
Native VLAN
Native VLAN
The native VLAN is a concept introduced by dot1q
o All arriving traffic that is untagged is placed in the native VLAN
o ISL tags all traffic, including the native VLAN
o You can tag the native VLAN with by configuring vlan dot1q tag native globally
Primarily used for management traffic and VoIP phones nowadays
Can be used by an ip-phone connected to the switch
o Voice traffic will arrive tagged and data traffic from PC will arrive untagged
LLDP and CDP use the native VLAN
802.1D (STP) frames are sent in the native VLAN
Frames belonging to the native VLAN are not encapsulated with any tagging information at all
This is very similar to an access port and is as if a trunk link is not being used
If an end-station connects to a trunk port, they can only understand the native VLAN
frames because they are untagged
vlan dot1q tag native - A trunk will always perform tagging on the outgoing frames
The native VLAN setting is ignored and all frames are tagged with the corresponding tag
value
Untagged frames arriving at a trunk port will be dropped without being forwarded further
Essentially this command disables the regular workings of the native VLAN
Has no effect on access-ports
Even though STP/CDP/DTP and PAgP (and others) use the native VLAN, you can set this VLAN to
an bogus VLAN-id
This action will prevent VLAN hopping (see below)
The management protocols will not be affected if the native VLAN is removed or pruned
from the link
Negate this attack by setting the native VLAN to a bogus (unused) VLAN
o Another method is to always tag the native VLAN with the vlan dot1q tag native
global command
CSW2
interface fa0/1
switchport access vlan 2
no spanning-tree vlan 2
interface fa0/24
description CSW3
switchport trunk encapsulation dot1q
switchport trunk native vlan 2
switchport mode trunk
no cdp enable
CSW3
interface fa0/1
switchport access vlan 3
no spanning-tree vlan 3
interface fa0/24
description CSW2
switchport trunk encapsulation dot1q
switchport trunk native vlan 3
switchport mode trunk
no cdp enable
Private VLANs
Private VLANs
All hosts in the private VLAN belong to the same broadcast domain / subnet as the
primary PVLAN
Private VLANs require VTPv3 or VTP mode transparent on older versions of VTP
Private VLANs are not compatible with VTP pruning and requires that it is turned off (if
using VTPv3)
Enabling DHCP Snooping, ARP Inspection and Source Guard on primary PVLAN will also
enable it on secondary PVLANs
vlan primary-vlan
private-vlan primary
vlan secondary-vlan
private-vlan community | isolated
Promiscuous Primary Connects to L3 gateway device and is the exit interface for the
secondary PVLANs
Host Isolated Connects to a host and is only allowed to communicate with the
promiscuous port
Host Community Connects to a host and is only allowed to communicate with the
promiscuous port and other ports in same community
interface
switchport mode private-vlan host | promiscuous
interface
switchport private-vlan association host secondary_vlan
switchport private-vlan association mapping primary_vlan secondary_vlans
association host - Links the host interface to a secondary PVLAN (old-style command)
association mapping - Links the promiscuous interface to a single primary, and multiple
secondary PVLANs (old-style command)
interface
switchport private-vlan host-association secondary_vlan
switchport private-vlan mapping primary_vlan secondary_vlans
The old style commands will end up in the running config as the new-style
The new style commands try to differ between 'association' and mapping
o This is why the documentation states that host ports are associated and promiscuous
ports are mapped
Interface Type Used between switches Functions as a Switch (devices) on the other
side can
Regular trunk port That both support Regular trunk Reach all secondary and
PVLANs primary PVLANs
Isolated PVLAN PVLAN switch and a isolated PVLAN Reach only the promiscuous
trunk non-supporting switch port port on the other switch
Comparable to a local
isolated PVLANport
Both promiscuous and isolated PVLAN trunks merge the secondary and primary PVLAN into one
(secondary is rewritten to match primary)
These trunks connect to switches that do not support PVLANs
The main difference between these ports is the PVLANs that the remote switch can reach
o Isolated - The remote switch can 't reach any (community / isolated) PVLANs, and can
only reach the promiscuous port (that probably connects to a L3 device)
o Promiscuous - The remote switch can reach all (community / isolated) PVLANs
vlan 100
private-vlan primary
vlan 110
private-vlan community
vlan 120
private-vlan isolated
vlan 100
private-vlan association 110,120
interface gi1/0/1
description PROMISCUOUS
switchport mode private-vlan promiscuous
switchport private-vlan mapping 100 110,120
interface gi1/0/4
description ISOLATED
switchport mode private-vlan host
switchport private-vlan host-association 100 120
vlan 100
private-vlan primary
vlan 110
private-vlan community
vlan 120
private-vlan isolated
vlan 100
private-vlan association 110,120
interface gi1/0/4
description ISOLATED
switchport mode private-vlan host
switchport private-vlan host-association 100 120
interface
cdp enable
switchport priority extend cos cos_value (0-7) | trust
priority extend cos - Instructs the phone to rewrite the incoming PC traffic (on the phone
access port) to this CoS value
The default is to rewrite all traffic arriving from the PC to CoS 0 (default priority)
priority extend trust - Instructs the phone to not alter the CoS value of the incoming PC traffic
and blindly forward it to the switch
cdp enable
switchport priority extend trust
Voice VLAN
You can only configure the voice VLAN on (operational) access ports
o You don't have to statically force it to be an access port, DTP works as well
o Technically you can configure it on a trunk, but it will not be operational
o You cannot configure it on a private-vlan (host or promiscuous) port
o The voice VLAN is disabled by default
The voice VLAN is an actual (regular) vlan and needs to be present and active on the
switch
Spanning Tree PortFast will be enabled automatically when you define the voice VLAN
o PortFast will not be disabled if the voice VLAN configuration is removed
Generally, the phone will send tagged traffic using the voice VLAN, the PC will send
untagged traffic using access VLAN
o The default CoS value for voice traffic arriving tagged at the voice VLAN is 5
o The default CoS value for data traffic arriving untagged at the data (regular VLAN) is
0
interface
switchport mode access | dynamic auto
switchport voice vlan vlan_id | dot1p | untagged | none
switchport voice detect cisco-phone full-duplex
Voice VLAN mode Separate voice VLAN Voice tagged Data tagged
Voice VLAN-ID
interface gi1/0/1
switchport mode access
switchport access vlan 10
switchport voice vlan 60
network-policy profile 1
voice vlan 60 cos 5
voice vlan 60 dscp 40
voice vlan dot1p cos 5
voice vlan none
voice vlan untagged
int fa0/0
switchport mode access
switchport access vlan 10
network-policy profile 1
lldp med-tlv-select network-policy
VTP
VLAN Trunking Protocol (VTP)
When the domain is NULL (default) no VTP messages will be sent
o The switch is waiting for the first reception of a VTP message with a domain name set
VTP only operates on trunk ports and the VTP domain name is also carried in DTP
messages
VTP Modes
VTP Mode Create Update VLANs Purpose
VLANs Database Stored In
VTP off mode functions the same as transparent mode except that VTP advertisements are not
forwarded
VTP Versions
Version Default Extended VLAN Authentication Private VLANs Primary /
Range / RSPAN Secondary servers
VTPv1 and v2 are designed to work with ISL, this is why extended range VLANs are not
supported
The VLAN extended range is 1006-4096
Extended VLANs can only be configured with VTPv3 or VTPv2 transparent mode
o Stored in the running config using VTPv1/v2, not the VLAN database file
o Lost if VTPv1/2 mode is changed back to server from transparent
VTP Advertisements
Type Contains Sent Reason / Description
by Purpose
Summary Version Server Change in VLAN Advertises general VTP information and
Domain Client database how many subset advertisements will
Revision # Every 300 follow
Time stamp seconds
MD5 hash Response to
# of subset Request
Subset VLAN Server Change in VLAN Advertises the complete VLAN list
creation, Client database present on the switch
removal. Also advertised when VLAN changes are
change applied such as type, MTU, name, etc.
Request Version Server Update request Switch requests update from server after
Domain Client Synchronization joining the VTP domain
Can also be sent if a switch detects (from
a summary) that its revision # is lower, in
this case the server will respond with a
new summary + subset advertisement
This generally happens when VTP
domain or mode is changed (resets
revision # to 0)
Join Pruning All Pruning The switch advertises which VLANs are
VLAN list needed on the switch
The VTP database checksum can mismatch if both servers are at revision 0
o Create a VLAN to update both switches to revision 1
VTPv3
VTPv3
Backwards compatible with v2 and will send VTPv3 and v2 packets to devices over a trunk
port
Devices supporting VTPv1/2 will automatically update to v2 when communicating with v3
neighbors
o Exception is when extended range VLANs are used in the VTPv3 domain
o Changes should be made on v3 switches with the v2 devices configured as clients
o If changes are made on the v2 devices, only v2 neighbors will update their revision
numbers
o Updates from v3 neighbors will be rejected later on, because of the lower revision
number
VTPv3 Enhancements
Supports extended VLAN range (1006-4096), private VLANs and Remote SPAN VLANs
Enhanced authentication, ability to hide password in running-config
Supports separate databases (MST and VLAN)
Primary is the only switch in a VTPv3 domain whose VLAN database can be propagated
Can be demoted by changing modes or by configuring a VTP password
Different servers can be primary for the MST / VLAN databases
o The MST database is the instance to VLAN mapping, not the actual VLAN list
If the VTP password is configured, you need to re-enter it when promoting a server
Server
vtp version 3
vtp mode server
vtp domain cisco
vtp password cisco hidden
vtp primary vlan force
debug sw-vlans vtp events
force - the switch does not check for conflicting devices (other primary servers)
hidden - hides the password in the running-config
Client
vtp version 3
vtp mode client
vtp domain cisco
vtp password cisco hidden
Pruning / Auth / Misc
VTP Synchronization / Revision Number Issues (Bomb)
The VTP revision number is stored in NVRAM and is not altered by a power cycle
The revision # can be reset to 0 only by using one of the following methods:
o Change the mode to transparent and then change the mode back to server (VTPv1/2
only)
o Change the VTP domain
o Configure a VTP password
Issues occur when a VLAN databases is overwritten by clients/servers with a higher
revision #
o This happens regardless of the amount of VLANs present, only the revision # matters
o Even VTP clients can override the database of servers in VTPv1/2/3
A VTP client can update the VLAN database if the following is true:
o The new link connecting the new switch is trunking
o The new switch has the same VTP domain name / password as the other switches.
o The new switchs revision number is higher than that of the existing switches
Even in VTPv3 this can happen if the switches agree on the identity of the primary server
VTP Pruning
VTP pruning is an extension of VTPv1 and is supported on all versions (disabled by default)
Via VTP join messages switches communicate which VLANs it only need frames for
o This is decided based on active trunk/access ports in a specific VLAN
o The VLANs are still added to the database, however they won't be active on the trunk
Unlike manual pruning, VTP pruning does NOT limit the amount of active STP instances (in
case of RPVST+/PVST+)
o VTP pruning works alongside STP and allows pruned VLANs in the management
domain, but not in the STP forwarding state
o Manual pruning does not allow pruned VLANs in the management domain
Can only be enabled on servers, only works on servers and clients
By default all normal-range VLANs will be pruned (except 1 / 1002-1005)
o VTP pruning only works for VLANs 2-1001 (even with VTPv3)
o Control which VLANs are pruned with the switchport trunk pruning vlan command
o VLANs specified here will be eligible for pruning, anything not specified will not be
pruned
o Verify with show interfaces trunk
Server
vtp mode server
vtp pruning
vlan 10,20,30,40,50
Client
interface gi1/0/1
switchport trunk pruning vlan 10-30,50
VTP pruning
vtp mode server
vtp domain cisco
vtp pruning
vlan 10,20,30,40,50
interface gi1/0/0
switchport mode trunk
switchport trunk encapsulation dot1q
interface gi1/0/1
switchport access vlan 10
interface gi1/0/2
switchport access vlan 20
interface gi1/0/3
switchport access vlan 30
In the output you can see that VLANs 1,10,20,30,40,50 are allowed and active in the
management domain
o However only 1,10,20,30 are in the STP forwarding state
o This area is where VTP pruning takes effect
o If manual pruning was configured, only 1,10,20,30 would be allowed and active in the
management domain
Manual pruning
vtp mode off
vlan 10,20,30,40,50
interface gi1/0/0
switchport mode trunk
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 1,10,20,30
interface gi1/0/1
switchport access vlan 10
interface gi1/0/2
switchport access vlan 20
interface gi1/0/3
switchport access vlan 30
Disable VTP
Not supported on all platforms
If not supported, 'turn off' VTP with mode transparent
Disable globally or on an interface basis