Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Designing and Developing Scalable IP Networks.pdf
Скачиваний:
36
Добавлен:
15.03.2015
Размер:
2.95 Mб
Скачать

2

HARDWARE DESIGN

1.1SEPARATION OF ROUTING AND FORWARDING FUNCTIONALITY

One of the major steps forward in ensuring scalability in network performance over the past few years has been the move towards the separation of routing and forwarding functionality. Put simply, the process of calculating the forwarding table is run on different hardware from that responsible for actually implementing the packet forwarding.

By separating these functions onto different hardware modules it is possible to continue forwarding packets at line rate even in the presence of severe disruptions to the network topology. Designs based on general-purpose processors have to use processor cycles to make both the routing decisions and the forwarding decisions. Therefore, if the network topology is dramatically and repeatedly updated, the processor with a fixed number of cycles is required to take cycles from the forwarding tasks to carry out the routing tasks or vice versa.

1.2 BUILDING BLOCKS

A router based on the principles of separation of routing and forwarding functionality is based on a few simple building blocks, (see Figure 1.1).

Mgmt

Console

Auxilliary

Ethernet

Port

Port

Control Module

CM to FM interconnect

Forwarding Module

Linecard × N

Intf × N

Figure 1.1 The logical architecture of an IP router (separate forwarding and routing planes)

1.2 BUILDING BLOCKS

3

1.2.1CONTROL MODULE

The control module is responsible for running the routing protocols, creating a routing table from the sum of the routing information received and generating a forwarding table from the routing table. This includes the enforcement of policy relative to the routing information being imported and exported. In addition to the routing function, this module provides Command Line Interface (CLI), management and logging functionality.

1.2.2FORWARDING MODULE

The forwarding module is responsible for the receipt of packets, decoding the Layer 1, Layer 2 and Layer 3 information and sending that packet to the appropriate output interface (or interfaces in the case of multicast) where it is re-encoded with Layer 3, Layer 2 and Layer 1 information before transmission onto the wire. The forwarding module is also the ideal location for implementing access control/firewall filters and class/quality of service. ASIC and Network Processor-based devices tend to implement these features in the forwarding module. Traditional, software-based routers always had to send every packet to the CPU if any of these features were enabled. This was one of the main reasons why software-based routers were unable to implement complex services while maintaining high packet throughput.

1.2.3NON-STOP FORWARDING

Non-stop forwarding is the generic term for the ability of a router to carry on forwarding packets even though the device responsible for the calculation of the routing and forwarding tables is temporarily inoperable. The specific reason for the inoperability of the routing device is really of no importance at this stage of the discussion. Non-stop forwarding fundamentally relies on the separation of routing and forwarding functionality within the router. In addition, each routing protocol requires a number of modifications to the protocol operation in order to prevent the clearance of routes associated with the failed protocol from the forwarding table on the forwarding modules, both on the local router and on the neighbours of the local router, while the routing process or module recovers.

1.2.4STATEFUL FAILOVER

This takes non-stop forwarding concept one step further. In a switch or router with redundant control modules it is possible to duplicate the state associated with routing protocols from the master routing module to the slave routing module. The slave control module is held in a state in which it can ‘instantly’ take over the operation of a failed master control module. Generally, the slave can take over operations within a matter of seconds.