連載
» 2012年10月24日 00時00分 公開

CCNP対策講座 ROUTE編(9):BGPアトリビュートの設定 (1/2)

本連載では、シスコシステムズ(以下、シスコ)が提供するシスコ技術者認定(Cisco Career Certification)から、ネットワーク技術者を認定する資格、CCNP(Cisco Certified Network Professional)のうち、【642-902 ROUTE】を解説します。

[齋藤理恵,グローバル ナレッジ ネットワーク]

 第8回でBGPのアトリビュートについて学習をしました。パスアトリビュートは最適経路を判断するための値で、IGPsのメトリックに相当するものでした。今回は複数のアトリビュートの中から特に重要なアトリビュートの設定方法について学習しましょう。

アトリビュートの設定

 NEXT−HOP、LOCAL_PREFERENCE、MEDアトリビュートの設定方法について説明します。

●NEXT_HOP(wellknown- mandatory)

 BGPがアドバタイズするアップデートの中には、ネットワークアドレス、サブネットマスク、さまざまなアトリビュートが含まれますが、ネクストホップもアトリビュートの1つです。OSPFやEIGRPのようなIGPsのネクストホップは宛先ネットワークへパケットを到達するための「次のルータ」という考え方でした。

 BGPのネクストホップは「次のルータ」ではなく、「次のASに到達するIPアドレス」を意味します。EBGPネイバーにアップデートを送信する時に自分のIPアドレスをネクストホップとして付加し送信します。

 しかしIBGPネイバーに送信するときは、デフォルトではネクストホップを変更せずに送ります。そうなるとネクストホップの到達性の問題点がでてきます。しかしこの問題点はnext-hop-selfコマンドを入力することで解決できます。流れは次の通りです。

図1 ネクストホップの到達性 図1 ネクストホップの到達性

 next-hop-self設定前の状態をみると、ルータAからEBGPネイバーであるルータB宛にBGPアップデートを送信しています。このときのネクストホップアドレスはルータAのIPアドレスである172.16.1.1になっています(【1】)。

 ルータBがアップデートを受信すると、IBGPネイバーであるルータCへアップデートを送信します。このとき。ネクストホップアドレスは変更せずに送信します(【2】)。

 ルータCはルーティングテーブルにBGPルートを学習していますが、10.10.10.0/24宛へパケットを送信するためには、ネクストホップである172.16.1.1に到達できなければなりません。ルータCはネクストホップへ到達できないため、たとえパケットが届いても破棄されてしまいます。

 パケットを送信するためには、ネクストホップへの到達性が必要です。しかし、ルータA?B間のリンクは異なるAS間のリンクのため、どちらの管理下にも置かれません。そのため、直結しているルータのみ保持するのが一般的です。そのようなときは、ルータBにnext-hop-selfコマンドを入力することでルータBがルータCにアップデートを送信するときにネクストホップをルータBのアドレスに変更して送信できます。

 なお、next-hop-selfコマンドはASの境界ルータで設定します。このように設定することでルータCは10.10.10.0/24宛のパケットはルータBに送信し、ルータBはネクストホップである172.16.1.1経由でパケットを送信できます。next-hop-self以外にルータCにスタティックルートを書いても問題は解決できます。

<設定コマンド>
方法【1】:next-hop-selfをルータBで設定

(config)#router bgp 65002
(config-router)#neighbor ネイバーのIPアドレス next-hop-self
            (ルータCのIPアドレス)

<設定コマンド>
方法【2】:スタティックルートをルータCで設定(グローバルコンフィグレーションモード)

(config)#ip route 172.16.1.1 255.255.255.255 ネクストホップ
                                         (ルータBのIPアドレス)

●LOCAL_PREFERENCE(wellknown-discretionary)

 自ASから他ASにパケットをルーティングするとき、自ASのどの出口ポイントを使用するかを指定できます。値が大きい方が優先されます(デフォルト値は100)。AS内のみで有効な値であるため、次のASにアドバタイズする時に値は削除されます。また値が大きい方が優先されます。

図2 LOCAL_PREFERENCE 図2 LOCAL_PREFERENCE

 AS65004が自ASになっています。AS65001からBGPアップデートが送信されています(【1】)。自AS内のルータであるAとBはEBGPネイバーからアップデートを受信した時にLOCAL_PREFERENCEの値を設定します(【2】)。それをIBGPネイバーであるルータCに送信します(【3】)。

 ルータCは値を見て大きい方が優先と判断し、ルータB経由のルートをベストパスに選定しています(【4】)。10.10.10.0/24宛のユーザーパケットがルータCに届くとルータB経由で送信されます(【5】)。)

 このように、ルーティングアップデートの向きとユーザーパケットの向きは別であること理解してください。

<設定コマンド【1】ルートを指定するためのアクセスリストを設定>

(config)#access-list 1 permit 10.10.10.0  0.0.0.255 (LPを設定したい特定のルート)

<LOCAL_PREFERENCE設定コマンド【2】ルートマップを作成>

(config)#route-map LP permit 10
        match ip address 1(ACL 1にマッチするルート)
        set local-preference 200(300)
        route-map LP permit 20

※route-mapには暗黙のdeny anyがあるため空のpermit文がないとACL1にマッチするルート以外受信できなくなってしまうため必要です(ルートマップについては「第6回 ポリシーベースルーティングとは」を参照してください)。

<LOCAL_PREFERENCE設定コマンド【3】BGPネイバーと関連付け>

(connfig)#router bgp 65004
(config-router)#neighbor ネイバーのIPアドレス route-map LP in
             (ルータAまたはBから見てEBGPネイバーのIPアドレス) (作成したルートマップ名)

 このように設定すると、ルータAとBがEBGPネイバーからアップデートを受信したときにACL1にマッチするルート(10.10.10.10/24)に対してLP200(300)を設定、その他のルートはデフォルトのLPのままIBGPネイバーであるルータCにアップデートを送信します。inバウンドで設定することによりAS内で一貫した値が保持されます。

確認問題1

  • 問題

 LOCAL_PREFERENCEについて正しい説明を、次の選択肢の中から2つ選択しなさい。

a.値が大きい方が優先される
b.分類はoptional-nontransitiveである
c.EGBPネイバーに対してinバウンドで設定する
d.EGBPネイバーに対してoutバウンドで設定する

  • 正解

 a・c

  • 解説

 正解はa・cです。LOCAL_PREFERENCEは値が大きい方が優先されます。分類はwellknown-discretionaryです。一貫した値で設定するには、EBGPネイバーからBGPアップデートを受信した時に値を設定し、それをIBGPネイバーに送信するためinバウンドで設定する必要があります。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。