As returning readers of this blog would be aware - I found a trick to find Facebook caching servers around the world during the APRICOT 2018 hackathon. Since then I am running my code again every year to see the changes and publish this report.
Back in 2019, I was in San Francisco, California for NANOG 75. While roaming around in the lobby, someone read the NANOG card hanging around my neck and greeted me. His 2nd line after greeting was “Oh I know that name, you are the guy who mapped our caching nodes” and we both laughed. I must say this specific category of the post has brought some attention around.
Reference in World Bank report!
This series of my blog post was once a report published on the topic of Tanzania’s economic update by the World Bank and my post was cited there as a reference. The full report can be found here.
How this data is prepared? - Use of airport codes
As posted in the original post in detail - essentially I am running for loops with a specific hostname string which Facebook uses - scontent.fXXXY-Z.fna.fbcdn.net. Here XXX belongs to airport code, Y belongs to 1st ISP and Z belongs to 1st cluster of FB. Thus scontent.fDEL1-1.fna.fbcdn.net points to 1st ISP, 1st cluster in DEL (Delhi). So my for loops are doing this across all airport codes in the world. Next, my code maps the IPv4 and IPv6 addresses to the AS numbers and AS numbers to AS name.
What are Facebook FNA nodes btw?
In order to improve speed, performance and capacity - Facebook deploys its caching servers across various ISPs in the world. These nodes sit “inside” the ISP network and cache the popular Facebook content including photos, videos etc. They call these FNA - Facebook Network Appliance. Essentially these learn routes via a passive BGP session. Facebook’s global load balancers map the traffic using various logic including performance, latency etc towards these FNA nodes using DNS.
FNA Global Report - July 2022
Links to the report
- Full global report here
- India-specific report here
- Google Data Studio Link with search by country, ASN or airport code here
Summary of changes between April 2021 & July 2022
- The total number of global FNA nodes is now at 4897. That’s up from 4456 since the last check.
- Total Indian FNA nodes up from 372 to 489!
- 489 Indian FNA nodes are spread across 189 Indian AS numbers and 70 cities.
- Indian network with the highest number of FNA nodes is now (surprise!) BSNL AS9829 with 64. Next is Jio AS55836 with 62, Bharti Airtel AS9498 at 44 and GTPL Gujarat Telelink AS45916 a 27.
- In terms of locations - highest number of nodes are in Delhi (69) followed by Mumbai at 62.
- As new entrants - Tata Play Fiber / Tata Sky has added 4 nodes - Bangalore, Kolkata, Jaipur & Pune.
Top 10 cities by number of Facebook FNA nodes
|Airport Code||Airport Name||Total FNA Nodes|
|DEL||DEL Delhi [Indira Gandhi International Airport]||69|
|CGH||CGH Sao Paulo||64|
|BOM||BOM Bombay [Sahar (Santa Cruz) International Airport]||62|
|DAC||DAC Dhaka [Zia International]||45|
|POA||POA Porto Alegre||45|
|MEX||MEX Ciudad de Mexico (Mexico City) [Aeropuerto Internacional Benito Juarez]||42|
|SDU||SDU Rio de Janeiro||38|
This data is going to be a bit fudged but based on a number of airports. For instance, for Delhi, there are 69 detected FNA nodes. I see data of many of the cities of Haryana including Rohtak, Gurgaon, Faridabad etc merged in it as there is no airport around.