問題意識
・以前勉強した記事を見返したが、どのタイミングでremoveされるかがわからない
構成図
RT1(AS100)——–RT2(AS200)——-RT3(AS65003)
- それぞれのLoopbackをBGPで広報
- それ以外は最低限の設定のみ
実践(show ip bgp)
1)初期状態
- RT1は、RT3の経路を「Path: 0 200 65003 i」で保持している
RT3#sh ip bgp | b Origin
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 30.1.1.0/24 0.0.0.0 0 32768 i
*> 100.1.1.0/24 23.1.1.2 0 200 100 i
*> 200.1.1.0 23.1.1.2 0 0 200 i
RT2(config-router)#do sh ip bgp | b Origin
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 30.1.1.0/24 23.1.1.3 0 0 65003 i
*> 100.1.1.0/24 12.1.1.1 0 0 100 i
*> 200.1.1.0 0.0.0.0 0 32768 i
RT1#sh ip bgp | b Origin
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 30.1.1.0/24 12.1.1.2 0 200 65003 i
*> 100.1.1.0/24 0.0.0.0 0 32768 i
*> 200.1.1.0 12.1.1.2 0 0 200 i
2)RT3(private-as)側で、RT2向きneighborにremoveを設定
- 初期状態から変化なし(出力は省略)
- つまり、自発経路についてはremoveできない
3)RT2(受信)側で、RT3向けにremoveを設定
- 初期状態から変化なし(出力は省略)
- つまり、受信時にPathからprivate-asを削除するわけでもない
4)RT2(受信側)で、RT1向けにremoveを設定
- RT1は、RT3の経路を「Path: 0 200 i」で保持している(RT2・3は変化なしなので省略)
RT1#sh ip bgp | b Origin
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 30.1.1.0/24 12.1.1.2 0 200 i
*> 100.1.1.0/24 0.0.0.0 0 32768 i
*> 200.1.1.0 12.1.1.2 0 0 200 i
ここまでの結論
- remove-private-asは、ピアへ広報する際にprivate-asを削除する設定。
- private-as内の自発経路のPATHから削除されることもなければ、受信時に削除されるわけでもない。
ドキュメントを読んでみる
参考:Removing Private Autonomous System Numbers in BGP
- 例えばISPに接続する場合を想定する
- 顧客網内ではprivate-asを使って運用していると、設定によってはprivate-asのパス情報がISPに流れちゃう
- ISPでは当然、様々な事業者との接続を行っているので、顧客が自由に設定しているprivate-asが流れてくると、適切な経路が選択されない可能性が出てくる
- そのため、private-asの運用を、あくまで顧客網内で完結させ、ISP側にはリークしないようにするためにremove-private-asがある
- 検証したことも書かれてあった
“When the outbound update contains a sequence of private AS numbers, this sequence is dropped.”
新たな不明点の出現
- 上記ドキュメント内の、これはどういうこと?
“If the AS_PATH includes both private and public AS numbers, BGP doesn’t remove the private AS numbers. This situation is considered a configuration error.”
新・構成図
RT1(AS100)——–RT2(AS200)——-RT3(AS65003)——-RT4(AS400)
- それぞれのLoopbackをBGPで広報
- それ以外は最低限の設定のみ
新・実践(show ip bgp)
Before(remove設定前)
- RT1は、RT3の経路を「Path: 0 200 65003 i」で保持している
- RT1は、RT4の経路を「Path: 0 200 65003 400 i」で保持している
RT1#sh ip bgp | b Origin
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 30.1.1.0/24 12.1.1.2 0 200 65003 i
*> 40.1.1.0/24 12.1.1.2 0 200 65003 400 i
*> 100.1.1.0/24 0.0.0.0 0 32768 i
*> 200.1.1.0 12.1.1.2 0 0 200 i
After(removeをRT2のRT1neighbor向きに設定)
- RT1は、RT3の経路を「Path: 0 200 i」で保持している(private-asの消滅)
- RT1は、RT4の経路を「Path: 0 200 65003 400 i」で保持している(private-asが消えていない)
RT1#sh ip bgp | b Origin
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 30.1.1.0/24 12.1.1.2 0 200 i
*> 40.1.1.0/24 12.1.1.2 0 200 65003 400 i
*> 100.1.1.0/24 0.0.0.0 0 32768 i
*> 200.1.1.0 12.1.1.2 0 0 200 i
新・結論
- ドキュメントは正しい
- パブリックASを含むパス属性を持つ経路では、プライベートASが削除されない