アトリビュート AS_PATH


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
iBGPAS-PATH は書き換わらない