{"id":2476,"date":"2019-01-26T19:24:50","date_gmt":"2019-01-27T00:24:50","guid":{"rendered":"http:\/\/www.braindeadprojects.com\/blog\/?p=2476"},"modified":"2019-02-01T09:03:08","modified_gmt":"2019-02-01T14:03:08","slug":"evaluating-the-world-of-wan-link-load-balancing-sd-wan","status":"publish","type":"post","link":"http:\/\/www.braindeadprojects.com\/blog\/what\/evaluating-the-world-of-wan-link-load-balancing-sd-wan\/","title":{"rendered":"Evaluating the world of WAN link-load-balancing (SD-WAN)"},"content":{"rendered":"\n<p>It is probably obvious from the postings I&#8217;ve made here at BraindeadProjects that my home is nothing more than a giant networking lab. When I wanted to learn how <a href=\"https:\/\/en.wikipedia.org\/wiki\/Passive_optical_network\">GPON<\/a> worked, I prepped my &#8220;lab&#8221; by building a 12 strand fiber-optic ring through the walls of my home and connecting the five Cisco switches throughout the house together using bi-directional SFPs <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/www.braindeadprojects.com\/img\/FiberOptic\/12StrandFiber.JPG\" alt=\"\"\/><figcaption>12 strands of fiber-optic and some kevlar blonde hair<\/figcaption><\/figure>\n\n\n\n<p>When I needed better wireless coverage, I built out a <a href=\"https:\/\/unifi-sdn.ui.com\/\">Ubiquiti Unifi wireless network<\/a> and later rewired most of the light switches in my home with <a href=\"https:\/\/www.tp-link.com\/us\/\">Wifi-enabled TP-Link <\/a>switches so that I could voice control the home using Amazon Alexa Echo&#8217;s.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"818\" height=\"165\" src=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image.png\" alt=\"\" class=\"wp-image-2479\" srcset=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image.png 818w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-300x61.png 300w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-768x155.png 768w\" sizes=\"(max-width: 818px) 100vw, 818px\" \/><figcaption>The Ubiquiti UniFi Controller<\/figcaption><\/figure>\n\n\n\n<p>Wanting to centralize my firewall policies, long ago I routed each of the 12 production VLANs at home run through a <a href=\"https:\/\/www.fortinet.com\/\">Fortigate<\/a> 60C High Availability cluster.  <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"714\" height=\"208\" src=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-15.png\" alt=\"\" class=\"wp-image-2499\" srcset=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-15.png 714w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-15-300x87.png 300w\" sizes=\"(max-width: 714px) 100vw, 714px\" \/><figcaption>Buy what you need, not necessary what&#8217;s new. <\/figcaption><\/figure>\n\n\n\n<p>The home has 4 Internet connections with 2 diverse paths: The 3rd floor terminates two 5Ghz microwave PtMP links from a Wireless ISP that I used to work for. The basement terminates a Verizon 5Mbps\/760Kbps DSL line, and a Comcast 100Mbps cable link. <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"720\" src=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/35433378_10204622010348121_8304957584855531520_n.jpg\" alt=\"\" class=\"wp-image-2480\" srcset=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/35433378_10204622010348121_8304957584855531520_n.jpg 960w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/35433378_10204622010348121_8304957584855531520_n-300x225.jpg 300w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/35433378_10204622010348121_8304957584855531520_n-768x576.jpg 768w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><figcaption>Install large 3 foot dish while wife is busy, ask forgiveness later.<\/figcaption><\/figure>\n\n\n\n<p>So how do I maintain connectivity to the Internet if a connection goes down or if I lose power on a floor of my home? Previously I had a simple <a href=\"https:\/\/en.wikipedia.org\/wiki\/Virtual_Router_Redundancy_Protocol\">VRRP<\/a> setup: Whichever connection was performing best I would manually set to be the VRRP master and fail over if connectivity went down. If I wanted to specify that email should operate over the microwave backhauls, I would create another VRRP group (so that I could have redundancy), <a href=\"https:\/\/en.wikipedia.org\/wiki\/Policy-based_routing\">policy-based route<\/a> email traffic to that group, and setup an IP SLA to test the connection. This was a bit of an administrative nightmare, so I did so sparingly.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"941\" height=\"739\" src=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-2.png\" alt=\"\" class=\"wp-image-2482\" srcset=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-2.png 941w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-2-300x236.png 300w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-2-768x603.png 768w\" sizes=\"(max-width: 941px) 100vw, 941px\" \/><figcaption>Ubiquiti UNMS &#8211; a dashboard to view all of your Edge Routers<\/figcaption><\/figure>\n\n\n\n<p>Then the world became abuzz with &#8220;<a href=\"https:\/\/en.wikipedia.org\/wiki\/SD-WAN\">Software Defined Wide Area Networking<\/a>&#8220;. To qualify as &#8220;SD-WAN&#8221; Gartner has four required characteristics: The ability to support multiple connection types (MPLS, LTE, Internet, etc), support for dynamic path selection, load sharing over the links, and simplified provisioning (Zero Touch Provisioning).<\/p>\n\n\n\n<p>I&#8217;ve had the opportunity to evaluate a small handful of &#8220;SD-WAN&#8221; solutions, each with their own pros and cons: Some are surprisingly lacking in features (despite large sales footprints), some are full of features but have lackluster provisioning, and some are insanely expensive (at least for home use).<\/p>\n\n\n\n<p>Initially I had settled on adding a different vendor&#8217;s SD-WAN appliance into the home network and purchased 3 of their devices. After waiting for the shipment for over a month, I received a full refund from the seller with little explanation. I seriously lucked out.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"248\" height=\"195\" src=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-8.png\" alt=\"\" class=\"wp-image-2490\"\/><figcaption>Long wait, no explanation. Oh well&#8230;<\/figcaption><\/figure><\/div>\n\n\n\n<p>While waiting for my boxes to arrive, I had the chance to borrow and test the platform and found some limitations &#8211; namely only support for 2 WAN connections and no active-active support (so I couldn&#8217;t use my other 2 WAN connections) . Then I took a closer look at the Fortigate&#8217;s I already had in my network.<br><br>Fortigate supports re-configuring each of their 10 ethernet connections for various use. This allowed me to take ports that are typically used for LAN connections and re-purpose them into WAN connections. This is a major plus. The downside was my exisiting Fortigate 60C&#8217;s don&#8217;t support the lastest FortiOS (6.0) code. <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"754\" height=\"283\" src=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-16.png\" alt=\"\" class=\"wp-image-2500\" srcset=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-16.png 754w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-16-300x113.png 300w\" sizes=\"(max-width: 754px) 100vw, 754px\" \/><figcaption>One of the 3 racks of equipment at home.<\/figcaption><\/figure>\n\n\n\n<p>For the price of the other vendor&#8217;s limited platform (x3), I could purchase 2 used Fortigate 60D&#8217;s off Ebay &#8211; plus purchase rack-mount trays for each unit. No more Fortigate sitting atop another device in the network racks. Since I don&#8217;t need the advanced features the platform provides (anti-virus, IPS\/IDS, etc), the second-hand solution is perfect for my needs (Firewall policies, SD-WAN, VPNs). <\/p>\n\n\n\n<p>So here&#8217;s how Fortinet does things:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"193\" height=\"49\" src=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-17.png\" alt=\"\" class=\"wp-image-2503\"\/><\/figure><\/div>\n\n\n\n<p>Configure an IP on each of the WAN connections you intend to use. In my instance, VLAN 66 is my &#8220;Internet DMZ&#8221; where each of the 4 Ubiquiti <a href=\"https:\/\/www.ui.com\/edgemax\/edgerouter-x-sfp\/\">EdgeRouter X SFPs <\/a>bring the Internet connections into my network. <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"615\" height=\"405\" src=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/SD-WAN-WAN-Fortinetv2.png\" alt=\"\" class=\"wp-image-2516\" srcset=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/SD-WAN-WAN-Fortinetv2.png 615w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/SD-WAN-WAN-Fortinetv2-300x198.png 300w\" sizes=\"(max-width: 615px) 100vw, 615px\" \/><\/figure>\n\n\n\n<p>To allow the Fortigate to have multiple WAN interfaces in the same subnet, you have to override the system default preventing that:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>flamethrowerX # show system settings <br><strong> config system settings<\/strong><br>     set inspection-mode flow<br>     <strong>set allow-subnet-overlap enable<\/strong><br>     set gui-fortiextender-controller enable<br> end<\/p><\/blockquote>\n\n\n\n<p>When creating the WAN interfaces, you&#8217;ll need to manually specify the bandwidth of each link. This is one unfortunate downside to the Fortigate solution &#8211; it cannot measure available bandwidth dynamically.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"723\" height=\"749\" src=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-9.png\" alt=\"\" class=\"wp-image-2491\" srcset=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-9.png 723w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-9-290x300.png 290w\" sizes=\"(max-width: 723px) 100vw, 723px\" \/><\/figure>\n\n\n\n<p>When selecting the members of the &#8220;SD-WAN&#8221; interface, you may find that you&#8217;re unable to include certain interfaces. The most likely cause of this is a firewall policy referencing that interface. If you don&#8217;t follow the cookbook, you&#8217;ll likely run into this frustrating problem, so RTFM.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"799\" height=\"318\" src=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-10.png\" alt=\"\" class=\"wp-image-2492\" srcset=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-10.png 799w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-10-300x119.png 300w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-10-768x306.png 768w\" sizes=\"(max-width: 799px) 100vw, 799px\" \/><figcaption>Oh&#8230; so that&#8217;s why I couldn&#8217;t do that&#8230; Hmm&#8230;<\/figcaption><\/figure>\n\n\n\n<p>When you aggregate interfaces into the SD-WAN interface, you&#8217;ll need to specify the gateway of each WAN link and the default load-balancing mechanism. In my instance I&#8217;m using &#8220;Volume-based&#8221; balancing.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"527\" height=\"779\" src=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-11.png\" alt=\"\" class=\"wp-image-2493\" srcset=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-11.png 527w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-11-203x300.png 203w\" sizes=\"(max-width: 527px) 100vw, 527px\" \/><figcaption>Defining the pie.<\/figcaption><\/figure>\n\n\n\n<p><br>Under the SD-WAN rules section you can further specify how you want the volume dispersed.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"428\" src=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-12.png\" alt=\"\" class=\"wp-image-2494\" srcset=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-12.png 525w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-12-300x245.png 300w\" sizes=\"(max-width: 525px) 100vw, 525px\" \/><figcaption>Slicing up the pie.<\/figcaption><\/figure>\n\n\n\n<p>After creating the base settings you can have the real fun. The PBR rules that used to take additional thought and design are now the matter of a point and click solution. Making email route over the 5Ghz links by default is the simple matter of creating an SD-WAN rule. Video streaming services such as NetFlix and Hulu can simply be prioritized to run over the higher bandwidth cable connection &#8211; and failover to the other options when needed.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"483\" src=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-13-1024x483.png\" alt=\"\" class=\"wp-image-2495\" srcset=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-13-1024x483.png 1024w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-13-300x141.png 300w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-13-768x362.png 768w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-13.png 1063w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>This is <em>WAYYYY<\/em> easier than the old way of doing things.<\/figcaption><\/figure>\n\n\n\n<p>The SD-WAN SLA&#8217;s are somewhat simplistic. You have the option to either ping or pull a web request from a designated server. Neither solution detects MTU issues in a path. If I were to disable TCP MSS clamping on my DSL line the system continues to use it despite a user being unable to download content from websites correctly.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"212\" src=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-3-1024x212.png\" alt=\"\" class=\"wp-image-2483\" srcset=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-3-1024x212.png 1024w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-3-300x62.png 300w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-3-768x159.png 768w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-3.png 1081w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>The SD-WAN SLA&#8217;s. Pingy, pingy, pingy, pingy, pingy.<\/figcaption><\/figure>\n\n\n\n<p>One of my favorite features in the web interface is the ability to look at the logical topology and see which users in each VLAN are consuming what amount of traffic. <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"901\" height=\"617\" src=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-4.png\" alt=\"\" class=\"wp-image-2484\" srcset=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-4.png 901w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-4-300x205.png 300w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-4-768x526.png 768w\" sizes=\"(max-width: 901px) 100vw, 901px\" \/><figcaption>Lots of penguins heading to the cloud.<\/figcaption><\/figure>\n\n\n\n<p>You can also drill into the flows determining which flow is using which WAN link. <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"775\" src=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-6-1024x775.png\" alt=\"\" class=\"wp-image-2486\" srcset=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-6-1024x775.png 1024w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-6-300x227.png 300w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-6-768x581.png 768w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-6.png 1078w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>You go this way, you go that way, you go this way, you go that way.<\/figcaption><\/figure>\n\n\n\n<p>So, what do I not like about the solution? I&#8217;m able to rename an interface, but on some screens the GUI displays the interface name and NOT the alias. This requires additional thought &#8220;Oh, interface7 is the DSL&#8221;.<\/p>\n\n\n\n<p>I also wish I had the ability in each flow to see which SD-WAN rule was hit. This is important since it can help you verify that things like Email are classified correctly (I found that IMAP wasn&#8217;t considered part of the &#8220;All Email&#8221; out-of-the box classification in the non-Fortinet solution I initially purchased).<br><\/p>\n\n\n\n<p>I&#8217;m still working to perfect the HA failover on the system. The general idea is that if the one Fortigate can&#8217;t ping the VRRP addresses I had setup on the WAN routers or LAN switches the backup unit should take over. &#8220;Remote Link Monitoring&#8221; took me some time to get working on the former Fortigate 60C&#8217;s, so I&#8217;m not discouraged yet.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"198\" src=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-7-1024x198.png\" alt=\"\" class=\"wp-image-2487\" srcset=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-7-1024x198.png 1024w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-7-300x58.png 300w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-7-768x149.png 768w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-7.png 1086w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>High Availability: When you need a backup flamethrower.<\/figcaption><\/figure>\n\n\n\n<p>Overall you can certainly see the power of what Fortinet&#8217;s re-branded &#8220;WAN Link Load-balancing&#8221; has to offer. The ability to leverage redundant Internet links in such a simple manner places some serious power in the hands of companies with limited IT resources &#8211; and I&#8217;m only scratching the surface of the capabilities. <\/p>\n\n\n\n<p>If you&#8217;re looking to test your own WAN load balancing, I&#8217;ve put together a webpage that will display your IP address, as seen from 5 different IP lookup sites on the Internet. Feel free to use it for testing. You can find it <a href=\"http:\/\/www.braindeadprojects.com\/sdwan-ip.php\">here<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"742\" src=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-18-1024x742.png\" alt=\"\" class=\"wp-image-2512\" srcset=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-18-1024x742.png 1024w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-18-300x217.png 300w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-18-768x556.png 768w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/image-18.png 1270w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>It is probably obvious from the postings I&#8217;ve made here at BraindeadProjects that my home is nothing more than a giant networking lab. When I wanted to learn how GPON worked, I prepped my &#8220;lab&#8221; by building a 12 strand fiber-optic ring through the walls of my home and connecting the five Cisco switches throughout &hellip; <a href=\"http:\/\/www.braindeadprojects.com\/blog\/what\/evaluating-the-world-of-wan-link-load-balancing-sd-wan\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Evaluating the world of WAN link-load-balancing (SD-WAN)<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[43,49,29,40,1],"tags":[],"class_list":["post-2476","post","type-post","status-publish","format-standard","hentry","category-fiber","category-fortinet","category-linux","category-ubiquiti","category-what"],"_links":{"self":[{"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/posts\/2476"}],"collection":[{"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/comments?post=2476"}],"version-history":[{"count":18,"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/posts\/2476\/revisions"}],"predecessor-version":[{"id":2517,"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/posts\/2476\/revisions\/2517"}],"wp:attachment":[{"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/media?parent=2476"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/categories?post=2476"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/tags?post=2476"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}