Wednesday, October 21, 2015

networking - Estimating distance between two servers by IP address - Server Fault



networking - Estimating distance between two servers by IP address - Server Fault
For internal ips, companies can build the library to compare distance between different ip addresses.

That's called an IP numbering plan and would be similar to how POTS telephone numbers have a country code prefix, an area code and a local subscriber number and are not completely randomly assigned.
You can then infer similar information, the same area code is in the same DC, an area code +1 or -2 is still nearby or possibly a different quadrant in the same DC and a large off-set in area codes or a different country code is almost certainly long distance.
Which is much more than "everything within the same subnet must be nearby" that would be the only safe assumption to make otherwise, without consulting routing tables.
For instance when ip-address ranges are assigned on a as needed policy, you could get that 10.1.2.0/24 ends in up Ireland, 10.1.3.0/24 in Hong Kong, 10.1.4.0/24 ends in up Los Angeles, with 10.1.5.0/24 in San Francisco nearby and 10.1.6.0/24 bringing you all the way to Sydney.

It looks as though the paper was referring to an addressing scheme the organization itself controls, hence they know exactly where specific IP blocks are being used. They probably have something akin to a list of IP blocks that correspond to a given datacenter and can therefore correlate the source and dest IP addresses to netblocks, datacenters and physical addresses or GPS coords.
You could also do something similar with any IP addresses. There are several Geo-IP services that can geolocate a given IP address to a city/state, zip code, or GPS coords. Obviously there is a margin of error since those services have no way to know exactly where an IP address is in use, but for the most part they'll get you close. If you're trying to calculate distance between a server in California and one in NYC, then for the most part the error margin won't amount to much over that much distance, but if you're trying to calculate distance between an IP in North Florida and another one in Southern Georgia then your result probably won't be nearly as accurate.
Another pitfall to the public Geo-IP services is they have no idea what the internal network structure looks like, so for instance if an organization headquartered in Chicago backhauls all of their branch office traffic over their private network then you might see physical locations in Arizona with what appears to be a Chicago IP.
Read full article from networking - Estimating distance between two servers by IP address - Server Fault

Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts