## Introduction

The purpose of this exercise is to:

- Introduce a second border router (for future NREN connection)

- Enable IS-IS to exchange internal routing information

- Configure static default route towards a service provider

## Topology of Module 1

Here is the topology of Module one. It is made up of three Groups (1,2,3), and their ISP. We have added another border router, ready for when we add the NREN connectivity to our Group’s infrastructure.

## Topology of Module 2

Here is the topology of Module two. It is made up of three Groups (4,5,6), and their ISP. We have added another border router, ready for when we add the NREN connectivity to our Group’s infrastructure.

## Topology of the whole Lab

The entire workshop lab is interconnected as in the following diagram - the two ISPs connect to each other via the IXP. Notice the addition of the new border router in each Group.

The network configuration is designed to be modular to allow the lab to grow as needed depending on the number of participants. Each module contains 1 ISP and 3 customer networks (universities, etc). Modules are to be interconnected as we will see.

## Configuring the new Border Router

Using the configuration guidelines in the previous exercise, configure the new Border Router BX1. Don’t forget to configure the matching interface on your Core Router, CX1.

HINT: The configuration for BX1 will be very similar to that of your Border Router BX2. Do not include the static routes though as we are introducing Dynamic Routing in this exercise.

Make sure that BX1 can ping CX1 and vice-versa using both IPv4 and IPv6. Use the commands introduced in the previous exercise.

STOP - Checkpoint One

All groups must finish this part before continuing. Please do NOT continue until the instructor says so.

## Creating Loopback and Null Interfaces

### Loopback interface

Create the Loopback interface. We will need it later on for BGP (and indirectly for IS-IS as well). The example given is for BX1 - modify this to suit your Group and which router in the Group.

On BX1:

    interface loopback 0
     ip address 100.68.X.1 255.255.255.255
     ipv6 address 2001:db8:X::1/128

do the same for BX2 and CX1 (obviously, using different addresses). Hint: BX2 will use the second address and CX1 will use the third address.

### Null Interface

Create Null interface and disable unreachable processing. This is a best practice configuration which ensures that the router will not send ICMP unreachable messages for traffic which lands on the Null interface.

    interface null 0
     no ip unreachables

## Introducing Dynamic Routing

Try pinging the loopback addresses of your neighbour

    RX1# ping 100.68.X.2     <- BX2 loopback
    RX1# ping 2001:db8:X::2  <- BX2 loopback

What happens?

Can you explain why?

### Set up IS-IS

Now we will configure a new IS-IS routing process.

We will use the string “asX0” as the IS-IS process identifier for routers BX1, BX2 and CX1. This identifier is local to the router, so it doesn’t need to match the process identifier of a neighbouring router. However, it is strongly recommended that you use the same number throughout your network. (For example, Group One would use the string “as10”. Notice that this number looks the same as the AS number for your group - but there really is no relationship between them.)

Recall from the IS-IS presentation that there were two suggested ways of configuring an NET address. We will use the alternative and simpler method here1, namely 49.0001.group.loop.00. For example, for B11 the loopback is 100.68.1.1, for B12 the loopback is 100.68.1.2, and for C11 the loopback is 100.68.1.3. So the NETs for these routers will be 49.0001.0001.0001.00 for B11, 49.0001.0001.0002.00 for B12 and 49.0001.0001.0003.00 for C11.

Finally, we will run our entire network as L2 only - there is no requirement for L1 until the network becomes really large (>400 routers).

On BX1:

    router isis asX0
     net 49.0001.000X.0001.00
     is-type level-2-only

#### Wide Metrics

We also set the metric-style to wide. IS-IS supports two types of metric, narrow (historic now and not suitable for modern networks) and wide. Cisco IOS still defaults to narrow metrics, so we need to enter configuration to change this to wide.

    router isis asX0
     metric-style wide

#### Default Metrics

The default metric in IS-IS is 10, on all interfaces irrespective of their physical bandwidth. It is considered best practice these days to change the default metric from 10 to a very high value, for example 100000, so that there are no network outages caused by misconfiguration of newly introduced routers, or misconfigured interfaces which could accidentally and unintentionally take full traffic load.

    router isis asX0
     metric 100000

#### Multi-Topology

We also need to activate multi-topology IS-IS so that we can support IPv6 across our network. Multi-topology allows IPv6 to be deployed incrementally, but it also reduces the chances of network outages or accidents if IPv6 configuration is omitted on any backbone links.

    router isis asX0
     address-family ipv6
      multi-topology

#### Overload

We also need to let IS-IS know about when a router has newly rebooted, that it should not be considered for carrying traffic until iBGP (in the next lab) is up and running. (With no iBGP, as the case is now, the configuration below has no effect.)

    router isis asX0
      set-overload-bit on-startup wait-for-bgp
     address-family ipv6
      set-overload-bit on-startup wait-for-bgp

The overload bit is used to signal to IS-IS neighbours that the router is “overloaded” and should not be used for traffic. However, in today’s networks, network operators use the overload bit to indicate that the router should not carry traffic until BGP is operational.

#### Neighbour Authentication

Neighbour authentication is highly recommended. First we create a suitable key-chain:

    key chain isis-asX0
     key 1
      key-string nsrc-isis

And then we apply the key-chain to the IS-IS process (which means that neighbour authentication will apply on all interfaces where adjacencies will be established):

    router isis asX0
     authentication mode md5 level-2
     authentication key-chain isis-asX0 level-2

### IS-IS on Interfaces

Now configure IS-IS on the interfaces where adjacencies need to be established. Note that point-to-point connections using broadcast media such as Ethernet should be declared as point-to-point.

On BX1 and BX2:

    interface GigabitEthernet2/0
     isis network point-to-point
     ip router isis asX0
     isis metric 2
     ipv6 router isis asX0
     isis ipv6 metric 2

A similar configuration is needed for the two interfaces on CX1 which connect to BX1 and BX2.

### Announcing Loopback addresses

Finally, we need to announce the loopback interface address by IS-IS as well:

    router isis asX0
     passive-interface Loopback0

## Checkpoint

Now try the following show commands:

    sh clns neighbor   : show CLNS adjacencies
    sh isis neighbor   : show IS-IS adjacencies
    sh ip route        : show the IPv4 routes in routing table
    sh isis ip rib     : show the IPv4 ISIS RIB
    sh ipv6 route      : show the IPv6 routes in routing table
    sh isis ipv6 rib   : show the IPv6 ISIS RIB

Repeat the last ping tests. Can you ping the loopback address of the neighbouring router now?

## Static default routes

In the previous exercise we configured a large number of static routes on CX1 and BX2 so that we could reach the other groups in the lab. Clearly, the more groups we add, the harder it is going to be to maintain this whole static route structure. Which is why we do not use static routes very much in the day to day operational Internet.

### Removing explicit Statics

Search through your configuration and look for the static routes that were created in the previous lab:

    BX2# show run | include ^ip route

will show you all lines beginning with ip route, the static routes set up earlier. There is a similar command you can use for IPv6 - can you guess what it is?

To remove the routes, simply put the no keyword in front of the static route commands you used earlier - or use a text editor and take the output from the above command. For example, removing the two static routes for ISP1 and ISP2 address space on C11 is achieved like this:

    no ip route 100.121.0.0 255.255.0.0 100.68.1.18
    no ip route 100.122.0.0 255.255.0.0 100.68.1.18

Do the same for all the other static routes configured on CX1 and BX2.

### Setting up Defaults

Configure static default routes to reach the outside world.

On B22:

    ip route 0.0.0.0 0.0.0.0 100.121.1.5
    ipv6 route ::/0 2001:18:0:11::0

Also on BX2 we are going to originate a default route using IS-IS:

    router isis asX0
     default-information originate
     !
     address-family ipv6
      default-information originate
     !

This will originate a default route into IS-IS so long as there is a default route in the router’s global RIB. (In other words, so long as the next hop of the default route we just configured on BX2 is reachable, IS-IS will originate a default route towards its neighbours.)

Q. Why do we not need to configure any static routes on BX1 or CX1?

### Testing Routing

Do some ping and traceroute tests. For example, on C11, try pinging Group 2 and Group 3 routers.

    C11# ping 100.68.2.1
    C11# ping 100.68.3.1
    C11# traceroute 100.68.2.1
    C11# traceroute 100.68.3.1

Can you reach the routers in other networks?

Don’t forget to save your configurations before completing this lab.

1. The alternative, commonly used, method builds the NET from the entire IPv4 loopback address. In this method, we take the address (e.g. 192.168.1.1), insert the leading zeroes (e.g. 192.168.001.001) and then move the “dots” to create a number with 4 character fields (e.g. 1921.6800.1001) and then use this as the major part of the NET address.↩︎