<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Apr 20, 2020 at 8:47 PM Denys Fedoryshchenko <<a href="mailto:nuclearcat@nuclearcat.com">nuclearcat@nuclearcat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">If i am not wrong, for most routers implementing RPKI means spinning up <br>
VM<br>
with RPKI cache that need significant tinkering?<br>
I guess it is a blocker for many, unless some "ready made" solutions <br>
offered<br>
by vendors.<br>
Also, if ISP configure his router and it did crashed because he <br>
installed<br>
some "no warranty whatsoever" software from cloudflare github, what is <br>
next?<br>
I guess this might be not welcome in support contracts.<br>
<br></blockquote><div><br></div><div>The RPKI software is something you need to run on a server somewhere. Not on the router itself.</div><div><br></div><div>For our Juniper MX204 routers this was all that I needed to do:</div><div><br></div><div>First install <a href="https://github.com/NLnetLabs/routinator">https://github.com/NLnetLabs/routinator</a> on a server or VM somewhere. The server IP address would be 10.x.y.z in this example.<br><br>set routing-options validation group rpki-validator session 10.x.y.z port 3323 local-address 10.a.b.c<br>set policy-options community origin-validation-state-invalid members 0x4300:<a href="http://0.0.0.0:2">0.0.0.0:2</a><br>set policy-options community origin-validation-state-unknown members 0x4300:<a href="http://0.0.0.0:1">0.0.0.0:1</a><br>set policy-options community origin-validation-state-valid members 0x4300:<a href="http://0.0.0.0:0">0.0.0.0:0</a><br>set policy-options policy-statement RPKI-CHECK term valid from protocol bgp<br>set policy-options policy-statement RPKI-CHECK term valid from validation-database valid<br>set policy-options policy-statement RPKI-CHECK term valid then validation-state valid<br>set policy-options policy-statement RPKI-CHECK term valid then community add origin-validation-state-valid<br>set policy-options policy-statement RPKI-CHECK term invalid from protocol bgp<br>set policy-options policy-statement RPKI-CHECK term invalid from validation-database invalid<br>set policy-options policy-statement RPKI-CHECK term invalid then validation-state invalid<br>set policy-options policy-statement RPKI-CHECK term invalid then community add origin-validation-state-invalid<br>set policy-options policy-statement RPKI-CHECK term unknown from protocol bgp<br>set policy-options policy-statement RPKI-CHECK term unknown from validation-database unknown<br>set policy-options policy-statement RPKI-CHECK term unknown then validation-state unknown<br>set policy-options policy-statement RPKI-CHECK term unknown then community add origin-validation-state-unknown<br>set policy-options policy-statement REJECT-RPKI-INVALID term RPKI-CHECK from policy RPKI-CHECK<br>set policy-options policy-statement REJECT-RPKI-INVALID term RPKI-INVALID from community origin-validation-state-invalid<br>set policy-options policy-statement REJECT-RPKI-INVALID term RPKI-INVALID then reject<br>set routing-instances internet protocols bgp group nlix import REJECT-RPKI-INVALID<br>set routing-instances internet protocols bgp group cogent import REJECT-RPKI-INVALID<br></div><div><br></div><div>And just like that we had RPKI invalid filtering on the NLIX routing server and Cogent IP transit sessions. Since all of that is redundant, I took that opportunity to sanity check that we still had the expected amount of routes installed from these sources sans the invalids.</div><div><br></div><div>Attribution I did not invent most of the above. It is from the free book Day One Deploying BGP routing security from Juniper.</div><div><br></div><div>Regards,</div><div><br></div><div>Baldur</div><div><br></div><div> </div></div></div>