1つのパブリックIPアドレス(ピアA)と他の多くのパブリックIPアドレス(IPv4とIPv6アドレスが混在している)のリストがある場合、ピアAとIPを照合する最も簡単な方法n
に最も近いピアのアドレスで、ピアが手作業でピアリングしてレイテンシベンチマークを行う必要はありませんか?WebRTC:最寄りのピアの照合
複雑なクエリ(と多分OSPFに関係するもの)がたくさんあるBGPを使ってこれを行うことは可能だと思いますが、以下の理論的な関数呼び出しと同じくらい簡単にできる解決策やライブラリがあることを期待していました。
// `peer` is a single IP address. `peer_list` is a list of IP addresses
// get the 5 nearest peers (ordered) to `peer` from `peer_list`
nearest_peers = get_nearest_ips(peer, peer_list, 5);
私はちょうどMaxMindのGeoIPデータベース+半正矢/ Vincentyのローカルインスタンスを使用すべきか、これを達成するために(必要に応じて適切なキャッシュを持つ)ライブラリをBGPを使用することは現実的ではありますか?
オープンソースのanycastルーティング実装にこの種のコードが存在する可能性がありますが、このユースケースに合ったものは何も見つかりませんでした。
解決策または推奨ライブラリはnode.jsで動作する必要はありません。どの言語でも問題ありません。
私はIPのリストが外部IPアドレスであると仮定します。 MaxMindのGeoIPデータベースを使用して、各IPの座標を取得し、Haversineの式を使って最短の場所を決定します。おそらくボトルネックはMaxMind(例<400ミリ秒)からの応答時間ですが、私はGeoIPデータベースを販売して、必要に応じて施設内でホストすることも発見しました。 https://www.maxmind.com/en/geoip2-databases – spicyramen
@spicyramenええ、BGPでこれを行う方法がわからないのなら、現地のMaxMind dbが私の代替手段です。 –