ルーティングプロトコルに依存しない経路制御の方法を紹介します.ルーティングの基本となるスタティックルート,アグリゲートルート,生成ルートについて紹介します.
スタティックルート
スタティックルートの概要
スタティックルートは静的経路とも言います.事前に宛先ネットワークごとのネクストホップを定義しておくことで,パケットを転送します.設定に必要な情報は宛先アドレスとネクストホップの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
コメント