Contents
AS_PATH(ASパス)とは?
AS_PATHとは、通過したASを記録したもの。
BGP経路が通過してきた「AS(自律システム)」の番号を、
左から順番にリスト形式で記録する属性のことです。
BGPルータは経路情報を交換するときに、
その経路が「どのASを通ってきたか」をこのAS_PATHで知らせます。
AS_PATHの見方
show ip bgp で、
AS_PATH: 65001 65002 65003
この場合、
送信元AS65003 → AS65002 → AS65001 → 自分
つまり、この経路情報は AS65003 から始まり、
AS65002 → AS65001 と通って自分のASに届いたことを示します。
BGPループ防止の仕組み
AS_PATHの最も重要な役割は ループ防止 です。
BGPルータは、自分のAS番号がAS_PATHの中に含まれている経路を受け取ると、
「それは自分を経由して戻ってきた経路だ!」と判断して破棄します。
経路広告:
AS65001 → AS65002 → AS65003
もしAS65003がこの経路を受け取り、再びAS65001に送り返したら…
AS_PATH: 65001 65002 65003
AS65001は自分の番号「65001」を見つけて、
「ループしている!」と判断し破棄します。
→ これにより、経路ループが自動的に防止されます。
AS_PATH の確認コマンド
show ip bgpで確認します
AS_PATH の操作(ポリシー制御)
ネットワーク運用者はAS_PATHを意図的に操作して、
経路選択に影響を与えることもできます。
1. AS_PATH prepend(プレペンド)
AS_PATHを意図的に長くして、
その経路を、遠回りに見せることで優先度を下げる方法です。
route-map PREPEND permit 10
set as-path prepend 65010 65010 65010
router bgp 65010
! IPv4 Unicast の例
address-family ipv4
neighbor 203.0.113.1 remote-as 65001
neighbor 203.0.113.1 route-map PREPEND out
exit-address-family
→ 自分のAS番号を3回追加して送信。
相手ASは「AS65010を3回も通る」と判断し、他ルートを優先する。
2. AS_PATHフィルタリング
ip as-path access-list を使って、
特定のASから来た経路だけを受け入れる/拒否することができます。
ip as-path access-list 10 permit ^65002$
router bgp 65001
neighbor 192.0.2.2 filter-list 10 in
→ AS65002「のみ」から来た経路を受け入れる。
AS-PATH を確認するコマンド
Cisco IOS/ASA
show ip bgp <prefix>
例:
Router# show ip bgp 1.1.1.0
...
AS-path: 65020 65010
まとめ
| 項目 | 説明 |
|---|---|
| 役割1 | ループ防止 |
| 役割2 | 経路選択(短い方が優先) |
| 役割3 | 経路操作(AS prepend) |
| 表示順位 | 右側が最初の AS、左が最後に追加された AS |
| iBGP | AS-PATH は書き換わらない |