{"id":228,"date":"2020-06-29T18:45:27","date_gmt":"2020-06-29T17:45:27","guid":{"rendered":"https:\/\/blog.thomarite.uk\/?p=228"},"modified":"2020-06-29T18:45:27","modified_gmt":"2020-06-29T17:45:27","slug":"route-reflectors-notes","status":"publish","type":"post","link":"https:\/\/blog.thomarite.uk\/index.php\/2020\/06\/29\/route-reflectors-notes\/","title":{"rendered":"Route Reflectors &#8211; Notes"},"content":{"rendered":"\n<p><strong>Reflect<\/strong>:<br>   client -> clients and non-clients <br>   non-client -> clients<br><strong>No Reflect<\/strong>:<br>  non-client -> no-client (normal ibgp)<\/p>\n\n\n\n<p>always advertises to eBGP peers (normal ebgp)<br>eBGP learned prefixes, advertised to client and non-clients (normal ebgp)<\/p>\n\n\n\n<p><strong>Full Mesh iBGP<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>between RRs<\/li><li>RRs and non-clients<\/li><li>clients just need iBGP to RRs.<\/li><\/ul>\n\n\n\n<p>Reflects ONLY the best route<\/p>\n\n\n\n<p>RRs dont modify on reflected routes: NEXT_HOP, AS_PATH, LP and MED.<\/p>\n\n\n\n<p>Prevent routing information loops: ORIGINATOR_ID and CLUSTER_LIST<\/p>\n\n\n\n<p><strong>Clustering<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><em>ORIGINATOR_ID<\/em>: The first RR creates the Originator_ID and sets it to the BGP router ID of the router that originates the route. So when a client receives a route with its own Originator ID, it is dropped.<\/li><li><em>CLUSTER_LIST<\/em>: if the local CLUSTER_ID is found in the list, the route is discarded.<br>*This is done ONLY in RRs.<br>This is ONLY created or updated on a RR during Reflection.<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>Hierarchical Route Reflection<\/strong>:\n2 levels:\n- level1 RRs are clients of level2 RR -> level1 RR dont need full mesh between them\n- level2 RRs are full mesh between them.\n\nConsider:\nsize of top-level mesh\nnumber of alternative paths<\/pre>\n\n\n\n<p><strong>Hierarchical Route Reflection<\/strong>:<br>2 levels: <\/p>\n\n\n\n<p>&#8211; level1 RRs are clients of level2 RR -> level1 RR dont need full mesh between them<br>&#8211; level2 RRs are full mesh between them.<br><\/p>\n\n\n\n<p>Consider:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>size of top-level mesh<\/li><li>number of alternative paths<\/li><\/ul>\n\n\n\n<p><strong>RR Design Priciples<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><em>keep logical and physical topologies congruent to increase redundancy and path optimization and prevent loops<\/em><br>&#8212; follow physical topology<br>&#8212; change physical topology<br>&#8212; modify logical topology<br>&#8212; follow physical topology<br>&#8212; session between RR and non-client shouldnt traverse a client<br>&#8212; session between RR and client shouldnt traverse a non-client<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><em>use comparable metrics in route selection to avoid convergence oscillations<\/em><br>(ie MED &#8211; only used between prefixes from same neighbor AS &#8211; not used for different AS)<br>&#8212; full ibgp mess &#8211;> no<br>&#8212; always-compare-med &#8211;> no<br>&#8212; deterministic-med -> ok<br>&#8212; med=0 (via RM in) -> ok<br>&#8212; bgp communities -><\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><em>set proper intra and inter cluster IGP metrics to avoid convergence oscillations<\/em><br>&#8212; multicluster RR architecture: intracluster metrics lower than intercluster.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li>modify next-hop with care. Do so only to bring the RRs into forwarding path.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li>use peer groups with RR to reduce convergence time.<\/li><\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Reflect: client -> clients and non-clients non-client -> clientsNo Reflect: non-client -> no-client (normal ibgp) always advertises to eBGP peers (normal ebgp)eBGP learned prefixes, advertised to client and non-clients (normal ebgp) Full Mesh iBGP: between RRs RRs and non-clients clients just need iBGP to RRs. Reflects ONLY the best route RRs dont modify on reflected &hellip; <a href=\"https:\/\/blog.thomarite.uk\/index.php\/2020\/06\/29\/route-reflectors-notes\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Route Reflectors &#8211; Notes&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-228","post","type-post","status-publish","format-standard","hentry","category-networks"],"_links":{"self":[{"href":"https:\/\/blog.thomarite.uk\/index.php\/wp-json\/wp\/v2\/posts\/228","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.thomarite.uk\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.thomarite.uk\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.thomarite.uk\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.thomarite.uk\/index.php\/wp-json\/wp\/v2\/comments?post=228"}],"version-history":[{"count":1,"href":"https:\/\/blog.thomarite.uk\/index.php\/wp-json\/wp\/v2\/posts\/228\/revisions"}],"predecessor-version":[{"id":229,"href":"https:\/\/blog.thomarite.uk\/index.php\/wp-json\/wp\/v2\/posts\/228\/revisions\/229"}],"wp:attachment":[{"href":"https:\/\/blog.thomarite.uk\/index.php\/wp-json\/wp\/v2\/media?parent=228"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.thomarite.uk\/index.php\/wp-json\/wp\/v2\/categories?post=228"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.thomarite.uk\/index.php\/wp-json\/wp\/v2\/tags?post=228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}