RPKI
https://www.youtube.com/watch?v=kUZzb0d2AW4
Resource PKI
リソース(IP addresss)を誰(AS)が保持しているか、またその情報の正当性をPKIの仕組みで証明するための仕組み
リソース情報はROA
prefixと保持ASの情報
prefixごとに登録なので、たとえば/20のROAを登録しても/23,/24を別途広報する際は新規に/23,/24をROA登録が必要
ルーター側でRPKI cacheサーバー(RTRサーバー)を設定しておくと、設定として受け取った経路のvalidationをできる。
invalid経路は受け取らないようにもできるし、逆にうけとるようにもできる。
invalid経路は通常はおかしい経路なので捨てられる運用になる。
対象経路がROA登録済みで明確にorigin ASが違うのでおかしいのは明らか
unknownな経路については現状は受け取るようにしていることがほとんど。
だいたいがunknown経路なので・・・
遠い未来ではunknown経路も捨てられる運用になるか。
キャッシュサーバーとはRTR(RPKI to Router) ProtocolでVRPs(VRPs:Validate ROA Payloads)をRIR/NIRレポジトリから取得
IOS-XR機器はrfc8097 bgp communityが付与された経路を受信すると、自身でRPKIのvalidationしたものと同等に扱う
invalid communityが付与された経路をiBGPから受信した場合は"bgp bestpath origin-as use validity" が設定されているとbest path候補から除外してしまう。
juniperは?
rpki サーバーとの接続状態確認
show bgp rpki server summary
show validation session
経路ごとのvalidation status
show bgp [ipv4|ipv6] unicast origin-as validation [valid|invalid|not-found]
show route validation-state [valid|unknown|invalid]
登録手順
https://www.nic.ad.jp/ja/rpki/howto-create-roa.html
ROA作成
max-lenで最大prefix長も設定できる。
大きなprefixを細かくわけてたくさん使っている場合は最大prefixが便利
JPNICから割り振られていても証明書に存在しない経路はROA登録できない
https://www.nic.ad.jp/ja/ip/id-procedure.html
たとえば/21でIPをもらっていても、/23等にサブネットをわけて広報している場合は/21./23両方の登録が必要
/21だけ登録していると/23についてはinvalid扱いされて経路が落とされる可能性があるので要注意
/21でorigin Xとして登録。すでに/23が orign Yで広報されている場合は/23はinvalid経路になる
/21でorigin Xなのだから/23がOrigin Yはおかしい。
別途で/23をOrigin Yとして登録してもらう必要あり
サブネットが広報されているかはprefixごとに要確認
この場合はRouteViewで観測される経路情報にサブネットが表示されないケースもある。謎。
なぜか同時に複数つくれるUI
対象の保持prefixの中で観測された経路すべてのROA登録をするなら同じ行のROA作成ボタンは便利
全部登録しない場合は次に進めない
保持prefixの一部だけROA登録したい場合には不便。
全体メイン画面右上のROAを作成ならシンプルに一つずつ登録できる。
RouteViewで観測される経路情報と一致したものを登録すればOK
期待される経路の検証結果でvalidであること確認
登録の処理中には数分を要する