Example topologies

Multiple peers can be defined on any given node using the same or different sets of interfaces and remotes. This allows for greater flexibility and redundancy when configuring peer link connections. There is no limit to the number of peers that can be assigned to a node.

Furthermore, peers can pass traffic for any VRF the node is directly or indirectly involved in. More information on VRFs can be found in our routing documentation.

The following are basic examples you may find useful when setting up SD-WAN 7 on your nodes.

Point-to-point

graph { splines=ortho; ranksep=1; bgcolor="transparent"; node [ shape=box, style="filled,rounded", fillcolor="#E9F7EF", color="#1E8449", fontname="Arial", fontsize=12 ]; edge [ style=solid, penwidth=1.5, color="#F1C40F", fontname="Arial", fontsize=10, labeldistance=2.25, labelangle=65 ]; east [label="Node: East"]; alpha [label="Node: Alpha"]; east -- alpha [headlabel=<<font color="#F1C40F">Peer 1</font>>, xlabel="&nbsp;&nbsp;Single peer with&nbsp;&nbsp;\ntwo peer links"]; east -- alpha; }

In this example, we have a simple point-to-point connection between an edge node (Alpha) and a core node (East). The edge node has two peer links configured on a single peer, with the core node as its target. In this configuration, one link serves as the primary, while the other acts as a hot spare. In a future version link aggregation will be implemented to allow balancing across the links.

Active-backup

graph { splines=true; ranksep=1; bgcolor="transparent"; node [ shape=box, style="filled,rounded", fillcolor="#E9F7EF", color="#1E8449", fontname="Arial", fontsize=12 ]; edge [ style=solid, penwidth=1.5, color="#F1C40F", fontname="Arial", fontsize=10, labeldistance=3, labelangle=35 ]; west [label="Node: West"]; east [label="Node: East"]; beta [label="Node: Beta"]; west:s -- beta [taillabel="500", headlabel=<<font color="#F1C40F">Peer 1</font>>, xlabel="&nbsp;&nbsp;&nbsp;&nbsp;Single peer with&nbsp;&nbsp;&nbsp;&nbsp;\ntwo peer links\nand failover"]; edge [ labelangle=-35 ]; east:s -- beta [style=dashed, taillabel="400"]; }

This active-backup configuration features one edge node (Beta) connected to two core nodes (West and East). The edge node has a peer configured with two remotes, each one specifying a different remote node. This provides automatic failover capability, where the edge node will only send traffic through the link with the higher preference (West) unless that remote goes down, in which case it will failover to the second link (East). If the preferences were equal, the node would choose either one of the remotes as its primary link and use the other as its backup.

Dual-path point-to-point

graph { splines=ortho; ranksep=1; bgcolor="transparent"; node [ shape=box, style="filled,rounded", fillcolor="#E9F7EF", color="#1E8449", fontname="Arial", fontsize=12 ]; edge [ style=solid, penwidth=1.5, fontname="Arial", fontsize=10, labeldistance=2.25, labelangle=65, ]; west [label="Node: West"]; gamma [label="Node: Gamma"]; west -- gamma [color="#F1C40F", headlabel=<<font color="#F1C40F">Peer 1</font>>, xlabel="&nbsp;&nbsp;&nbsp;Two peers with&nbsp;&nbsp;&nbsp;\none peer link each"]; edge [ labelangle=-65, ]; west -- gamma [color="#9B59B6", headlabel=<<font color="#9B59B6">Peer 2</font>>]; }

This configuration is similar to point-to-point, but instead we have two distinct peers defined on the edge node (Gamma), each using separate links but connecting to the same core node (West). In this case, either link can be used to send traffic. Typical use cases include dedicating one link to low-latency traffic such as voice, with general traffic using another less stable link.

Active-active

graph { splines=true; ranksep=0.5; bgcolor="transparent"; node [ shape=box, style="filled,rounded", fillcolor="#E9F7EF", color="#1E8449", fontname="Arial", fontsize=12 ]; edge [ style=solid, penwidth=1.5, fontname="Arial", fontsize=10, labeldistance=2, labelangle=35 ]; west [label="Node: West"]; east [label="Node: East"]; delta [label="Node: Delta"]; west:s -- delta:w [color="#F1C40F", headlabel=<<font color="#F1C40F">Peer 1</font>>, xlabel="&nbsp;&nbsp;&nbsp;Two peers with&nbsp;&nbsp;&nbsp;\none peer link each,\ndifferent remotes"]; edge [ labelangle=-35 ]; east:s -- delta:e [color="#9B59B6", headlabel=<<font color="#9B59B6">Peer 2</font>>]; }

In contrast to active-backup, this configuration defines two peers on the edge node (Gamma), each connecting to separate core nodes (West and East). This enables simultaneous active-active connections where traffic can distribute across both paths, and neither link serves as a backup. Which peer carries traffic for a given destination will be determined by routing policy.

Full-mesh

graph { splines=true; nodesep=0.5; ranksep=1; bgcolor="transparent"; node [ shape=box, style="filled,rounded", fillcolor="#E9F7EF", color="#1E8449", fontname="Arial", fontsize=12 ]; edge [ style=solid, penwidth=1.5, fontname="Arial", fontsize=10, labeldistance=2.25, labelangle=65 ]; east [label="Node: East"] alpha [label="Node: Alpha"] beta [label="Node: Beta"] east -- alpha:n [color="#F1C40F", headlabel=<<font color="#F1C40F">Peer 1</font>>, xlabel="&nbsp;&nbsp;Two edge nodes&nbsp;&nbsp;\nwith two peer\nlinks each,\nin full-mesh"]; edge [ labelangle=60 ]; east -- beta:n [color="#C0392B", headlabel=<<font color="#C0392B">Peer 2</font>>]; edge [ labeldistance=2.1, labelangle=-32 ]; alpha:e -- beta:w [color="#00897B", headlabel=<<font color="#00897B">Peer 3</font>>]; { rank=same; alpha; beta; } }

This full-mesh implementation connects two edge nodes (Alpha and Beta) in a dual-path topology. Each edge node maintains:

  1. A peer connection to the core node (East)

  2. A direct peer connection to the other edge node

This setup allows edge nodes to communicate directly rather than routing through the core node, reducing latency for node-to-node traffic. For example, Alpha can reach endpoints behind Beta without traversing the East node. In this arrangement, the peer link that connects the two edge nodes only needs to be defined on a single one of the nodes.

Full-mesh with groups

graph { newrank=true; splines=false; nodesep=0; ranksep=1; bgcolor="transparent"; compound=true; node [ shape=box, style="filled,rounded", fillcolor="#E9F7EF", color="#1E8449", fontname="Arial", fontsize=12 ]; edge [ style=solid, penwidth=1.5, fontname="Arial", fontsize=10, labeldistance=2.25, labelangle=65 ]; subgraph cluster_west { label="Group: West"; style="filled,rounded"; penwidth=1.5; fillcolor="#EAECEE"; color="#B3B6B7"; west1 [label="Node: West1"]; west_anchor [shape=point, width=0, style=invis]; west2 [label="Node: West2"]; west1 -- west_anchor -- west2 [style=invis, weight=100]; } subgraph cluster_east { label="Group: East"; style="filled,rounded"; penwidth=1.5; fillcolor="#EAECEE"; color="#B3B6B7"; east1 [label="Node: East1"]; east_anchor [shape=point, width=0, style=invis]; east2 [label="Node: East2"]; east1 -- east_anchor -- east2 [style=invis, weight=100]; } alpha [label="Node: Alpha"]; beta [label="Node: Beta"]; west_anchor -- alpha [color="#F1C40F", fontcolor="#F1C40F", ltail=cluster_west, headlabel="Peer 1"]; edge [ labeldistance=1.4, labelangle=110 ]; east_anchor -- alpha [color="#9B59B6", fontcolor="#9B59B6", ltail=cluster_east, constraint=false, headlabel="Peer 2"]; edge [ labeldistance=2.25, labelangle=25 ]; alpha:e -- beta:w [color="#00897B", fontcolor="#00897B", constraint=false, taillabel="Peer 5"]; edge [ labeldistance=2.75, labelangle=30 ]; west_anchor -- beta [color="#C0392B", fontcolor="#C0392B", ltail=cluster_west, constraint=false, headlabel="Peer 3"]; edge [ labeldistance=2.25, labelangle=-65 ]; east_anchor -- beta [color="#2E86C1", fontcolor="#2E86C1", ltail=cluster_east, headlabel="Peer 4"]; { rank=same; west1; west_anchor; west2; east1; east_anchor; east2; } { rank=same; alpha; beta; } }

Expanding on the full-mesh, this configuration equips each edge node with:

  • Two peers targeting node groups (West/East)

  • One peer connecting to the other edge node

The remote node groups provide automatic load balancing and redundancy, e.g. if one node in the West group fails, traffic automatically redirects to the other node in the group. Combined with direct edge node connectivity, this maximizes both failover and path efficiency.