As the others stated, RPKI would be the way to go, but it's not there yet. At exchange points we generally put a max-prefix limit on every session. Additionally we use the following rules: 1) No default route 2) No bogons, more exactly this list: route-filter 0.0.0.0/8 orlonger reject; route-filter 127.0.0.0/8 orlonger reject; route-filter 10.0.0.0/8 orlonger reject; route-filter 172.16.0.0/12 orlonger reject; route-filter 192.168.0.0/16 orlonger reject; route-filter 224.0.0.0/4 orlonger reject; route-filter 240.0.0.0/4 orlonger reject; route-filter 169.254.0.0/16 orlonger reject; route-filter 192.0.2.0/24 orlonger reject; route-filter 198.51.100.0/24 orlonger reject; route-filter 203.0.113.0/24 orlonger reject; route-filter 100.64.0.0/10 orlonger reject; 3) No prefixes longer than /24 4) No private AS numbers in the path 5) None of our own prefixes For IPv6 we do the same, only the bogons are different. I pasted our filter below this. Please be aware that the syntax might be a bit odd but that is due to the Juniper way of matching prefixes. For Cisco syntax you can go here: [IPv6 BGP filter recommendations][1] (The Juniper example on the page is buggy, please use the one below if you want.) <pre> term ebgp-relaxed { from { family inet6; route-filter 3ffe::/16 orlonger; route-filter 0000::/8 orlonger; route-filter 2001:db8::/32 orlonger; route-filter 2001::/32 exact next policy; route-filter 2001::/32 longer; route-filter 2002::/16 exact next policy; route-filter 2002::/16 longer; route-filter fe00::/9 orlonger; route-filter ff00::/8 orlonger; route-filter 2000::/3 prefix-length-range /49-/128; route-filter 0::/0 orlonger; } then reject; } </pre> [1]: http://www.space.net/~gert/RIPE/ipv6-filters.html