Advanced Routing Services Lab Documentation
Advanced Routing Services Lab Documentation
Section Outline
In this section you will start by addressing the interfaces of 14 routers within a topology
to provide basic connectivity. You will then configure OSPF as an IGP and use it to
advertise the loopbacks of all routers within the routing domain. You will complete this
section by configuring BGP neighbor relationships for all routers within the topology
and advertising a default route.
Section Expectations
The configurations for section 1.1 will satisfy the following requirements.
1. All subnets within the OSPF topology will fall with within a single /24
1 / 89
Advanced_Routing_Services_Lab_Documentation
2. G0/0 interfaces within the 10.X.X.0/26 network should share a common /29
subnet
3. All other links will be point-to-point (/30) networks. But will fall within the
ranges defined in the diagram.
4. All Routers will have loopbacks addressed to 10.255.X.1-14/32
2 / 89
Advanced_Routing_Services_Lab_Documentation
table changes as OSPF calculates new best paths to the loopback interfaces.
Section Expectations
The OSPF configurations for this section will satisfy the following requirements.
1. ABRs will advertise only the summary addresses of OSPF area 1-4 and leaf router
loopbacks into the backbone.
2. ABRs will advertise only the summary address of Area 0 and the loopbacks of the
leaf and backbone routers to the leaf routers.
3. All OSPF routers will have routing table entries for the loopbacks of all other OSPF
routers.
3 / 89
Advanced_Routing_Services_Lab_Documentation
4 / 89
Advanced_Routing_Services_Lab_Documentation
find that managing OSPF configurations with multiple interfaces in different areas
becomes easier when OSPF is enabled per-interface. The syntax for interface-level
OSPF configuration is as follows:
interface <interface-id>
ip address <ip> <subnet-mask>
ip ospf <process-id> area <area-id>
OSPF Summarization
OSPF is a link-state routing protocol. All routers in an OSPF area know the full LSDB for
routers within that area. This makes summarization within an OSPF area impossible.
When summarizing routes in OSPF, we perform summarization on the ABR. This allows
us to constrain the routing tables in different OSPF areas, and to prevent topology
changes in one area from causing SPF calculations in another area.
Summarization can be achieved with the command:
area <id> range <summary-address> <summary-mask>
Under the global OSPF process.
Device Example
Upon completion of general OSPF configuration and ABR summarization, the inter-
area routes from the perspective of a leaf router should look like this.
LR-AR1-1#sh ip route | in O IA
O IA 10.X.X.0/26 [110/2] via 10.X.X.73, 00:12:07, GigabitEthernet0/1
O IA 10.X.X.96/27 [110/2] via 10.X.X.73, 00:12:07, GigabitEthernet0/1
O IA 10.X.X.128/27 [110/3] via 10.X.X.73, 00:12:07, GigabitEthernet0/1
O IA 10.X.X.160/27 [110/3] via 10.X.X.73, 00:11:37, GigabitEthernet0/1
O IA 10.255.X.1/32 [110/3] via 10.X.X.73, 00:11:37, GigabitEthernet0/1
O IA 10.255.X.2/32 [110/2] via 10.X.X.65, 00:12:17, GigabitEthernet0/0
O IA 10.255.X.3/32 [110/3] via 10.X.X.73, 00:11:37, GigabitEthernet0/1
O IA 10.255.X.4/32 [110/2] via 10.X.X.73, 00:12:07, GigabitEthernet0/1
O IA 10.255.X.5/32 [110/3] via 10.X.X.73, 00:11:37, GigabitEthernet0/1
O IA 10.255.X.6/32 [110/3] via 10.X.X.73, 00:12:07, GigabitEthernet0/1
O IA 10.255.X.9/32 [110/3] via 10.X.X.73, 00:11:25, GigabitEthernet0/1
O IA 10.255.X.10/32 [110/3] via 10.X.X.73, 00:11:25, GigabitEthernet0/1
O IA 10.255.X.11/32 [110/4] via 10.0.X.73, 00:11:48, GigabitEthernet0/1
5 / 89
Advanced_Routing_Services_Lab_Documentation
Notice that we are filtering the routing table for inter-area routes using show ip route |
include O IA , and that all inter-area routes aside from loopbacks are summary
addresses for each area. Performing show ip route ospf should display ECMP routes for
almost all prefixes, but it’s output will include intra-area routes.
Configuration Examples:
By viewing the configuration example we see that nothing special is happening within
the configuration of routers that have all their interfaces in a non-backbone area. All
summarization is being performed on Area Border Routers.
hostname LR-AR1-1
!
interface loopback 0
ip address 10.255.X.7 [Link]
ip ospf 100 area 1
!
router ospf XXX
!
interface G0/0
ip address 10.X.X.65 [Link]
ip ospf XXX area 1
no shutdown
!
interface G0/1
ip address 10.X.X.69 [Link]
ip ospf XXX area 1
no shutdown
!
interface G0/2
ip address 10.X.X.73 [Link]
ip ospf XXX area 1
no shutdown
!
6 / 89
Advanced_Routing_Services_Lab_Documentation
hostname BR-1
!
interface loopback 0
ip address 10.255.X.2 [Link]
ip ospf area 0
!
router ospf 100
area 0 range 10.X.X.0 [Link]
area 1 range 10.X.64.0 [Link]
!
interface g0/0
ip address 10.X.X.2 [Link]
ip ospf XXX area 0
no shutdown
!
interface g0/1
ip address 10.X.X.10 [Link]
ip ospf XXX area 0
no shutdown
!
interface g0/2
ip address 10.X.X.13 [Link]
ip ospf XXX area 0
no shutdown
!
interface g0/3
ip address 10.X.X.66 [Link]
ip ospf XXX area 1
no shutdown
!
interface g0/4
ip address 10.X.X.75 [Link]
ip ospf XXX area 1
no shutdown
!
7 / 89
Advanced_Routing_Services_Lab_Documentation
Overlay a full-mesh of iBGP over the existing topology. Using the AS 65501 , configure
peering so that all routers are iBGP neighbors with all other routers. Advertise a default
route from
CORE-EDGE to all neighbors. Validate that all neighbors can reach the public internet
via ICMP.
Section Expectations
The iBGP configurations within this section will satisfy the following requirements
4. All routers will have BGP neighborship with all other routers via their loopback
addresses.
5. All routers will have a routing table entry of [Link] via CORE-EDGE.
6. All routes advertised by iBGP peers will use the advertising router's loopback
address as the next-hop.
Device Example
Upon completion of iBGP configuration the BGP routes for a leaf router should look like
this.
Configuration Example:
9 / 89
Advanced_Routing_Services_Lab_Documentation
Notice that LR-AR-1-1 is running the same AS as it’s neighbor, and utilizing next-hop-
self in the routes it will advertise.
Section Outline
In this section you will extend connectivity to four edge routers by assigning them an
AS and a /24 prefix in the [Link]/10 space. Each edge router will be directly
connected to the transport network with a /29 in the [Link]/24 space. Each edge
router will advertise their public prefix into the transport network. Each edge router
will receive a default route from the leaf router they are connected to. Leaf routers will
advertise default routes to edge routers, but may or may not advertise the public
prefixes of other edge sites. Edge routers will each have a /32 loopback interface in the
assigned public subnet. All edge routers will be reachable via their public loopbacks
from other edge routers throughout the network.
10 / 89
Advanced_Routing_Services_Lab_Documentation
Connect four edge routers to the transport network. Assign each router a /24 in the
[Link]/10 space and document it. Advertise a default route to the leaf routers.
Advertise the public prefix of each edge router into the transport network. Assign a
loopback for each CE-RTR in their public prefix using a /32. Validate that all CE routers
can reach the public loopbacks of all other routers.
Section Expectations
The configurations for section 2.1 will satisfy the following requirements.
1. Each edge router should connect to leaf routers in different OSPF areas.
2. Each edge router will peer with the leaf routers using interfaces in the
[Link]/24 space. Each peering network will be a /29. 3. Each edge router
should have a loopback in their assigned public subnet.
3. Each edge router should receive a default route via the leaf router.
4. Each edge router should advertise a /24 in the [Link]/10 space
5. Neither CE or LR routers should advertise prefixes in the [Link]/24 space.
11 / 89
Advanced_Routing_Services_Lab_Documentation
External BGP sessions are configured to allow peers from different autonomous
systems to exchange routing updates. In this example LR-AR1-1 is in AS 65501, CE-1
can be in any AS other than 65501 for this session to be considered eBGP. Routes
received by eBGP peers will use the peer ip address as the next-hop, meaning we do not
need to use next-hop-self command on LR-AR1-1 towards CE-RTR-1. In the example
above 198.51.100.X/29 serves as a transit network and is not advertised to the rest of AS
65501. Routers in AS 65501 should use the loopback address of LR-AR1-1 to reach the
prefix advertised by CE-1
Connected network: The next-hop BGP attribute is set to [Link], the BGP origin
attribute is set to i (IGP), and the BGP weight is set to 32,768.
Static route or routing protocol: The next-hop BGP attribute is set to the next-hop
IP address in the RIB, the BGP origin attribute is set to i (IGP), the BGP weight is
set to 32,768, and the MED is set to the IGP metric.
Device Example
12 / 89
Advanced_Routing_Services_Lab_Documentation
Upon completion of this section, all routers within AS 65501 should have iBGP routes to
four public /24s via the loopbacks of leaf routers. All edge routers should have 3 routes
to the public prefixes advertised by the other edge routers via leaf routers.
Configuration Examples: 13 / 89
Advanced_Routing_Services_Lab_Documentation
Configuration Examples:
The BGP configurations within this section are very straightforward and similar to the
configurations in 1.3, aside from different AS numbers and the inclusion of a network
statement on the edge router side.
Section Expectations
The BGP prefix advertisement configurations within this section will satisfy the
following requirements
6. eBGP peers connected to routers in Area 1 and Area 2 will add the no-export
community to routes advertised into AS 65501
7. Leaf routers providing connectivity to edge nodes in Area 1 and 2 will send the BGP
communities they receive to all iBGP peers that provide connectivity to
downstream routers.
8. Routers in Area 1 and Area 2 will have prefixes in their routing tables for routers in
14 / 89
Advanced_Routing_Services_Lab_Documentation
The power of prefix lists derive from the less than and equal than operators. A prefix
list that matches the conditions specified above looks like this.
Breaking down the structure of the prefix list can provide further clarity.
15 / 89
Advanced_Routing_Services_Lab_Documentation
Route maps
Route maps provide many different features to a variety of routing protocols. At the
simplest level, route maps can filter networks much the same way as ACLs, but they
also provide additional capability through the addition or modification of network
attributes. To influence a routing protocol, a route map must be referenced from the
routing protocol. Route maps are critical to BGP because they are the main component
in modifying a unique routing policy on a neighbor- by-neighbor basis.
We will be using route maps to add BGP communities to outbound routes advertised to
upstream eBGP peers, and to validate that the prefixes we are receiving are expected
prefixes from downstream eBGP peers.
To configure a route map, we use the route-map command, followed by the name of the
route map, a permit or deny statement, and a sequence number .
We then enter the route-map sub-configuration and can implement some form of
matching logic or set some attributes.
16 / 89
Advanced_Routing_Services_Lab_Documentation
(config-route-map)#set <some-protocol-attribute>
Finally, we apply the route map to a BGP neighbor. If we want the route map to apply to
advertised routes, we specify “out”. If we want the route map to apply to received
routes, we can use “in”.
BGP Communities
We can utilize BGP communities to add more information to prefixes advertised to
neighbors for traffic engineering and routing purposes. There are four well known BGP
communities that can be used without any policy configuration. Custom BGP
communities can be created using a numeric value and defining the policy locally.
17 / 89
Advanced_Routing_Services_Lab_Documentation
Finally, we must tell BGP to send the community to the BGP neighbor, as it will not by
default.
Device Example
Using the show ip bgp we can validate whether or not our BGP community
configuration is working. This is also a useful command to gain more insight into the
attributes of a BGP route.
Some edge routers may have no visibility into the network they are connected to, but
should still be able to reach the loopback of any other edge router when forwarding
traffic into 65501.
18 / 89
Advanced_Routing_Services_Lab_Documentation
Some routers will have two routes for both networks that do not use BGP communities
Configuration Example
We can use ACL’s in combination with route maps to validate expected prefixes.
19 / 89
Advanced_Routing_Services_Lab_Documentation
We can utilize prefix lists to filter outbound routes to default only. Notice that we do not
need to utilize greater than or less than operators to accomplish this.
We can use route-maps and BGP communities to prevent prefix advertisement outside
of an AS. Notice that we must both configure the edge router to send the community to
the upstream leaf router, and the leaf router to send the community to it’s iBGP peer
that provides connectivity to another AS.
20 / 89
Advanced_Routing_Services_Lab_Documentation
CE-1
route-map no-export permit 10
set community no-export
!
router bgp 65520
neighbor 198.51.100.X send-community
neighbor 198.51.100.X route-map no-export out
LR-AR1-1
router bgp 65501
neighbor 10.255.X.9 send-community.
Section Outline
In this section you will utilize IPsec to connect remote private subnets over a WAN. You
will first construct a site-to-site policy based tunnel to connect two remote networks.
You will then build a hub and spoke, routed IPsec topology, and use an IGP to advertise
reachability information to other peers.
21 / 89
Advanced_Routing_Services_Lab_Documentation
Select two edge routers within the topology. Add network statements on each edge
router to advertise their 198.51.100.X/29 prefix. Modify the route maps of each
upstream leaf router to accept the new prefix. Validate that these prefixes have
propagated throughout the transport network. Validate connectivity between edge
routers via their 198.51.100.X/29 interfaces. Connect hosts to edge routers using /24
networks within the [Link]/8 space. Build a policy based IPSec tunnel between edge
routers that provides connectivity between end hosts. Send test traffic and validate host
to host connectivity via the tunnel. Validate IPSec security association.
Section Expectations
The Policy Based IPsec tunnel configurations will satisfy the following requirements
22 / 89
Advanced_Routing_Services_Lab_Documentation
23 / 89
Advanced_Routing_Services_Lab_Documentation
LR-AR1-1#sh route-map
route-map bgp-198.51.100.X-out, permit, sequence 10
Match clauses:
ip address (access-lists): bgp-198.51.100.X-out
Set clauses:
Policy routing matches: 0 packets, 0 bytes
route-map bgp-198.51.100.X-in,permit, sequence 10
Match clauses:
i
p address (access-lists): bgp-198.51.100.X-in
Set clauses:
Policy routing matches: 0 packets, 0 bytes
We then need to look at the access list referenced in our inbound route map and create a
new match statement to accept the new prefix
We can add a new prefix to the route map by referencing the existing ACL, creating a
new ACE,
and incrementing the sequence number.
Once we modify our route map, we should validate that we are receiving the route from
our
customer edge router.
24 / 89
Advanced_Routing_Services_Lab_Documentation
Notice that the prefix is received, but we have some different flags under the route.
Looking at the flags we see that the route has been marked with ' rib failure '. Running
show ip bgp rib can give us more information.
BGP is not inserting the route into the routing table because there is already a route
with a higher administrative distance. lets run show ip route <prefix>
Everything is actually working exactly as expected. BGP is learning our route, and it is
in the BGP topology. BGP is not inserting our route into the global RIB because there is a
route with a higher admin distance. When looking at the routing table, we see that this
prefix is available via a directly connected interface. Lets check BGP routes for an iBGP
neighbor and validate that the rest of the transport network knows how to reach our
prefix.
25 / 89
Advanced_Routing_Services_Lab_Documentation
For each configuration we need to identify a peer IP address, as well as the source and
destination networks to be protected over the tunnel.
We need to decide on a means to authenticate our peers on the other side. We can use a
preshared-key for this.
We also need to decide on a transform set. IPSec peers need to use the exact same
encryption and hashing methods on both sides of the tunnel to successfully pass traffic
back and forth. When negotiating a tunnel connection, peers offer combinations of
methods to encrypt traffic and validate the integrity of tunnel data to each other until
26 / 89
Advanced_Routing_Services_Lab_Documentation
they find a method they both share; these offerings are called transform sets.
We are using ESP for this tunnel, SHA to ensure the integrity of the data that traverses
the tunnel, and AES to encrypt the payloads. This means our transform set will consist
of esp-sha-hmac and esp-aes.
This configuration demonstrates using Diffie-Hellman group 2 for PFS. PFS is a means
by which we protect the initial authorization key exchange during Phase-1 of the tunnel
from eavesdropping by attackers seeking to compromise the integrity of the tunnel. PFS
is not negotiated by default, and later show commands will show that PFS was not used
to negotiate the tunnel.
Now that we have all of this information we can begin to build out the configurations
for our tunnel. We start by creating a new ISAKMP policy on “CE-RTR-A” and setting
all of the tunnel configurations we decided on previously.
We then define the key that will be used for our tunnel peer.
Now it is time to define the transform set that will be offered to CE-RTR-B
Next, we need to create a crypto map that defines what traffic should take the tunnel,
the peer that should be used for the traffic flow, and the transform set that should be
offered to the peer
We also need to create an access list that has our internal subnet as the source and the
remote subnet as the destination.
27 / 89
Advanced_Routing_Services_Lab_Documentation
Finally, we need to apply the crypto map to our WAN facing interface and create a static
route for the remote subnet via that interface.
interface GigabitEthernet0/0
crypto map ipsec-crypto-ceA-ceB
ip route 10.X.B.0 [Link] <next-hop-of-outbound-interface>
Device Example
Before standing up the tunnel, pings from one host to another behind CE routers should
fail, because their addresses are not routable over the transit network.
/ # ping 10.A.X.10
PING 10.A.X.10 (10.A.X.10): 56 data bytes
--- 10.A.X.10 ping statistics ---
8 packets transmitted, 0 packets received, 100% packet loss
Traffic from a local network to the remote network should initialize the tunnel if the
configuration was implemented successfully.
28 / 89
Advanced_Routing_Services_Lab_Documentation
/ # ping 10.A.X.10
PING 10.A.X.10 (10.A.X.10): 56 data bytes
64 bytes from 10.A.X.10: seq=1 ttl=62 time=47.384 ms
64 bytes from 10.A.X.10: seq=2 ttl=62 time=24.917 ms
64 bytes from 10.A.X.10: seq=3 ttl=62 time=87.131 ms
64 bytes from 10.A.X.10: seq=4 ttl=62 time=213.148 ms
64 bytes from 10.A.X.10: seq=5 ttl=62 time=54.158 ms
64 bytes from 10.A.X.10: seq=6 ttl=62 time=44.556 ms
64 bytes from 10.A.X.10: seq=7 ttl=62 time=55.867 ms
64 bytes from 10.A.X.10: seq=8 ttl=62 time=61.939 ms
--- 10.A.X.10 ping statistics ---
9 packets transmitted, 8 packets received, 11% packet loss
As you can see, we lost one packet as the tunnel established, and after that our traffic
was successfully encapsulated and routed over the transport network.
We can validate our tunnel using the show crypto ipsec sa command.
This section is a representation of our configurations and the overall state of the tunnel.
29 / 89
Advanced_Routing_Services_Lab_Documentation
interface: GigabitEthernet0/0
Crypto map tag: ipsec-crypto-ceA-ceB, local addr 198.51.100.a
These are the remote and local networks who’s traffic will be encrypted and decrypted
by the tunnel, and the peer that we will be forwarding the tunneled traffic to.
Here we have interface and traffic statistics. If the tunnel has never been established,
you will see 0 packets. Our tunnel has a plaintext MTU and an IP MTU. The IP MTU is
derived from the MTU of the interface, this is the largest PDU our interface can forward.
Our plaintext MTU is equal to the interface MTU minus the 62 byte IPsec header. This
means any PDU larger than 1483 bytes could be fragmented or dropped.
30 / 89
Advanced_Routing_Services_Lab_Documentation
Status: ACTIVE(ACTIVE)
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0x56768AEF(1450609391)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2, flow_id: SW:2, sibling_flags 80000040, crypto map: ipsec-crypto-ceA-ceB
sa timing: remaining key lifetime (k/sec): (4287805/3170)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)
outbound ah sas:
outbound pcp sas:
This section provides information as to the state of the Security Associations, or SAs of
the tunnel. A site to site IPsec tunnel uses two SAs on either end, one for in and
outbound traffic. A functional tunnel should have two ACTIVE status SAs.
Section Expectations
1. PE routers connecting to CE routers will have their configuration modified to
allow for the advertisement of the CE /29 through either; advertising from CE and
modifying the inbound route-map, or redistribution into iBGP of the interface
connecting CE routers to the provider network.
2. A Hub router will be designated among four CE routers.
3. The Hub router will use a Virtual-Template to dynamically assign Access-
31 / 89
Advanced_Routing_Services_Lab_Documentation
Interfaces to Spokes.
4. Spoke routers will initiate IPsec tunnels towards the Hub router. 5. The Hub router
will form EIGRP neighbor adjacencies with spoke routers.
5. Spoke routers will advertise two internal subnets to the hub router via EIGRP.
6. Hub routers will advertise all internal subnets to all spokes.
7. All spokes will have connectivity via the hub router.
Diagram: Advanced Routing and Services Section 3.2 - Hub and Spoke IPSec with IGP
Routing
We can utilize Virtual-Templates and an IGP over the tunnel to simplify multi-site
IPsec deployments. With this approach, a Hub router uses a Virtual-Template to create
dynamic tunnels for IPsec peers. All routers run an IGP that advertises the desired
subnets through tunnel interfaces. These tunnel interfaces utilize the IP address of a
loopback, and the outbound interface of the CE router as a source. When routers need to
forward a packet, they will utilize the tunnel interface as a next hop, encapsulate the
packet using IPsec, and forward the packet with the source address of the outbound
interface.
When a packet is received by the Hub, it will de-encapsulate the packet using the IPsec
SA formed when peering with the spoke (these SA’s are associated with the spoke
outbound interface). It will then consult it’s routing table and determine the next hop.
If the next hop is for one of it’s internal subnets, it will forward the packet natively. If
the destination address matches an EIGRP route learned via another IPsec peer, it will
re-encapsulate the packet using the peer SA and forward the packet down another
tunnel towards the peer. By utilizing this topology, we connect four sites and build only
32 / 89
Advanced_Routing_Services_Lab_Documentation
33 / 89
Advanced_Routing_Services_Lab_Documentation
Now we can build our hub router configuration. Since we will have multiple peers on
our hub
router, we will be using a keyring to manage our PSK's. We do this by creating a new key
ring,
and writing statements that identify our peers and desired auth.
And phase 2.
34 / 89
Advanced_Routing_Services_Lab_Documentation
Finally, we will create an ISAKMP profile to set phase 1 information for our Virtual-
Template. We then tie this phase 1 information to our virtual template within the
ISAKMP profile config.
The configurations from the perspective of a spoke are simpler. We just need to create
an IPsec policy, tie it to a tunnel interface, tie that tunnel interface to our loopback, and
source the tunnel from our WAN interface.
We need to define the hub as a peer and provide the PSK that will be used for tunnel
authentication.
35 / 89
Advanced_Routing_Services_Lab_Documentation
We use the same phase 1 and phase 2 policy and create a transform set to be used for the
tunnel.
We also create an IPsec profile and associate our transform set with it.
We then create a tunnel interface and attach the ipsec profile, we specify the Hub as our
tunnel destination and our outbound interface as the source. We will take IP
information from the loopback.
interface tunnel 0
ip unnumbered loopback 0
tunnel source GigabitEthernet0/0
tunnel destination 198.51.100.A
tunnel mode ipsec ipv4
tunnel protection ipsec profile VTI_PROFILE
!
Once this has been implemented across the network we should have three ISAKMP SAs
on CE A.
36 / 89
Advanced_Routing_Services_Lab_Documentation
We now need to enable EIGRP on each router and add network statements for the
loopback interface we have tied to the tunnel, as well as our local subnets. From the
perspective of CE-A this looks like:
Device Example
After a successful configuration, our hub should have a Virtual-Access interface in
up/up that shares the IP address of Loopback 0 and our Virtual-Template.
37 / 89
Advanced_Routing_Services_Lab_Documentation
E-RTR-7#sh ip int br
Interface IP-Address OK? Method Status Protocol
GigabitEthernet0/0 [Link] YES NVRAM up up
GigabitEthernet0/1 10.B.X.1 YES NVRAM up up
GigabitEthernet0/2 10.B.Y.1 YES manual up up
GigabitEthernet0/3 unassigned YES NVRAM administratively down down
Loopback0 [Link] YES NVRAM up up
Tunnel0 [Link] YES TFTP up up
Once we configure EIGRP, we should see new adjacencies form over the virtual-access
interfaces.
CE-RTR-1#
*Jul 8 17:08:15.757: %DUAL-5-NBRCHANGE: EIGRP-IPv4 100: Neighbor [Link]
(Virtual-Access1) is up:
new adjacency
Once we have enabled EIGRP across all sites, we should see 9 EIGRP routes on CE-A, 1
for each site's loopback and 2 remote subnets.
38 / 89
Advanced_Routing_Services_Lab_Documentation
show crypto ipsec sa can tell us about the IPsec tunnel configuration that has been
generated for our Virtual-Access interfaces.
interface: Virtual-Access1
Crypto map tag: Virtual-Access1-head-0, local addr [Link]
39 / 89
Advanced_Routing_Services_Lab_Documentation
Status: ACTIVE(ACTIVE)
inbound ah sas:
outbound ah sas:
One of the key differences between this output and our previous tunnel is that each SA
references a dynamically created crypto map. Another difference is that, while our
policy based tunnel SA was tied to a physical egress interface, this SA is tied to a
Virtual-Access interface, while retaining the egress IP address as a source.
Section Outline
In this section you will write security policies to enable desired traffic flows within the
network and restrict all other access. You will also provide connectivity to resources on
the public internet by configuring PAT at all sites. Each site will receive a new
management loopback in it’s private IP space, while public loopbacks will be secured to
40 / 89
Advanced_Routing_Services_Lab_Documentation
only allow SSH from CE-A’s WAN facing address. Once connectivity is established,
iPerf3 will be downloaded onto all hosts.
Section Expectations
1. Connectivity to the public internet will be established for hosts behind CE routers
by
configuring a NAT policy using Port Address Translation,
41 / 89
Advanced_Routing_Services_Lab_Documentation
2. Each site will use the IP address of the egress interface for the NAT policy.
3. Once connectivity is established, iPerf3 will be downloaded across all hosts.
4. An Iperf3 test will be ran across the network between hosts at separate CE sites.
We then need to identify the inside and outside interfaces that we want to be included
in the NAT configuration.
int g0/1
ip nat inside
!
int g0/2
ip nat inside
!
int g0/0
ip nat outside
!
Finally, we will initialize the configuration with the ip nat inside command. Our ACL is
the source list and G0/0 is the egress interface IP address that will be used for
translation purposes.
42 / 89
Advanced_Routing_Services_Lab_Documentation
Device Example
After a successful configuration, we should be able to ping [Link] from a host behind
any CE router.
/ # ping [Link]
PING [Link] ([Link]): 56 data bytes
64 bytes from [Link]: seq=0 ttl=107 time=73.981 ms
64 bytes from [Link]: seq=1 ttl=107 time=40.015 ms
64 bytes from [Link]: seq=2 ttl=107 time=212.349 ms
^C
--- [Link] ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
If DNS has been configured correctly on the host, Iperf3 should download successfully.
We can validate successful NAT translations, and look at the state of our translation
table by running show ip nat translations after connecting to a remote host.
43 / 89
Advanced_Routing_Services_Lab_Documentation
We can see in this output that two outbound connections were translated when we
installed IPerf, the first was a DNS request to [Link] to resolve the hostname dl-
[Link], the second was an HTTP connection to [Link], the alpine
package manager server, to download the IPerf package.
Once this process has been completed across two sites, we should be able to run an
Iperf test between two hosts.
# iperf3 -c 10.D.2.10
Connecting to host 10.D.Y.10, port 5201
[ 5] local 10.A.X.10 port 60532 connected to 10.D.Y.10 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 310 KBytes 2.54 Mbits/sec 0 40.6 KBytes
[ 5] 1.00-2.13 sec 0.00 Bytes 0.00 bits/sec 0 43.3 KBytes
[ 5] 2.13-3.00 sec 134 KBytes 1.26 Mbits/sec 0 46.0 KBytes
[ 5] 3.00-4.00 sec 0.00 Bytes 0.00 bits/sec 0 55.5 KBytes
[ 5] 4.00-5.00 sec 127 KBytes 1.04 Mbits/sec 0 69.0 KBytes
[ 5] 5.00-6.00 sec 191 KBytes 1.56 Mbits/sec 0 96.1 KBytes
[ 5] 6.00-7.13 sec 0.00 Bytes 0.00 bits/sec 0 107 KBytes
[ 5] 7.13-8.00 sec 254 KBytes 2.38 Mbits/sec 0 131 KBytes
[ 5] 8.00-9.14 sec 382 KBytes 2.74 Mbits/sec 0 154 KBytes
[ 5] 9.14-10.00 sec 0.00 Bytes 0.00 bits/sec 0 166 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.37 MBytes 1.15 Mbits/sec 0 sender
[ 5] 0.00-12.62 sec 652 KBytes 423 Kbits/sec receiver
44 / 89
Advanced_Routing_Services_Lab_Documentation
goal
should be to secure traffic to and from spoke networks.
Section Expectations
1. Hosts behind spoke routers should be able to connect to a host in the 10.A.Y.0 hub
network via SMTP.
2. Hosts behind spoke routers should be able to connect to a host in the 10.A.Y.0 hub
network via HTTPS.
3. Hosts behind spoke routers should be able to ping a host in the 10.A.Y.0 hub
network.
4. All hosts should have HTTP and HTTPS access to the internet.
5. All hosts should have DNS via the internet using [Link] as a nameserver.
6. Existing control plane traffic will be allowed
7. Traffic flows will be validated using Iperf3
45 / 89
Advanced_Routing_Services_Lab_Documentation
We can also create an object group for our server and supply a single address.
We will create a third object group to represent the services we will be allowing to the
server.
With all this in place we can satisfy the requirements of item 1 with a single rule.
20 permit object-group SERVER-PORTS - This rule will apply to any packet with a
destination port
defined in SERVER-PORTS
46 / 89
Advanced_Routing_Services_Lab_Documentation
For item 2, we can define another object group, MGMT-SUBNET , and write an ACL to allow
ICMP between our internal networks and management.
One of the benefits of using object-groups within ACL’s is that, if our source or
destination addresses change, we can simply update the object group as opposed to
updating the rule. Now that items concerning VPN traffic are solved for, let's apply this
ACL to our tunnel interface.
interface tunnel 0
ip access-group VPN_POLICY_OUT out
47 / 89
Advanced_Routing_Services_Lab_Documentation
48 / 89
Advanced_Routing_Services_Lab_Documentation
We can apply this ACL to our egress interface in the outbound direction.
interface GigabitEthernet0/0
ip access-group WAN_INTERFACE_OUT out
!
We can write inbound ACL's to control traffic destined to our networks or networks
behind it. It is important to remember that you will not be able to be as specific with
some application ports when writing stateless policy for inbound flows. In most client
server flows, the client uses an application port as a destination, but uses an ephemeral
or random port as a source. This means that if you allow only port 80 on both sides on
an interface for a specific traffic flow, it will break bi-directional communication, as
the return traffic will not be on port 80. This means for an ACL matching web traffic, we
can only permit TCP generally inbound. We would then need to deny other protocols
that run on TCP that we do not want to allow into our network, like SSH and Telnet.
It is also important to note that while outbound ACL's do not match on control plane
traffic generated by the network device, inbound ACL's will match on control plane
traffic destined to the interface or addresses behind it. It is important to understand
what protocols and network services are running before configuring any ACL.
49 / 89
Advanced_Routing_Services_Lab_Documentation
In this example ACL, we have BGP and an IPsec tunnel running to our interface so we
need to permit ESP, ISAKMP and TCP 179 inbound. To handle return web traffic, we
first deny any 40 protocols we do not want to allow in, and then allow TCP generally.
I'm also allowing ICMP for troubleshooting purposes.
We don't have to permit any of the traffic flows that will be riding the tunnel since they
are encapsulated with ESP and will not be inspected, permitting ESP will allow all
traffic that passes the rules of the tunnel interface to traverse the tunnel. At the end we
allow UDP traffic from Google DNS.
Device Example
After successful policy configuration, you should be able to establish iperf sessions on
application ports defined in the section requirements to a host in 10.A.Y.0/24
50 / 89
Advanced_Routing_Services_Lab_Documentation
Standard Iperf3 tests should fail since the default port is not included within our
policies.
# iperf3 -c 10.A.2.10
iperf3: error - unable to connect to server: Host is unreachable
#
We can validate that we are getting hits on access rules using show ip access-lists
CE-RTR-D#sh ip access-lists
Standard IP access list NAT_POOL
10 permit 10.D.X.0, wildcard bits [Link] (3 matches)
20 permit 10.D.Y.0, wildcard bits [Link]
Extended IP access list VPN_POLICY_IN
10 permit eigrp any any (688 matches)
20 permit tcp object-group REMOTE-HOSTS object-group INTERNAL-HOSTS (721 matches)
30 permit icmp object-group MGMT-NETWORK object-group INTERNAL-HOSTS
Extended IP access list VPN_POLICY_OUT
10 permit object-group SERVER-PORTS object-group INTERNAL-HOSTS object-group SERVER
(895 matches)
20 permit icmp object-group INTERNAL-HOSTS object-group MGMT-NETWORK
Extended IP access list WAN_INTERFACE_IN
51 / 89
Advanced_Routing_Services_Lab_Documentation
If you have had to reinstall iperf after enabling your access policies, you will see
outbound hits on HTTP rules to the internet. If you would like to test HTTPS, first
install curl, then curl an HTTPS URL like [Link]
52 / 89
Advanced_Routing_Services_Lab_Documentation
Section Expectations
12. SSH will only be allowed via the tunnel to the management loopback from source
addresses in 10.A.X.0/24.
13. In the event of a down tunnel, spoke routers can be managed via their public
loopback.
43
14. SSH will only be allowed from the public internet via the IP address of the hub
network
public interface.
15. SSH connections attempting to terminate on a spoke router public physical
interface will
fail.
ip domain-name [Link]
crypto key generate rsa modulus 2048
!
53 / 89
Advanced_Routing_Services_Lab_Documentation
We need to create a user account to authenticate against, enable ssh on our virtual
terminal and use the local database for authentication.
We are going to create a new management loopback address and advertise it to the hub
router using EIGRP
int loop 1
ip addr 10.B.99.1 [Link]
!
router eigrp 100
network 10.B.99.1 [Link]
!
We now need to ensure that only hosts with a source address in the management
subnet can SSH to our management IP address. Since we are only concerned with
source addresses here, we can use a standard ACL.
Now we can apply our rules in-bound within our VTY configuration.
line vty 0 5
access-class ALLOW_MGMT in
!
54 / 89
Advanced_Routing_Services_Lab_Documentation
We still need to open up the rules on the tunnel to allow SSH to the loopback address.
Show ip access-list can be used to get the current state of your ACL entries. Ensure that
you are inserting your rules in such a way that they are not skipped by matching an
earlier deny. We can be very specific with this rule as we only want to permit in-bound
ssh and outbound TCP to our management IP address from our management network.
Lets also add the loopback to the INTERNAL-HOSTS object group so it will be included
in the management subnet to internal hosts ICMP policy.
We also need to allow ssh only from the public address of our hub, so we can manage
our spoke in the event that we lose IPsec. We need to add a permit statement that allows
SSH only from the public IP address of our spoke router to our public loopback.
Let’s test out our policies by connecting to our management loopback via SSH from our
host in the management network. You will likely need to install openssh on the
container first. apk add openssh
55 / 89
Advanced_Routing_Services_Lab_Documentation
# ssh admin@10.D.99.1
The authenticity of host '10.B.99.1 (10.B.99.1)' can't be established.
RSA key fingerprint is SHA256:5HemCq1+vg2xjh52ZBLRQf+xMsEH8+WJEuQXBS65YwU.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.B.99.1' (RSA) to the list of known hosts.
Password:
CE-RTR-D#
Management via the tunnel is looking good. Let’s simulate an IPsec outage by shutting
the tunnel interface on a spoke. Here’s what we will see on the hub.
We've lost all our internal routes to the spoke, so if we want to troubleshoot we will
have to ssh at the public loopback.
# ssh admin@100.64.D.1
The authenticity of host '100.64.D.1 (100.64.D.1)' can't be established.
RSA key fingerprint is SHA256:5HemCq1+vg2xjh52ZBLRQf+xMsEH8+WJEuQXBS65YwU.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '100.64.D.1' (RSA) to the list of known hosts.
Password:
CE-RTR-D#
It looks like our configuration is working, let’s validate we are getting hits on the right
policies just to be sure.
CE-RTR-D#sh ip access-lists
Standard IP access list ALLOW_MGMT
20 permit 198.51.100.A (6 matches)
56 / 89
Advanced_Routing_Services_Lab_Documentation
57 / 89
Advanced_Routing_Services_Lab_Documentation
Before completing this section, you will have successfully built a hub and spoke
topology using IPsec and EIGRP to provide reachability to 8 remote networks at four
sites. Access policy has been written that permits desired traffic flows throughout the
network that uses object groups where possible to reduce the administrative overhead
of writing and updating policy.
Section Outline
In this section you will enable MPLS throughout the service provider network to extend
new services to customer routers and eliminate the need for BGP in the service provider
core. You will then configure a MPLS L3VPN to route private customer subnets over the
service provider transport network. Finally, you will use AToM to extend L2
connectivity between two customer sites, and use the new L2 connectivity to exchange
routes between the IPSEC and L3VPN network using OSPF.
Section Expectations
All core router interfaces should participate in MPLS
All provider edge router interfaces that do not connect to customers should participate
in MPLS
All provider edge routers will maintain an iBGP neighborship with internet edge.
All provider edge routers will maintain an iBGP neighborship with each other.
58 / 89
Advanced_Routing_Services_Lab_Documentation
We accomplish this by adding an MPLS label to every packet between the L2 and L3
headers before forwarding it to other MPLS routers. At each hop, the MPLS label in the
packet header will be swapped with a new label relevant to the next router who will be
forwarding the packet. The path a packet takes within the MPLS network is referred to
59 / 89
Advanced_Routing_Services_Lab_Documentation
Because these labels are the only things needed to forward a packet from one edge of an
MPLS network to another, complex topologies and services can be offered with little to
no configuration change within the transport core.
By using MPLS we can do things like; extend L2 connectivity across a L3 network, build
private customer routing tables across a WAN, or tunnel non IP traffic across an IP
network.
We first need to enable MPLS throughout the network. We can enable MPLS forwarding
per interface with:
Interface <interface_id>
mpls ip
Once MPLS has been enabled throughout the network, routers will generate MPLS
labels for all prefixes in the routing table. Routers will then share labels with one
another until an MPLS forwarding table converges. Once this has been accomplished, a
few things will happen:
1. Edge routers will generate an MPLS label for the loopback addresses of all transit
routers participating in OSPF.
2. These loopback addresses also serve as the next hop for all prefixes learned via
BGP, including the default route to the public internet.
3. Edge routers will add an MPLS label to all traffic destined for other edge routers or
the internet.
4. Core routers will stop consulting the RIB when forwarding traffic and will label
switch packets based on the MPLS Label Forwarding Information Base, or LFIB.
We need to validate that MPLS labels have been generated for all loopbacks within the
transport network. To do this, we can do:
sh mpls ldp bindings
60 / 89
Advanced_Routing_Services_Lab_Documentation
This is similar to a show <protocol> topology/database type command, and shows you the
label information that has been exchanged for this particular prefix. I’ve removed some
output here so we can focus on the loopback address for this particular edge router. To
view the actual MPLS labels this router will use for forwarding, we can use
61 / 89
Advanced_Routing_Services_Lab_Documentation
Interpreting the first two lines of this output tells us that this router is directly
connected to [Link], as it will pop the MPLS label off the packet before forwarding.
This is called penultimate hop popping, and is done to save forwarding time for the last
hop router. 10.255.X.6 is reachable via G0/0 and G0/6, and routers should use label 16
when forwarding to traffic destined to 10.255.X.6 to BR-3.
Label generation and exchange should be validated across the transit network, and
once it is determined that all adjacent routers are LDP neighbors, and all labels have
been exchanged. BGP can be shut down on the core routers, specifically:
62 / 89
Advanced_Routing_Services_Lab_Documentation
These routers, which only serve to provide transit connectivity in and out of the
backbone and be shut down.
BR-3#conf t
Enter configuration commands, one per line. End with CNTL/Z.
BR-3(config)#no router bgp 65501
BR-3(config)#
After successfully shutting down BGP, ensure that core routers are only learning OSPF
routes.
BR-1#sh ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
63 / 89
Advanced_Routing_Services_Lab_Documentation
64 / 89
Advanced_Routing_Services_Lab_Documentation
We can see that BR only knows about directly connected networks and networks known
by OSPF. It does not even know a default route. As a final check, show ip route bgp
shows no output.
Our pings will be natively forwarded from our edge router to LR-AR-1, from there LR-
AR-1 will consult its routing table to determine the next hop router for [Link]/0, which
in this topology will always be 10.255.X.1.
65 / 89
Advanced_Routing_Services_Lab_Documentation
It will consult the MPLS forwarding table to determine which label it’s LDP neighbors
have generated for [Link], it then pushes this label onto the label stack, and
forwards it to either BR-1 or BR-3.
Let’s assume that BR-1 receives the packet. Let’s take a look at what BR-1 will do when
it receives MPLS label 32.
BR-1 knows it is the last hop before reaching 10.255.X.1, so it pops the label and
forwards it out of either G0/0 or G0/4, both directly connected interfaces to 10.255.X.1
From there, [Link], or our edge, will consult it’s IP routing table to determine where
the packet should be forwarded.
66 / 89
Advanced_Routing_Services_Lab_Documentation
The packet gets forwarded natively out to the internet. The response returned will
require the edge router to consult it’s routing table for the destination network of our
customer edge.
It will then consult the MPLS forwarding table for the label for 10.255.X.7
Let’s assume that the edge router uses label 28 via G0/2, it’s directly connected link to
BR-1.
Let’s see what BR-1 does when it receives a packet with label 28.
67 / 89
Advanced_Routing_Services_Lab_Documentation
BR-1 is the last MPLS hop for this flow, so it pops the label and forwards the packet to
10.255.X.7, who in turn forwards it to our customer edge router.
This is the true power of MPLS. BR-1 can now forward traffic destined to any of our
customer edges or the internet without having any information in its RIB for how to
reach these networks.
Section Expectations
68 / 89
Advanced_Routing_Services_Lab_Documentation
The egress routers will utilize two separate links, one for internet traffic and one
for VPN traffic, the spoke routers will utilize only a VPN link
Customer private links should consist of /30’s in the [Link]/16 network.
All customer edge routers will use a different ASN.
All customer routers within the L3VPN will configure at least one host, and
advertise at least one host subnet into the VPN.
The internet egress routers will identify the source subnets used by all sites and
will configure NAT policy to translate internet bound traffic to its public IP
address.
BGP Policy coordination with service provider routers will be used to create path
diversity for internet-bound traffic.
Failover testing will be performed to validate that a new path will be selected
when default route failures are propagated into the VPN from an egress router.
Each provider router needs to configure a VRF and place the customer link in the
VRF.
69 / 89
Advanced_Routing_Services_Lab_Documentation
Each provider router needs to configure the VRF with a route descriptor, and to
export and import VRF routes of the same route descriptor using a route target.
Each provider router needs to activate the vpnv4 address family within the BGP
routing process for all peers who will be providing L3VPN service.
Each customer router needs to establish an eBGP session with the provider router,
and advertise subnets using BGP into the L3VPN.
When PE routers send customer traffic into the VPN, two labels will be pushed onto the
MPLS label stack, a VPN label, and a transport label. The transport label is the
outermost MPLS label, and is used for forwarding within the network core. From the
perspective of the local PE, this will be the label in the LFIB for the loopback address of
the remote PE. This label will be swapped by MPLS routers along the LSP until the
packet reaches the remote PE. The VPN label will sit below the transport label, and will
be popped by the remote PE when it receives the packet. The VPN label allows the
remote PE to select the proper customer VRF used to natively forward the packet along
to the customer.
ip vrf vpn-customer-01
rd 655XX:X
route-target both 655XX:X
We then need to identify the customer facing interface, and place it in the VRF.
interface <interface_id>
ip vrf forwarding vpn-customer-01
ip addr 172.16.254.X [Link]
We then need to activate the VPNv4 address family for all peers that will be providing
VPN service.
70 / 89
Advanced_Routing_Services_Lab_Documentation
LR-AR2-2(config-router-af)#
*Jul 20 19:29:01.820: %BGP-5-NBR_RESET: Neighbor [Link] reset (Capability
changed)
*Jul 20 19:29:01.845: %BGP-5-ADJCHANGE: neighbor [Link] Down Capability changed
*Jul 20 19:29:01.846: %BGP_SESSION-5-ADJCHANGE: neighbor [Link] IPv4 Unicast
topology base removed
from session Capability changed
*Jul 20 19:29:02.831: %BGP_SESSION-5-ADJCHANGE: neighbor [Link] VPNv4 Unicast
topology base removed
from session Capability changed
*Jul 20 19:29:02.835: %BGP-5-ADJCHANGE: neighbor [Link] Up
Our internet routers also need some additional configuration, a NAT policy which will
translate all source IPs advertised into the VPN into the hub public ip address.
71 / 89
Advanced_Routing_Services_Lab_Documentation
We need to identify the MPLS VPN interface and our host interface as NAT inside
interfaces.
interface GigabitEthernet0/0
ip address 172.16.254.X [Link]
ip nat inside
interface GigabitEthernet0/1
ip address [Link].0.1 [Link]
ip nat inside
We then need to identify our internet facing interface as the outside interface.
interface GigabitEthernet0/2
ip address 198.51.100.E [Link]
ip nat outside
72 / 89
Advanced_Routing_Services_Lab_Documentation
We can coordinate with our service provider edges and use BGP communities to
influence the PE routing table. Each PE router maintains a separate BGP table that
contains all the routes exchanged into the VPN. We can set a specific community on
default routes advertised into the VPN from different internet routers, and match on
that community to set the weight in the local routing table.
On our CE router, our route map needs two statements: A statement that matches our
default route and adds a standard community, and a statement that matches the host
subnets advertised into the VPN. We can define two prefix lists that describe the
subnets we are planning on advertising.
We can then create a single route map that tags the default route with a community and
simply matches and permits our other subnets.
Finally, we can apply this route map to the PE neighbor and configure the BGP process
to send the community.
73 / 89
Advanced_Routing_Services_Lab_Documentation
The PE router who receives community tagged routes will need to be configured to send
both standard and extended communities to the router who’s BGP table must be
manipulated. When activating the neighbor for the VPNv4, the send-community-
extended command is implemented by default, we must configure the sending of both
standard and extended communities manually.
The PE router who will be influencing default route selection needs two things: A
community list, and route map to match the community sent by the remote PE. The
route map will require two statements, one to match the community, and one to allow
routes not tagged by any community.
We then create a route-map that has two statements, one that matches the community
and one that matches all other routes advertised by the CE into the VPN. We can
accomplish the second requirement by matching the ASN of the advertising CE router.
L3VPN Verification
Once BGP is established between provider edge routers and customer edge routers, the
BGP table for the VPN can be viewed with:
74 / 89
Advanced_Routing_Services_Lab_Documentation
We can see that all four customer subnets have been advertised into the VPN. We can
also see that two default routes have been advertised into the VPN. This is a router
where we are doing path manipulation, and we can see that we have set the default
route advertised from PE [Link] with a weight of 200 and selected it as the best
path.
75 / 89
Advanced_Routing_Services_Lab_Documentation
From the perspective of the CE router, all paths are available via the PE. Default route
manipulation is not visible from the CE router.
Test pings should succeed between all hosts within the VPN.
# ping [Link].0.10
PING [Link].0.10 ([Link].0.10): 56 data bytes
64 bytes from [Link].0.10: seq=0 ttl=59 time=570.566 ms
64 bytes from [Link].0.10: seq=1 ttl=59 time=156.791 ms
76 / 89
Advanced_Routing_Services_Lab_Documentation
Hosts within the VPN should have internet connectivity by forwarding traffic to
internet routers.
# ifconfig
eth0 Link encap:Ethernet HWaddr 26:CB:EA:17:E2:CE
inet addr:[Link].0.10 Bcast:[Link] Mask:[Link]
inet6 addr: fe80::24cb:eaff:fe17:e2ce/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:93 errors:0 dropped:64 overruns:0 frame:0
TX packets:19 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:11831 (11.5 KiB) TX bytes:1454 (1.4 KiB)
# ping [Link]
PING [Link] ([Link]): 56 data bytes
64 bytes from [Link]: seq=0 ttl=101 time=226.312 ms
64 bytes from [Link]: seq=1 ttl=101 time=129.416 ms
64 bytes from [Link]: seq=2 ttl=101 time=193.458 ms
64 bytes from [Link]: seq=3 ttl=101 time=62.225 ms
We should be able to validate NAT translations for internet-bound traffic from our hub
router.
When tracing a route to the internet, hosts in non-internet sites should take diverse
paths, and use a different public IP address. I have configured [Link] as a loopback on
the core-edge router in the provider network for a quicker traceroute.
77 / 89
Advanced_Routing_Services_Lab_Documentation
Downing an interface on one of the routers advertising a default route into the VPN
should cause BGP tables for all routers to use the backup path, including the internet
egress router that experienced internet failure.
CE-RTR-12(config)#int g0/2
CE-RTR-12(config-if)#shutdown
CE-RTR-12(config-if)#
*Oct 8 19:25:22.312: %LINK-5-CHANGED: Interface GigabitEthernet0/2, changed state to
administratively
down
78 / 89
Advanced_Routing_Services_Lab_Documentation
We can see that the default route is now the PE router. From the perspective of the PE
router performing path manipulation, the redundant internet path should be removed,
and the non-weighted path should take preference.
A traceroute from the same host who originally used the failed path should
automatically take a new path using the alternate internet router.
79 / 89
Advanced_Routing_Services_Lab_Documentation
# traceroute [Link]
traceroute to [Link] ([Link]), 30 hops max, 46 byte packets
1 [Link].0.1 ([Link].0.1) 328.599 ms 59.070 ms 4.251 ms
2 [Link] ([Link]) 12.376 ms 44.684 ms 90.954 ms
3 10.X.1.129 (10.X.1.129) 61.501 ms 287.903 ms 387.174 ms
4 [Link] ([Link]) 69.148 ms 146.013 ms 696.046 ms
5 [Link] ([Link]) 323.546 ms 822.571 ms 579.647 ms
6 [Link] ([Link]) 270.662 ms 163.328 ms 144.782 ms
7 * * *
8 10.X.1.13 (10.X.1.13) 814.336 ms 500.170 ms 156.254 ms
# traceroute [Link]
traceroute to [Link] ([Link]), 30 hops max, 46 byte packets
1 [Link].0.1 ([Link].0.1) 15.071 ms 202.039 ms 298.292 ms
2 [Link] ([Link]) 62.157 ms 17.576 ms 358.618 ms
3 10.X.1.129 (10.X.1.129) 429.122 ms 211.830 ms 109.892 ms
4 10.X.1.4 (10.X.1.4) 269.552 ms 75.664 ms 624.871 ms
5 [Link] ([Link]) 26.703 ms 183.637 ms 80.170 ms
6 [Link] ([Link]) 370.722 ms 387.636 ms 683.058 ms
7 [Link] ([Link]) 516.944 ms 713.968 ms 607.993 ms
8 * * *
9 10.X.1.9 (10.X.1.9) 791.808 ms 667.321 ms 224.222 ms
Section Expectations
A new link connecting each customer router to the provider network will be configured.
The L3VPN and IPSEC hubs will configure the interface connected to the new link with
an IP address in the same subnet.
Provider edge routers facilitating the VPN between both hubs will configure AToM
using the new link to extend layer 2 connectivity between both customers.
80 / 89
Advanced_Routing_Services_Lab_Documentation
Customer edge routers will run OSPF over the L2VPN link and redistribute host
networks. IPSEC spoke policy will be updated to permit ICMP and MYSQL (3306) to
hosts in the L3VPN.
We need to configure the new interfaces for our L2 VPN on each customer edge, we can
activate OSPF on these interfaces as well:
interface GigabitEthernet0/3
ip address [Link] [Link]
ip ospf 2XX area 0
The OSPF subnets our router learns are learned as External Type-2 due to them being
redistributed into OSPF from EIGRP. The BGP redistribution command will only match
intra-area and inter-area (O, O IA) routes by default. To redistribute E2 routes, we will
need to utilize the match keyword.
82 / 89
Advanced_Routing_Services_Lab_Documentation
We can also define the services our hosts can use to connect to the L3VPN hosts.
For the inbound policy we will allow ICMP and all inbound TCP connections from the
SQL server group.
AToM is configured at the interface level. And requires defining the virtual circuit
endpoint IP address and MPLS label on both sides of the circuit.
83 / 89
Advanced_Routing_Services_Lab_Documentation
interface <interface_id>
no ip address
xconnect 10.255.X.B <label> encapsulation mpls
AToM Validation
We can validate that our new virtual circuit is functional by running show mpls
l2transport vc
On our provider edges.
OSPF should establish between both neighbors once the VC has been established.
CE-RTR-4#
*Oct 4 22:55:42.366: %OSPF-5-ADJCHG: Process 200, Nbr [Link] on
GigabitEthernet0/3 from LOADING to
FULL, Loading Done
CE-RTR-4#
Our L3VPN hub should have OSPF routes for all the subnets within the IPSEC topology.
84 / 89
Advanced_Routing_Services_Lab_Documentation
Our IPSEC hub should have OSPF routes for all subnets within the L3VPN topology.
The IPSEC spokes should know about our L3VPN subnets via EIGRP.
85 / 89
Advanced_Routing_Services_Lab_Documentation
The L3VPN routers should know about our IPSEC subnets via BGP.
86 / 89
Advanced_Routing_Services_Lab_Documentation
If our security policy has been updated successfully, we should have connectivity
between our L3VPN hosts and our IPSEC hosts.
# ifconfig
eth0 Link encap:Ethernet HWaddr 5A:E7:84:BA:CB:11
inet addr:10.C.X.10 Bcast:[Link] Mask:[Link]
inet6 addr: fe80::58e7:84ff:feba:cb11/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1 errors:0 dropped:0 overruns:0 frame:0
TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:74 (74.0 B) TX bytes:586 (586.0 B)
# ping [Link].0.10
PING [Link].0.10 ([Link].0.10): 56 data bytes
64 bytes from [Link].0.10: seq=0 ttl=56 time=369.486 ms
64 bytes from [Link].0.10: seq=1 ttl=56 time=317.073 ms
64 bytes from [Link].0.10: seq=2 ttl=56 time=845.465 ms
64 bytes from [Link].0.10: seq=3 ttl=56 time=851.060 ms
87 / 89
Advanced_Routing_Services_Lab_Documentation
CE-RTR-5#sh ip access-lists
Standard IP access list ALLOW_MGMT
10 permit [Link]
20 permit 10.A.X.0, wildcard bits [Link]
Standard IP access list NAT_POOL
10 permit 10.C.X.0, wildcard bits [Link] (2 matches)
20 permit 10.C.Y.0, wildcard bits [Link]
Extended IP access list VPN_POLICY_IN
10 permit eigrp any any (286 matches)
20 permit tcp object-group REMOTE-HOSTS object-group INTERNAL-HOSTS
30 permit icmp object-group MGMT-NETWORK object-group INTERNAL-HOSTS
40 permit tcp object-group MGMT-NETWORK host [Link] eq 22
50 permit icmp object-group MSQL-SERVERS object-group INTERNAL-HOSTS (5 matches)
60 permit tcp object-group MSQL-SERVERS object-group INTERNAL-HOSTS (271
matches)
88 / 89
Advanced_Routing_Services_Lab_Documentation
Conclusion
Congratulations on completing the lab. The network you have constructed has used
multiple overlay technologies, routing protocols and access policies to achieve our
primary goal as network engineers, providing access to resources. You have seen the
difference between building an overlay network over the public internet and using a
service provider VPN. You have learned how MPLS can be used to move traffic over an
overlay network, and how service providers use it to extend special means of
connectivity to customers. You have written basic policies to control access to a specific
resource, and updated those policies when new requirements are made on the network.
The lab does not need to stop here! There are many improvements or changes that can
be made to this network that you can research and consider implementing. Here are
some ideas to get you started:
Transitioning the iBGP service provider topology into a design that utilizes route
reflectors
Adding redundant connections at all sites for the internet
Improving the failover times in the service provider network
Adding security policy for the L3VPN network
Controlling the route redistribution between the the IPSEC network and the
L3VPN network to advertise only a specific subset of networks
Adding route tracking to the statically routed internet connections for automatic
failove
89 / 89