{"id":737,"date":"2018-07-08T13:17:41","date_gmt":"2018-07-08T06:17:41","guid":{"rendered":"https:\/\/lagonet.vn\/?p=737"},"modified":"2018-07-08T13:17:41","modified_gmt":"2018-07-08T06:17:41","slug":"manipulate-bgp-inbound-and-outbound-traffic","status":"publish","type":"post","link":"https:\/\/kb.lagonet.vn\/?p=737","title":{"rendered":"MANIPULATE BGP INBOUND AND OUTBOUND TRAFFIC"},"content":{"rendered":"<p>According to the BGP best route decision, best route will be chosed base on the the the sequence attributes ( Weight, Local preference, AS-Path, ). But I want to know do that attributes control the flow of inbound Traffic or outbound traffic or both directions?<\/p>\n<p>1. Local Preference is used to manipulate traffic going out of your Autonomous System. This attribute is only exchanged with IBGP peers and therefore has local significance to your Autonomous System.<\/p>\n<p>2. The Weight attribute is also used to manipulate traffic going out of your Autonomous System but this attribute is local to the router on which it is configured and is not exchanged with any IBGP or EBGP peers.<\/p>\n<p>3. A router uses the AS_PATH attribute in case of ties between the weight and local preference attributes and the route not being locally originated. When this attribute is used to select a particular route you are basically controlling traffic going out of your Autonomous System.<\/p>\n<p>When you are multi homed to two different providers it is sometimes required to prefer one provider&#8217;s link for some incoming traffic. In such cases a normal practise is to manipulate the AS_PATH attribute thereby making one path seem more attractive than the other (shorter AS_PATH). So in such circumstances you are using AS_PATH to manipulate traffic coming into your AS.<\/p>\n<p>4. Another attribute that is used to manipulate incoming traffic is called MED (Multi-Exit Discriminator). However, an EBGP peer receiving it will only share it with IBGP peers and will not forward it to another AS. This means that you can basically use this attribute for influencing traffic between two directly connected autonomous systems.<\/p>\n<hr \/>\n<p>With point number 3 i was trying to convey the message that AS_PATH attribute can influence both traffic coming into and going out of your autonomous system. Lets consider two situations:<\/p>\n<p><b><u>Situation 1<\/u><\/b>:<\/p>\n<p>You have two edge routers each talking EBGP to a different service provider and talking IBGP to each other. You are receiving full internet routes from both providers. In this situation each edge router will have to decide on which route to install (for each internet destination), one available via an EBGP peer and the other via an IBGP peer. Assuming Local Preference and Weights are left at default the decision will come down to AS_PATH attribute. The routers will choose the route with the shortest AS_PATH and this will influence traffic leaving outside your autonomous system.<\/p>\n<p><b><u>Situation 2<\/u><\/b>:<\/p>\n<p>In this scenario we again have two edge routers speaking EBGP to two different providers and talking IBGP to eachother. The routers are configured to advertise the prefix assigned to your AS. Without any special configuration traffic destined to your AS will take the best route (shortest AS_PATH). So there is really no way of knowing how your inbound traffic flow will be. However, you might want to force all inbound traffic through one link and use the other as a backup. For this to work across two different providers you can manipulate the AS_PATH attribute in updates from one of your edge routers so that to the outside world it seems that this path is longer than the one through the other link.<\/p>\n<p>MED is useful when you have two or more links to the same provider and you want to control how traffic coming in should behave. You advertise MED to your EBGP peers so your internal IBGP configuration is more or less independent of this attribute unless you are a provider and are receiving MED but in that case I do not see why you will not have IBGP configured.<\/p>\n<p>Hope that makes things clearer.<\/p>\n<hr \/>\n<header>\n<h1>BGP &#8211; Understanding Inbound Traffic Engineering<\/h1>\n<div class=\"j-byline font-color-meta\">Created by\u00a0<a id=\"jive-7057271449510281663700\" class=\"jiveTT-hover-user jive-username-link\" href=\"https:\/\/learningnetwork.cisco.com\/people\/shadow1996jk\" data-externalid=\"\" data-username=\"shadow1996jk\" data-avatarid=\"11982\" data-userid=\"705727\" data-presence=\"null\">Shadowjk &#8211; CCNP(R&amp;S), CCNA(Security; SP)<\/a>\u00a0on Dec 27, 2014 4:15 PM. Last modified by\u00a0<a id=\"jive-7057271449510282574042\" class=\"jiveTT-hover-user jive-username-link\" href=\"https:\/\/learningnetwork.cisco.com\/people\/shadow1996jk\" data-externalid=\"\" data-username=\"shadow1996jk\" data-avatarid=\"11982\" data-userid=\"705727\" data-presence=\"null\">Shadowjk &#8211; CCNP(R&amp;S), CCNA(Security; SP)<\/a>\u00a0on Dec 27, 2014 4:22 PM.<\/div>\n<\/header>\n<section class=\"jive-content-body\">\n<div class=\"jive-rendered-content\">\n<p>In this document I aim to explain the various options that you as a Network Operator can use to influence your inbound traffic flow via BGP. This topic is critical to understand for the CCNP ROUTE exam and introduces you to some good theory with regards to BGP policy enforcement.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Prerequisite knowledge<\/strong><\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li>Understanding of basic BGP operations<\/li>\n<li>Understanding of BGP neighbour types (iBGP\/eBGP)<\/li>\n<li>Understanding of common BGP attributes (NEXT-HOP; ORIGIN; AS-PATH\/SET; MED; LOCAL_PREFERENCE&#8230;etc)<\/li>\n<li>Understanding of the BGP Best-Path selection process<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>In order to show the various options that you have to try an manipulate how traffic enters your network I will be using the following topology.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/learningnetwork.cisco.com\/servlet\/JiveServlet\/showImage\/297714\/BGP+TE+Topology.png\"><img decoding=\"async\" class=\"jive-image\" src=\"https:\/\/learningnetwork.cisco.com\/servlet\/JiveServlet\/downloadImage\/297714\/BGP+TE+Topology.png\" alt=\"BGP TE Topology.png\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>In this scenario we will be controlling the attributes associated with our public subnet 169.254.0.0\/16. This is because we influence our\u00a0<strong>INBOUND<\/strong>\u00a0traffic flows by tweaking our\u00a0<strong>OUTBOUND<\/strong>\u00a0NLRI (<em>Network Layer Reachability Information<\/em>)&#8217;s attributes. Some side notes to understand is that all internal connections to form the iBGP connection have already been completed and the eBGP neighbourships are formed via the physical link address as opposed to loopback interfaces. How the neighbours are formed will not affect your ability to influence inbound traffic flows.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Current Scenario<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>Before we can review about how to manipulate our traffic flows we first need to identify what the default routing is if the network is setup and both\u00a0<strong>R3<\/strong>\u00a0and\u00a0<strong>R4<\/strong>\u00a0are advertising our public subnet to the ISP.<\/p>\n<p>&nbsp;<\/p>\n<p>Firstly, lets have a look at the BGP table on both\u00a0<strong>R1<\/strong>\u00a0and\u00a0<strong>R2<\/strong>\u00a0and perform a trace to a loopback on\u00a0<strong>R3<\/strong>&#8230;<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/learningnetwork.cisco.com\/servlet\/JiveServlet\/showImage\/297715\/current-r1.png\"><img decoding=\"async\" class=\"jive-image jive-image-thumbnail\" src=\"https:\/\/learningnetwork.cisco.com\/servlet\/JiveServlet\/downloadImage\/297715\/current-r1.png\" alt=\"current-r1.png\" width=\"620\" \/><\/a><\/p>\n<p>As you can see from the output,\u00a0<strong>R1<\/strong>\u00a0is preferring the eBGP route from\u00a0<strong>R3<\/strong>\u00a0over the iBGP route received from\u00a0<strong>R2<\/strong>. Therefore when performing a trace, the traffic comes in directly via the link between\u00a0<strong>R1<\/strong>\u00a0and\u00a0<strong>R3<\/strong>.<\/p>\n<p>&nbsp;<\/p>\n<p>Equally, if we look at\u00a0<strong>R2<\/strong>\u00a0we should see that it is preferring the eBGP path over the iBGP path&#8230;<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/learningnetwork.cisco.com\/servlet\/JiveServlet\/showImage\/297716\/current-r2.png\"><img decoding=\"async\" class=\"jive-image\" src=\"https:\/\/learningnetwork.cisco.com\/servlet\/JiveServlet\/downloadImage\/297716\/current-r2.png\" alt=\"current-r2.png\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Now that we know the normal traffic patterns from the ISP (Use the nearest exit point &#8211; This is also known as hot potato routing), we can now try and manipulate this.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>AS-PATH Prepending<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>One of the most common methods for influencing the path selection is to affect the AS-PATH attribute on our route as we advertise it OUTBOUND. Since this is the 4th tie breaker in the BGP best-path selection process it means that it&#8217;s effectiveness can be fairly strong in influencing the path. As a side note, it is also one of the few methods can be used where multihomed providers exist.<\/p>\n<p>&nbsp;<\/p>\n<p>So how does it work? Essentially when we advertise our route out we will prepend our AS number multiple times on the route going out the least preferred path. Consider the following topology&#8230;<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/learningnetwork.cisco.com\/servlet\/JiveServlet\/showImage\/297717\/BGP+TE+Topology+%28AS-PATH+Prepend%29.png\"><img decoding=\"async\" class=\"jive-image jive-image-thumbnail\" src=\"https:\/\/learningnetwork.cisco.com\/servlet\/JiveServlet\/downloadImage\/297717\/BGP+TE+Topology+%28AS-PATH+Prepend%29.png\" alt=\"BGP TE Topology (AS-PATH Prepend).png\" width=\"620\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Now to implement this desired change. In order to do this we need to call a route-map that calls a prefix-list referencing the prefix we wish to change. Then from there we can set the as-path prepend and finally apply to the neighbour. Remember, after applying a routing policy change a route-refresh or clearing of the BGP neighbour is needed. Since the attributes are already the same on\u00a0<strong>R4<\/strong>\u00a0we only need to make the change on\u00a0<strong>R3<\/strong>.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Configuration:<\/strong><\/p>\n<p>&nbsp;<\/p>\n<div>R3#show run | sectionbgp|route-map|prefix-list<\/div>\n<div>router bgp 64512<\/div>\n<div>bgp log-neighbor-changes<\/div>\n<div>network 169.254.0.0<\/div>\n<div>neighbor 4.4.4.4 remote-as 64512<\/div>\n<div>neighbor 4.4.4.4 update-source Loopback0<\/div>\n<div>neighbor 192.0.2.1 remote-as 100<\/div>\n<div>neighbor 192.0.2.1 route-map POLICY out<\/div>\n<div>ipprefix-list AS-PATH-PLseq5 permit 169.254.0.0\/16<\/div>\n<div>route-map POLICY permit 10<\/div>\n<div>matchipaddress prefix-list AS-PATH-PL<\/div>\n<div>set as-pathprepend64512 64512<\/div>\n<div>route-map POLICY permit 20<\/div>\n<div><\/div>\n<p>&nbsp;<\/p>\n<p><em>R3#show run | section bgp|route-map|prefix-list<\/em><\/p>\n<p><em>router bgp 64512<br \/>\n<\/em><\/p>\n<p><em>neighbor 192.0.2.1 route-map POLICY out<\/em><\/p>\n<p><em>!<\/em><\/p>\n<p><em>ip prefix-list AS-PATH-PL seq 5 permit 169.254.0.0\/16<\/em><\/p>\n<p><em>!<\/em><\/p>\n<p><em>route-map POLICY permit 10<\/em><\/p>\n<p><em>match ip address prefix-list AS-PATH-PL<\/em><\/p>\n<p><em>set as-path prepend 64512 64512<\/em><\/p>\n<p><em>route-map POLICY permit 20<\/em><\/p>\n<p>&nbsp;<\/p>\n<div><\/div>\n<div>With that applied I then verified the BGP table on\u00a0<strong>R1<\/strong>\u00a0as\u00a0<strong>R2<\/strong>&#8216;s path selection shouldn&#8217;t of changed. I then performed a trace to this destination. (Note: Since the ISP hasn&#8217;t advertised an address space there would be reachability issues. No networks in the ISP have been advertised down therefore I have enabled NAT on both ISP routers to fix this).<\/div>\n<div><\/div>\n<div><a href=\"https:\/\/learningnetwork.cisco.com\/servlet\/JiveServlet\/showImage\/297718\/AS-PATH+R1+Result.png\"><img decoding=\"async\" class=\"jive-image\" src=\"https:\/\/learningnetwork.cisco.com\/servlet\/JiveServlet\/downloadImage\/297718\/AS-PATH+R1+Result.png\" alt=\"AS-PATH R1 Result.png\" \/><\/a><\/div>\n<div>As we can see from the output,\u00a0<strong>R1\u00a0<\/strong>is now taking the long route to get to\u00a0<strong>R3<\/strong>. This is because the iBGP route is now preferred over the eBGP route due to the change in AS-PATH.<\/div>\n<div><\/div>\n<div><\/div>\n<div><\/div>\n<div><\/div>\n<div><\/div>\n<div><strong>Using MED (MULTI-EXIT DISCRIMINATOR)<\/strong><\/div>\n<div><strong>\u00a0<\/strong><\/div>\n<div><\/div>\n<div>The MED is a non-transitive attribute (Meaning it your neighbours will strip this attirbute off the route before advertising it on) that is the closest to a numerical &#8220;Metric&#8221; in BGP. Due to it&#8217;s non-transitive properties it&#8217;s only real use-case are in ones like our scenario where our site is multi-homed to the same AS. If we had a design which involved two ISP uplinks then this would not work as the MED from one ISP will not be transferred over to the other ISP.\u00a0Caution also needs to be exercised when using this attribute in production and some consultation may be needed with the ISP. This is because MED is interpreted differently across vendors. For example, some vendors say lower metric is better while others say higher metric is better. In Cisco IOS the metric value is treated the same as IGPs (Lower is better).\u00a0How do we influence this? In our scenario the point of policy application is similar to the previous example (Outbound on R3). We will then set the metric higher so the iBGP route on\u00a0<strong>R1<\/strong>\u00a0is preferred. For clarity reasons, I have reverted the previous as-path configuration as the AS-PATH will be used over the MED in path selection.<\/div>\n<div><\/div>\n<div><\/div>\n<div>For the topology:<\/div>\n<div><\/div>\n<div><\/div>\n<div><\/div>\n<div><\/div>\n<p><a href=\"https:\/\/learningnetwork.cisco.com\/servlet\/JiveServlet\/showImage\/297719\/BGP+TE+Topology+%28MED%29.png\"><img decoding=\"async\" class=\"jive-image jive-image-thumbnail\" src=\"https:\/\/learningnetwork.cisco.com\/servlet\/JiveServlet\/downloadImage\/297719\/BGP+TE+Topology+%28MED%29.png\" alt=\"BGP TE Topology (MED).png\" width=\"620\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Configuration:<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><em>R3#show run | section bgp|route-map|prefix-list<\/em><\/p>\n<p><em>router bgp 64512<br \/>\n<\/em><\/p>\n<p><em>neighbor 192.0.2.1 route-map POLICY out<\/em><\/p>\n<p><em>!<\/em><\/p>\n<p><em>ip prefix-list MED-PL seq 5 permit 169.254.0.0\/16<\/em><\/p>\n<p><em>!<br \/>\n<\/em><\/p>\n<p><em>route-map POLICY permit 10<\/em><\/p>\n<p><em>match ip address prefix-list MED-PL<\/em><\/p>\n<p><em>set metric 50<\/em><\/p>\n<p><em>route-map POLICY permit 20<\/em><\/p>\n<p>&nbsp;<\/p>\n<p>With that configuration applied we can then verify this on\u00a0<strong>R1<\/strong>. As before, because we did not modify the attributes going\u00a0<strong>OUT<\/strong>\u00a0to<strong>R2<\/strong>\u00a0the path that\u00a0<strong>R2<\/strong>\u00a0picks should be no different than before. Again, because we have changed our routing policy we need to perform a route-refresh or reset the neighbour.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/learningnetwork.cisco.com\/servlet\/JiveServlet\/showImage\/297720\/MED+R1+Result.png\"><img decoding=\"async\" class=\"jive-image jive-image-thumbnail\" src=\"https:\/\/learningnetwork.cisco.com\/servlet\/JiveServlet\/downloadImage\/297720\/MED+R1+Result.png\" alt=\"MED R1 Result.png\" width=\"620\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>As you can see above, the path has now changed! The route with the lower metric is now more preferred. From a data-plane perspective however, no change has happened as both the MED and the AS-PATH prepend has completed the same job.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Advanced Techniques<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>Above were the more popular methods of influencing inbound flows however the issue is that the ISP router or some other AS on the Internet could overwrite your policy and make it ineffective. This can then affect your desired outcome. Some more advanced techniques that can be used to ensure a complete active\/standby uplink fashion is conditional NLRI advertisement. This is where a prefix is only advertised when a certain condition is met. We can use this so that if the primary link goes down then advertise the route out the backup link. From the ISP perspective they wouldn&#8217;t be able to override this policy as they will only be receiving a single route at any one point in time. This though is a CCIE topic so slightly out of the topic domain for CCNP candidates. If you want to get more information on this then Cisco has some good documentation for this.\u00a0<a class=\"jive-link-external-small\" title=\"http:\/\/www.cisco.com\/c\/en\/us\/td\/docs\/ios-xml\/ios\/iproute_bgp\/configuration\/15-mt\/irg-15-mt-book\/irg-basic-net.html#GUID-FB7CAC3E-0E43-4B25-85AD-FEC19F5229EE\" href=\"http:\/\/www.cisco.com\/c\/en\/us\/td\/docs\/ios-xml\/ios\/iproute_bgp\/configuration\/15-mt\/irg-15-mt-book\/irg-basic-net.html#GUID-FB7CAC3E-0E43-4B25-85AD-FEC19F5229EE\" target=\"_blank\" rel=\"noopener\">http:\/\/www.cisco.com\/c\/en\/us\/td\/docs\/ios-xml\/ios\/iproute_bgp\/configuration\/15-mt\/irg-15-mt-book\/irg-basic-net.html#GUID-FB7CAC3E-0E43-4B25-85AD-FEC19F5229EE<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>There are other techniques out there that could be covered however most of them involve community tags and some involvement with the ISP. These methods discussed allow you to try and influence your traffic flows without having to contact the ISP. Remember however that your inbound routing policy can be easily overridden and that you cannot tell another AS how to route their traffic to you. This is where the more advanced techniques come into play. Also remember, that in order to affect our inbound traffic flows we need to enforce our policy outbound.<\/p>\n<p>&nbsp;<\/p>\n<p>Hope This Helps,<\/p>\n<p>Josh<\/p>\n<\/div>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>According to the BGP best route decision, best route will be chosed base on the the the sequence attributes ( [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[29,31,25,16,6],"tags":[36,37,79,99],"class_list":["post-737","post","type-post","status-publish","format-standard","hentry","category-ccie-rs","category-ccnp-route","category-cisco","category-courses","category-networking","tag-bgp","tag-bgp-path-selection","tag-inbound-bgp","tag-outbound-bgp"],"_links":{"self":[{"href":"https:\/\/kb.lagonet.vn\/index.php?rest_route=\/wp\/v2\/posts\/737","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kb.lagonet.vn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kb.lagonet.vn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kb.lagonet.vn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kb.lagonet.vn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=737"}],"version-history":[{"count":0,"href":"https:\/\/kb.lagonet.vn\/index.php?rest_route=\/wp\/v2\/posts\/737\/revisions"}],"wp:attachment":[{"href":"https:\/\/kb.lagonet.vn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=737"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kb.lagonet.vn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=737"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kb.lagonet.vn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}