スタティックルート,アグリゲートルート,生成ルート

スタティックルート,アグリゲートルート,生成ルート

ルーティングプロトコルに依存しない経路制御の方法を紹介します.ルーティングの基本となるスタティックルート,アグリゲートルート,生成ルートについて紹介します.

スタティックルート

スタティックルートの概要

スタティックルートは静的経路とも言います.事前に宛先ネットワークごとのネクストホップを定義しておくことで,パケットを転送します.設定に必要な情報は宛先アドレスとネクストホップのIPアドレスのみであるため,簡単にルーティングを行えます.

反面,一度設定したネクストホップへの到達性がなくなった場合でも,設定された情報に基づいてパケットを転送しようとするため,ネットワーク障害や構成変更の際に運用コストがかかってしまいます.意図的に特定宛先のトラフィックを引き込むブラックホール状態を作り出すためにも利用される場合もあります.

スタティックルートの設定

JUNOSでは,スタティックルートはrouting-options配下に設定します.

set routing-options static route [destination network] next-hop [next hop address]
パラメーター説明
destination network宛先ネットワークアドレス,x.x.x.x/xの形式で表す.
next hop addressネクストホップのアドレス.直接到達できるルーターのアドレス.

例として,デフォルトルート(0.0.0.0/0)のネクストホップを192.168.20.254とする設定の場合は次のようになります.

set routing-options static route 0.0.0.0/0 next-hop 192.168.20.254

デフォルトルート(0.0.0.0/0)宛ての経路がルートテーブルに追加されているのが確認できます.

juniper@router> show route
inet.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
0.0.0.0/0          *[Static/5] 00:00:02
                    > to 192.168.20.254 via em0.0
192.168.20.0/24    *[Direct/0] 00:00:02
                    > via ge-0/0/0.0
192.168.20.1/32    *[Local/0] 00:00:04
                      Local via ge-0/0/0.0

AD値=プリファレンスの変更

JUNOSではAD値をプリファレンスと呼びます.JUNOSにおいて,スタティックルートのプリファレンスはデフォルトで5となっています.

set routing-options static route [destination network] next-hop [next hop address] preference [preference]
パラメーター説明
preferenceプリファレンスとする値.

例として,デフォルトで5となっているプリファレンスを125とします.

set routing-options static route 172.16.10.0/24 next-hop 192.168.20.253 preference 125

172.16.10.0/24宛てルートのプリファレンスが[Static/125]となっていることが確認できます.

juniper@router> show route
inet.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
172.16.10.0/24     *[Static/125] 00:00:06
                    > to 192.168.20.253 via em0.0
192.168.20.0/24    *[Direct/0] 00:03:37
                    > via ge-0/0/0.0
192.168.20.1/32    *[Local/0] 00:03:39
                      Local via ge-0/0/0.0

全てのスタティックルートに対してプリファレンスを変更したい時は次のように設定します.

set routing-options static route default preference 125

ブラックホールルート

特殊な用途で使われるルートです.特定の宛先への攻撃などを回避するために経路広報する目的で使用されます.また,ループ防止の目的でも使われます.

next-hopを設定する代わりに次の二つのオプションをつけることでブラックホールルートを設定できます.

set routing-options static route 10.1.1.0/24 reject
set routing-options static route 10.1.2.0/24 discard

rejectはICMP Unreachableメッセージを返したうえで破棄します.discardはICMP Unreachableメッセージを返さずに破棄します.

juniper@router> show route
inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
10.1.1.0/24        *[Static/5] 00:00:02
                      Reject
10.1.2.0/24        *[Static/5] 00:00:02
                      Discard
192.168.20.0/24    *[Direct/0] 00:04:26
                    > via ge-0/0/0.0
192.168.20.1/32    *[Local/0] 00:04:28
                      Local via ge-0/0/0.0

アグリゲートルート

アグリゲートルートはルーティングテーブル上の複数の経路情報を集約して1つの経路情報にまとめる目的で使用されます.例えば,10.0.0.0/24から10.0.3.0/24までの8つの経路を10.0.0.0/22にまとめる場合は次のようになります.

set routing-options aggregate route 10.0.0.0/22

アグリゲートルートのネクストホップはデフォルトでrejectとなります.しかし,ルーティングテーブル上にあるより詳しい経路情報とマッチ(ロンゲストマッチ)するため,実際にパケットが破棄されることはありません.discardオプションを指定することで経路のネクストホップをdiscardに設定できます.

juniper@router> show route protocol aggregate
inet.0: 14 destinations, 14 routes (14 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
10.0.0.0/22        *[Aggregate/130] 00:02:09
                      Reject

詳細な経路情報を見るとアグリゲートルートを構成する経路情報が確認できます.

juniper@router> show route protocol aggregate detail 10.0.0.0/22
inet.0: 15 destinations, 15 routes (15 active, 0 holddown, 0 hidden)
10.0.0.0/22 (1 entry, 1 announced)
        *Aggregate Preference: 130
                Next hop type: Reject, Next hop index: 0
                Address: 0xa1b8e44
                Next-hop reference count: 2
                State: <Active Int Ext>
                Age: 20:02
                Validation State: unverified
                Task: Aggregate
                Announcement bits (2): 0-KRT 1-Resolve tree 1
                AS path: I  (LocalAgg)
                Flags:                  Depth: 0        Active
                AS path list:
                AS path: I Refcount: 4
                Contributing Routes (4):
                        10.0.0.0/24 proto Static
                        10.0.1.0/24 proto Static
                        10.0.2.0/24 proto Static
                        10.0.3.0/24 proto Static

生成ルート

生成ルートはアグリゲートルートと同じく経路情報の集約に使用します.違いはネクストホップがrejectになっていたアグリゲートルートに対して,生成ルートは集約元の経路のネクストホップを引き継いで解決できるようにしている点です.

上記例と同じく10.0.4.0/22の経路を生成する場合は次のようになります.アグリゲートルートとは違い,ネクストホップが表示されています.

juniper@router> show route protocol aggregate
inet.0: 15 destinations, 15 routes (15 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
10.0.0.0/22        *[Aggregate/130] 00:15:56
                      Reject
10.0.4.0/22        *[Aggregate/130] 00:11:56
                    > to 172.16.0.1 via ge-0/0/0.1

詳細な経路情報を確認すると,アグリゲートルートと同じく詳細な経路情報を見れます.アグリゲートルートと違い,FlagsでGenerateが表示されています.また,ネクストホップの情報も記載されています.

juniper@router> show route protocol aggregate detail 10.0.4.0/22
inet.0: 15 destinations, 15 routes (15 active, 0 holddown, 0 hidden)
10.0.4.0/22 (1 entry, 1 announced)
        *Aggregate Preference: 130
                Next hop type: Router, Next hop index: 636
                Address: 0xb3a4090
                Next-hop reference count: 15
                Next hop: 172.16.0.1 via ge-0/0/0.1, selected
                Session Id: 0x140
                State: <Active Int Ext>
                Age: 18:42
                Validation State: unverified
                Task: Aggregate
                Announcement bits (2): 0-KRT 1-Resolve tree 1
                AS path: I
                                Flags: Generate Depth: 0        Active
                Contributing Routes (4):
                        10.0.4.0/24 proto Static
                        10.0.5.0/24 proto Static
                        10.0.6.0/24 proto Static
                        10.0.7.0/24 proto Static