IPv6のみでの環境ですが、rpki-clientとstayrtrをつかってROA(Route Origin Authorization)キャッシュサーバーを構成し、frr/bgpから接続してみました。環境はfrr/bgpゲートウェイ、ROAキャッシュサーバともにDebian 12です。
早速ですが作業です。まず初めにrpki-clientをインストールします。
早速ですが作業です。まず初めにrpki-clientをインストールします。
apt-get install rpki-clientARINのデータベース利用についての確認があるのでYesとします。続いて同時にインストールされた rsyncをenableにしておきます。
systemctl enable rsync続いてrpki-clientを管理者権限で実行します。時間がかかるので注意してください。(VPS 1Gbps 2core 2GB RAMの場合、約20分から30分)実行が終わると以下のようなメッセージが出ます。
sudo rpki-client 中略 Processing time 1976 seconds (1083 seconds user, 224 seconds system) Skiplist entries: 0 Route Origin Authorizations: 259450 (3 failed parse, 0 invalid) AS Provider Attestations: 91 (90 failed parse, 0 invalid) BGPsec Router Certificates: 3 Certificates: 43311 (2 invalid) Trust Anchor Locators: 5 (0 invalid) Manifests: 43306 (152 failed parse, 0 stale) Certificate revocation lists: 43154 Ghostbuster records: 2 Trust Anchor Keys: 0 Repositories: 94 Cleanup: removed 235 files, 77613 directories, 52693 superfluous VRP Entries: 610204 (602558 unique) VAP Entries: 4 (2 unique)取得したデータは /var/cache/rpki-client 以下にあります。
$ ls /var/cache/rpki-client 0.sb rpki.arin.net rpki-rps.arin.net ca.nat.moe rpki.athene-center.net rpki-rsync.mnihyc.com ca.rg.net rpkica.twnic.tw rpki-rsync.us-east-2.amazonaws.com chloe.sobornost.net rpki.cc rpki.sailx.co cloudie-repo.rpki.app rpki.cnnic.cn rpki.services.vm.a-x1.w420.net dev.tw rpki.co rpki.sn-p.io krill.accuristechnologies.ca rpki.komorebi.network rpki.sub.apnic.net krill.uta.ng rpki.luys.cloud rpki.tools.westconnect.ca repo.kagl.me rpki.miralium.net rpki.uz repo-rpki.idnic.net rpki.multacom.com rpki.xindi.eu repo.rpki.space rpki.owl.net rpki.zappiehost.com repository.lacnic.net rpki.pudu.be rsync.krill.nlnetlabs.nl r.magellan.ipxo.com rpki.rand.apnic.net rsync.paas.rpki.ripe.net rov-measurements.nlnetlabs.net rpki-repo.as207960.net rsync.rp.ki rpki-01.pdxnet.uk rpki-repo.registro.br rsync.rpki.co rpki.admin.freerangecloud.com rpki-repository.haruue.net sakuya.nat.moe rpki.afrinic.net rpki-repository.nic.ad.jp ta rpki.apernet.io rpki.ripe.net rpki.apnic.net rpki.roa.netつづいてstayrtrをインストールします。
apt-get install stayrtrデフォルトの起動オプションは以下のようになっています。
grep -r STAYRTR_ARGS /etc/ /etc/default/stayrtr:STAYRTR_ARGS=-bind :323 -cache /var/lib/rpki-client/jsonstayrtrはsystemctlで起動できます。
systemctl enable stayrtr systemctl start stayrtrなおデバッグ用にrtrdumpをつかってダンプできるようです。
rtrdump -connect 127.0.0.1:323 INFO[0000] Connecting with plain to 127.0.0.1:323 ls output.jsonつづいてbgpが動作しているサーバでstayrtrに接続できるようにfrrを設定します。
apt-get install frr-rpki-rtrlib # /etc/frr/daemonsを編集 bgpd_options=" -A 127.0.0.1 -M rpki" # frrを再起動 systemctl restart frrfrrで rpki cache サーバを指定します。
vtysh bgpsv# conf t bgpsv(config)# rpki bgpsv(config-rpki)# rpki cache 10.10.10.10 323 preference 100 bgpsv(config-rpki)# end bgpsv# write memfrrのconfigはおよそ以下のようになりました。
router bgp XXXXXX bgp router-id 10.10.10.1 no bgp ebgp-requires-policy no bgp default ipv4-unicast neighbor 4IXP peer-group neighbor 4IXP remote-as 35708 neighbor 4IXP bfd neighbor 4IXP disable-connected-check neighbor 4IXP update-source eth1 neighbor 4IXP capability extended-nexthop neighbor 4IXP sender-as-path-loop-detection neighbor SBAG peer-group neighbor SBAG remote-as 58057 neighbor SBAG bfd neighbor SBAG disable-connected-check neighbor SBAG update-source eth0 neighbor SBAG capability extended-nexthop neighbor SBAG sender-as-path-loop-detection neighbor SBIX peer-group neighbor SBIX remote-as 56755 neighbor SBIX bfd neighbor SBIX disable-connected-check neighbor SBIX update-source eth2 neighbor SBIX capability extended-nexthop neighbor SBIX sender-as-path-loop-detection neighbor 2001:db8:d0::8b7c:1 peer-group 4IXP neighbor 2001:db8:d0::8b7c:2 peer-group 4IXP neighbor 2001:db8:d0::8b7c:3 peer-group 4IXP neighbor 2001:db8:100:2d88::8bfa peer-group SBAG neighbor 2001:db8:d9:1::1 peer-group SBIX neighbor 2001:db8:d9:1::2 peer-group SBIX neighbor 2001:db8:d9:1::3 peer-group SBIX neighbor 2001:db8:d9:1::4 peer-group SBIX ! address-family ipv6 unicast network 2001:db8:12c::/48 neighbor 4IXP activate neighbor 4IXP soft-reconfiguration inbound neighbor 4IXP route-map rpki in neighbor 4IXP route-map AS_PATH_FILTER out neighbor SBAG activate neighbor SBAG soft-reconfiguration inbound neighbor SBAG route-map rpki in neighbor SBAG route-map AS_PATH_FILTER out neighbor SBIX activate neighbor SBIX soft-reconfiguration inbound neighbor SBIX route-map rpki in neighbor SBIX route-map AS_PATH_FILTER out exit-address-family exit ! bgp as-path access-list asns-to-advertise seq 5 permit ^$ ! route-map AS_PATH_FILTER permit 10 match as-path asns-to-advertise exit ! route-map rpki permit 10 match rpki invalid set local-preference 10 exit ! route-map rpki permit 20 match rpki notfound set local-preference 20 exit ! route-map rpki permit 30 match rpki valid set local-preference 30 exit ! route-map rpki permit 40 exit ! rpki rpki polling_period 900 rpki cache 10.10.10.10 323 preference 100 exit ! endパッケージになっているのでROAキャッシュサーバの構成は割と簡単でした。最後にrpki-clientを二時間おきにcronで呼び出すようにしておきました。
0 */2 * * * rpki-client今回は以上です。それでは。
コメント
コメントを投稿