Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inaccurate geolocations in Fedora Mirror Manager #7

Closed
ott opened this issue Sep 7, 2024 · 6 comments
Closed

Inaccurate geolocations in Fedora Mirror Manager #7

ott opened this issue Sep 7, 2024 · 6 comments

Comments

@ott
Copy link

ott commented Sep 7, 2024

The geolocation of many servers of Micro Mirrors is inaccurate in Fedora Mirror Manager. In several instances it should affect load distribution severely, in particular in the USA.

Fedora Mirror Manager has a public list of its estimates of geolocations of mirror servers. If no latitude and longitude are specified by the mirror server administrator, MaxMind's GeoIP database are used to determine the geolocation. However, I'm not sure whether Fedora uses a version of mirrormanager2 yet that allows mirror server administrator to specify latitude and longitude. For many servers of Micro Mirrors I'm suspecting that their location is determined by MaxMind's GeoIP database because their location is so off.

This is particularly important as geographic proximity is a major factor in the mirror server lists generated by mirrorlist-server.

The following servers are, for example, located in Cheney Reservoir Lake near Wichita in Kansas:

  • cofractal-ewr.mm.fcix.net
  • gsl-syd.mm.fcix.net
  • ix-denver.mm.fcix.net
  • lolhost.mm.fcix.net
  • nocix.mm.fcix.net
  • ohioix.mm.fcix.net
  • opencolo.mm.fcix.net
  • southfront.mm.fcix.net
  • volico.mm.fcix.net

This seems to be in the middle of the USA. As a result, these servers might attract requests from all over the country.

I made a best-effort attempt to find out the location of all server of Micro Mirrors. In many instances PeeringDB entries combined with reverse DNS names and traceroute outputs gave plausible results.

I was not able to accurately determine the location of the following servers yet:

  • abqix.mm.fcix.net
  • b4sh.mm.fcix.net
  • bungi.mm.fcix.net
  • cofractal-sea.mm.fcix.net
  • coresite-atl.mm.fcix.net
  • coresite.mm.fcix.net
  • edgeuno-bog2.mm.fcix.net
  • forksystems.mm.fcix.net
  • ipng.mm.fcix.net
  • lchs.mm.fcix.net
  • nnenix.mm.fcix.net
  • ohioix.mm.fcix.net
  • ridgewireless.mm.fcix.net
  • stix.mm.fcix.net
  • uvermont.mm.fcix.net
  • veronanetworks.mm.fcix.net

I might put more effort into finding their locations later.

If possible, the locations of the following servers should be changed in Fedora Mirror Manager:

Server Latitude Longitude Actual Latitude Actual Longitude Factility
ask4.mm.fcix.net 52.9538 -1.1571 53.398917 -1.429056 ASK4 DC1 - Sheffield
codingflyboy.mm.fcix.net 37.5172 -121.9191 37.471809 -121.920111 Hurricane Electric Fremont 2
cofractal-ewr.mm.fcix.net 37.751 -97.822 40.736844 -74.173402 165 Halsey Meet-Me Room
creeperhost.mm.fcix.net 51.4964 -0.1224 51.511552 -0.002424 Telehouse - London (Docklands North)
divergentnetworks.mm.fcix.net 52.5852 -0.236 52.55425 -0.390896 MyHostingSpace - Peterborough
gsl-syd.mm.fcix.net -33.8715 151.2006 -33.918198 151.1893 Equinix SY5 - Sydney
ima.mm.fcix.net 37.751 -97.822 43.657789 -70.261202 Deep Edge Realty - Portland, Maine (340 Cumberland)
irltoolkit.mm.fcix.net 34.0544 34.0544 34.058096 -118.235357 CoreSite - Los Angeles (LA2)
ix-denver.mm.fcix.net 37.751 -97.822 40.736844 -74.173402 DataBank Denver (DEN3)
lesnet.mm.fcix.net 49.8984 -97.1405 49.894493 -97.135586 LES.NET YWG1
lolhost.mm.fcix.net 37.751 -97.822 37.471809 -121.920111 Hurricane Electric Fremont 2
mirror.fcix.net 37.5172 -121.9191 37.471809 -121.920111 Hurricane Electric Fremont 2
nocix.mm.fcix.net 37.751 -97.822 39.136878 -94.577558 1530 SWIFT - NOCIX
opencolo.mm.fcix.net 37.751 -97.822 37.378892 -121.956248 OpenColo
paducahix.mm.fcix.net 37.1772 -88.723 37.09402 -88.634104 Quad State Internet PAH1 Colocation
ryamer.mm.fcix.net 37.5172 -121.9191 41,872911 -121.920111 Netrality Chicago - 717 S Wells
southfront.mm.fcix.net 37.751 -97.822 41.548129 -90.621185 SFN IA-Davenport
volico.mm.fcix.net 37.751 -97.822 26.289687 -80.130014 500 Green (AKA VOLICO 2.0)
ziply.mm.fcix.net 47.6859 -122.2994 47.921151 -122.226913 EVRTWAXA - Everett Primary Central Office

ask4.mm.fcix.net is located in Sheffield instead of Nottingham.

codingflyboy.mm.fcix.net and mirror.fcix.net are located in FMT2 instead of a graveyard in Freemont. However, their location is not that wrong.

Moreover, the location of the following servers is wrong but at least in the same city:

  • creeperhost.mm.fcix.net
  • divergentnetworks.mm.fcix.net
  • gsl-syd.mm.fcix.net
  • irltoolkit.mm.fcix.net

lchs.mm.fcix.net is located by Fedora Mirror Manager in an uninhabited area in Australia. The organization seems to be based in Tasmania, so perhaps the servers are located there. Therefore, I left it out.

For others I did not take notes towards the end.

It it is not possible yet, to make specify the location in Fedora Mirror Manager, I will submit corrections to MaxMind through their form in the hope that their find their way into their database.

It might be useful in the future to have the exact location in host_vars for each host, for example, for automation with Fedora Mirror Manager, GeoDNS or other forms of load distribution that is based on location (not that this is the best idea).

@PhirePhly
Copy link
Owner

I've been working on adding a set of geolocation facts to the host_vars when I touch them. https://github.com/PhirePhly/micromirrors/blob/main/host_vars/b4sh.mm.fcix.net.yaml#L15-L19

This seems to be in the middle of the USA. As a result, these servers might attract requests from all over the country

The problem is that so many client IPs have the wrong geo data in MaxMind as well, which is why I've been unmotivated to try and fix these. I know Fedora is discussing moving away from MaxMind to a higher quality geoIP database but don't know the intention there.

If possible, the locations of the following servers should be changed in Fedora Mirror Manager

I'm not aware of a way to do this, so I'm assuming that you mean submitting fixes to MaxMind.

Same city is correct enough for me; we're just trying to not offer clients mirrors in another timezone here; not send the servers Christmas cards.

@warthog9
Copy link
Collaborator

warthog9 commented Sep 8, 2024

Mirror Manager doesn't give us a way to set anything more granular than country, which is frankly the level of useful bounding on what MaxMind is ever going to provide.

I'm also reasonably sure that MirrorManager ITSELF doesn't have any logic to hand out mirrors based on anything more granular than country code because trying to guess where a client is based on it's incoming IP address, again against MaxMind, isn't going to get you anything closer than "you are in " so there isn't any reason to hand this off.

Really the client is the only one who's going to be able to come up with a good idea of what a good path is going to look like for it, and trying to push any of that logic up away from the client to something like Mirror Manager is pointless. Also keeping in mind physical locality != network locality.

I'm inclined to close this since there's really nothing for us to do here unless I'm missing something?

@PhirePhly
Copy link
Owner

I've added geo information to the host variables for the nodes which you listed as not being able to figure out on your own. f985253

Let us know if you need any other information.

@ott
Copy link
Author

ott commented Sep 8, 2024

mirrormanager2, the software that is used for Fedora Mirror Manager, gained the ability to manually specify the geolocation 2 months ago (fedora-infra/mirrormanager2@8438e29). Therefore, I opened this issue. It seems that this version is not used by Fedora Mirror Manager yet.

Perhaps this is also a result of a discussions about a better geolocation database provider: Mirror server operators know best where their servers are located.

I will submit the corrections to MaxMind. Perhaps they will correct it. If I hear from them or I run into other missing information, I will let you know. Otherwise, I suggest to let this issue dormant until Fedora Mirror Manager has been updated.

I'm also aware that “locality != network locality” and that mirrorlist-server uses a simplistic algorithm to determine the best mirror. I'm working on improving this is, even though it's not an easy problem. See for example fedora-infra/mirrormanager2#308. If there is a result that is relevant to Micro Mirrors, I will let you know.

@ott
Copy link
Author

ott commented Sep 16, 2024

I was able to clarify with one of the mirrormanager2 maintainers that the latitude and longitude fields are used by a software component that caches this information from MaxMind's GeoIP databases. It cannot be changed by mirror server administrators. Therefore, it is only possible to correct this information in MaxMind's GeoIP databases. So I'm closing this ticket as there is nothing that can be done from the perspective of Micro Mirrors. I opened this ticket due to a misunderstanding of the functionality of mirrormanager2.

I have also submitted the corrections to MaxMind and received positive responses. The location of mirror servers should be correct on the map once Fedora uses the newest versions of the databases. I think I made an accidental mistake for southfront.mm.fcix.net and it is only possible to resubmit a correct in two weeks. So it might be possible that the traffic distribution is slightly skewed for a short period of time. I will also double check the coordinates once Fedora has updated its map. However, there is nothing that has to be done from the perspective of this project.

@ott ott closed this as completed Sep 16, 2024
@PhirePhly
Copy link
Owner

Great. I do appreciate your effort on the MaxMind side, and finally giving me the kick in the pants to start updating the hosts vars geo information.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants