第8回と第9回では,ネットワークの信頼性を向上させる目的でルーターやレイヤー3スイッチがサポートしている高信頼化機能を紹介しました。今回は少し視点を変えて,信頼性の高いネットワークを構築するためにルーターやレイヤー3スイッチの実装面で工夫している点を紹介したいと思います。

ルーターやレイヤー3スイッチに求められること

 ルーターやレイヤー3スイッチの役割は,パケットを目的のネットワークへ向けて転送することです。ただし,パケットの転送処理だけをしていればいいわけではありません。OSPF(open shortest path first)など経路情報を管理するためのルーティング・プロトコルや,ARP(address resolution protocol)/NDP(neighbour discovery protocol)などのアドレス解決を行うためのプロトコル,VRRP(virtual router redundancy protocol)などルーターやレイヤー3スイッチの冗長化を可能にするプロトコルなど,さまざまなプロトコルの処理を同時に実行しています。

 その動作についてアラクサラネットワークのシャーシ型レイヤー3スイッチ「AX6700S」を例に簡単に説明します。図1はAX6700Sのモジュール構成とパケットの処理動作概要を示しています。

図1●AX6700Sのモジュール構成とパケットの処理動作の概要
図1●AX6700Sのモジュール構成とパケットの処理動作の概要

 AX6700Sはフォワーディング・エンジンとコントロール・エンジンからなるモジュール構成をとります。フォワーディング・エンジンはパケットの転送処理に特化したASIC(application specific IC:特定用途向けIC)を搭載し,転送処理の高速化を実現します。一方,コントロール・エンジンには汎用のCPUを利用しています。このCPUでは,OSPFなどのルーティング・プロトコルのほか,VRRP,ARP/NDPといった様々なプロトコルの制御パケットの処理を行います。

 また,CPUではASICによる転送が困難である通常のパケット(以下非制御パケットと呼ぶことにします)に対しての転送処理も行います。非制御パケットには,ARP/NDPによるアドレス解決の必要なIPパケットや,IPヘッダーにオプションの付いたIPパケット,経路情報の未学習なIPマルチキャストのパケットなどが含まれます。

 AX6700Sで処理されるプロトコルのうち,OSPFやVRRPなど他のルーターとの間で互いに状態を監視し合うタイプのプロトコルについては注意が必要となります。なぜなら,ネットワークを安定して稼働させるためには,こうしたプロトコルが支障なく動作する必要があるからです。

 具体的に言うと,ルーター/レイヤー3スイッチ間でやりとりされる相互監視のための制御パケット――OSPFではHelloパケット,VRRPではadvertiseパケット――のやりとりを安定的に行う必要があるのです。こうした制御パケットの取りこぼしが発生すると,OSPFやVRRPでは他のルーターとコネクションが切断したと判断し,ネットワークのトポロジを変更するように動きます。例えばVRRPではバックアップとして稼働中のルーターがマスターに遷移します。こうした動作が発生するので,ルーターで制御パケットの取りこぼしが何度も発生するようだと,ネットワークが不安定になってしまうのです。