<div dir="ltr"><div>Hello! I'm new to using Bird and BGP, but I'm learning.<br></div><div><br></div><div>I've recently acquired an IPv4/24, and I've been working on building an Anycast network for CDN use. Right now I have a 15 datacenter network from a VPS provider (which uses Bird as it's recommended daemon: <a href="https://www.vultr.com/docs/configuring-bgp-on-vultr">https://www.vultr.com/docs/configuring-bgp-on-vultr</a>).</div><div><br></div><div>Using their configuration example, I was able to get an anycast network up without any modification. That part is working great!</div><div><br></div><div>The problem I have now is figuring out how to improve the routing. For example, Comcast users in Portland, OR are being sent to Los Angeles, even though the closest server is in Seattle (confirmed with traceroute). The underlying BGP problem seems to be that Comcast sees multiple routes as 2 AS routes (7922 20473), so it doesn't understand that the Seattle instance is preferred here.</div><div><br></div><div>There are many more examples like this I've found, and I'm trying to figure out what an approach might be to try to improve this.</div><div><br></div><div>Is there a way to improve routing using bird export filters or some other mechanism I'm not familiar with? Can I use Bird to steer certain traffic to closer servers, or to only announce routes to regional BGP servers? Or is this largely out of my control and I need to accept these non-ideal routes?</div><div><br></div><div>I've also been told I might be able to use BGP communities for this, but I've never worked with communities directly, so I don't understand how they would help me here. This is the list of communities I have available to me: <a href="https://www.vultr.com/docs/as20473-bgp-customer-guide">https://www.vultr.com/docs/as20473-bgp-customer-guide</a></div><div><br></div><div>Thank you in advance for any ideas or code examples here. There is zero documentation on tuning Anycast out there (even the old school BGP books I've skimmed through barely mention anycast).</div><div><br></div><div>Here is my current bird.conf:</div><div><br></div><div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre">log syslog all;</span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre"><br></span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre">router id **MY_IP**;</span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre"><br></span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre">protocol bgp vultr {</span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre">  local as 395409;</span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre">  source address **MY_IP**;</span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre">  import none;</span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre">  export all;</span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre">  graceful restart on;</span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre">  multihop 2;</span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre">  neighbor **BGP_IP** as 64515;</span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre">  password "**OBSCURED**";</span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre">}</span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre"><br></span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre">protocol static {</span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre">  route <a href="http://198.51.233.0/24">198.51.233.0/24</a> via **MY_IP**;</span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre">}</span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre"><br></span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre">protocol device {</span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre">  scan time 5;</span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre">}</span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre"><br></span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre">protocol direct {</span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre">  interface "neocities*";</span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre">  import all;</span></font></div><div><font color="#333333" face="consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre">}</span></font></div></div><div><br></div><div>-Kyle</div><div><br></div></div>