END TO END PATHFINDING THROUGH AN OVERLAY NETWORK
Systems including a telemetry service, a graph service coupled to transform outputs of the telemetry service into path routes through an overlay network, a billboard service configured to transform the path routes into border gateway protocol (BGP) announcements and point-of-presence (POP) peering decisions, multiple agent components, and multiple routing daemons, each disposed on a different POP of the overlay network along with a corresponding one of the agent components. The daemons receive BGP announcements and peering decisions from the billboard service via the corresponding agent component and transform the BGP announcements and peering decisions into routing tables for the POPs.
1 . A system comprising:
a telemetry service;
a graph service coupled to transform outputs of the telemetry service into path routes through an overlay network;
a billboard service configured to transform the path routes into border gateway protocol (BGP) announcements and point-of-presence (POP) peering decisions;
a plurality of agent components;
a plurality of routing daemons, each disposed on a different POP of the overlay network along with a corresponding one of the agent components, the daemons:
receiving BGP announcements and peering decisions from the billboard service via the corresponding agent component; and
transforming the BGP announcements and peering decisions into routing tables for the POPs.
2 . The system of claim 1 , wherein the graph service embodies the path routes in first derivative directed acyclic graphs based on one or more network dimensions.
3 . The system of claim 1 , wherein the billboard service is configured to operate globally across the overlay network to maintain intended BGP announcements and peering decisions for the agents and routing daemons.
4 . The system of claim 1 , further comprising:
each of the agent components disposed on a different one of the POPs.
5 . The system of claim 4 , wherein the agent components are configured to each independently poll the billboard service for peering decisions and BGP announcements at regular intervals.
6 . The system of claim 5 , wherein the agent components are configured to generate control templates for the corresponding routing daemons based on results of the polling of the billboard service, and to apply the templates to the corresponding routing daemons.
7 . The system of claim 6 , wherein the control template is a configuration file.
8 . The system of claim 5 , wherein, in the event the billboard service becomes unresponsive to the polling by the agent components, the routing daemons continue to execute as routers in their respective POPs utilizing the last polling updates received from the billboard service.
9 . The system of claim 1 , further comprising:
a plurality of different path finding services each disposed on one of the different POPs.
10 . The system of claim 9 , wherein the path finding services make link selections for packets routed through the POPs.
11 . The system of claim 10 , further comprising:
the graph service generating a plurality of profiles; and
the path finding services utilizing the profiles to determine how telemetry data should be weighted for selection of links between the POPs.
12 . The system of claim 11 , wherein a first type of the profiles emphasizes selection of lower latency links over lower jitter or loss links, and a second type of the profiles emphasizes the selection of the lower jitter or loss links over the lower latency links.
13 . The system of claim 12 , wherein a third type of the profiles emphasizes selection of links comprising a best combination of latency, jitter, and packet loss such that the links comprise low latency with acceptable jitter or loss.
14 . The system of claim 12 , wherein one or more of the profiles imposes geographical constraints on selection of the links by the path finding services.
15 . The system of claim 1 , wherein each of the daemons comprises multiple independent routing tables, each synchronized to a kernel routing table of the POP on which the daemon is disposed.
16 . The system of claim 15 , further comprising filters that control which routes are imported from or exported to the kernel routing tables.
17 . The system of claim 1 , wherein the daemons are Bird routers.
18 . The system of claim 1 , the billboard service configured to implement a traffic drain to enable a shifting of network traffic away from particular ones of the POPs.
19 . The system of claim 18 , wherein the traffic drain comprises:
a command to shift all inbound traffic away from a particular one of the POPs;
a command to shift all inbound traffic away from a specific peer device of a particular one of the POPs;
a command to shift a specific type of inbound traffic away from a particular one of the POPs; and
a command to shift a specific type of inbound traffic away from a specific peer device of a particular one of the POPs.