Giter VIP home page Giter VIP logo

peerfinder's Introduction

peerfinder

Build Status

Installation

peerfinder can be installed via PIP:

$ pip3 search peerfinder
peerfinder (2020.7.25)  - A tool to find common IX points as per PeeringDB

Failing that, you an build from source and install locally:

git clone https://github.com/rucarrol/PeerFinder.git
cd PeerFinder
python3 setup.py sdist bdist_wheel
pip install ./dist/peerfinder*.whl

PeeringDB API Key

It is recommended that you configure a PeeringDB API key to mitigate the effect of PeeringDB's throttling of anonymous requests. Details on how to obtain an API key can be found at https://docs.peeringdb.com/howto/api_keys/. Store a key at one of the following well-known paths: ~/.peerfinder/peeringdb_api.key, ~/.peeringdb_api.key. Be sure to keep your key private by setting permissions to user-only access, such as with chmod 0600.

Usage

PeerFinder is a python3.7 and beyond script which finds common points of presence between ASNs as reported by PeeringDB.

The tool takes a mandatory arguments: --asn. There are three arguments to control output: --ix, --private and --missing.

$ peerfinder --asn 2603 13414 --ix --private
Fetching PeeringDB info for 2603
Fetching PeeringDB info for 13414
+-----------------------------------------------------+-----------------------------+-----------------------------+
|                          IX                         |           NORDUnet          |        Twitter, Inc.        |
+-----------------------------------------------------+-----------------------------+-----------------------------+
|                        AMS-IX                       |      v4: 80.249.209.203     |      v4: 80.249.208.130     |
|                                                     | v6: 2001:7f8:1::a500:2603:1 |        80.249.210.46        |
|                                                     |                             | v6: 2001:7f8:1::a501:3414:1 |
|                                                     |                             |   2001:7f8:1::a501:3414:2   |
+-----------------------------------------------------+-----------------------------+-----------------------------+
|    DE-CIX Frankfurt: DE-CIX Frankfurt Peering LAN   |      v4: 80.81.192.241      |       v4: 80.81.192.10      |
|                                                     |    v6: 2001:7f8::a2b:0:1    |         80.81.194.21        |
|                                                     |                             |    v6: 2001:7f8::3466:0:1   |
|                                                     |                             |      2001:7f8::3466:0:2     |
+-----------------------------------------------------+-----------------------------+-----------------------------+
|                   Equinix Ashburn                   |     v4: 206.126.236.230     |      v4: 206.126.236.97     |
|                                                     |   v6: 2001:504:0:2::2603:1  | v6: 2001:504:0:2:0:1:3414:2 |
+-----------------------------------------------------+-----------------------------+-----------------------------+
|                   Equinix Chicago                   |     v4: 208.115.136.151     |     v4: 208.115.136.171     |
|                                                     |   v6: 2001:504:0:4::2603:1  | v6: 2001:504:0:4:0:1:3414:1 |
+-----------------------------------------------------+-----------------------------+-----------------------------+
|                HKIX: HKIX Peering LAN               |      v4: 123.255.91.213     |      v4: 123.255.90.149     |
|                                                     |                             | v6: 2001:7fa:0:1::ca28:a095 |
+-----------------------------------------------------+-----------------------------+-----------------------------+
|                   LINX LON1: Main                   |      v4: 195.66.225.24      |      v4: 195.66.225.142     |
|                                                     |    v6: 2001:7f8:4::a2b:1    |        195.66.226.61        |
|                                                     |                             |    v6: 2001:7f8:4::3466:1   |
|                                                     |                             |      2001:7f8:4::3466:2     |
+-----------------------------------------------------+-----------------------------+-----------------------------+
|                     LONAP: LON0                     |       v4: 5.57.80.168       |        v4: 5.57.81.31       |
|                                                     |    v6: 2001:7f8:17::a2b:1   |          5.57.81.32         |
|                                                     |                             |   v6: 2001:7f8:17::3466:1   |
|                                                     |                             |     2001:7f8:17::3466:2     |
+-----------------------------------------------------+-----------------------------+-----------------------------+
|  Netnod Stockholm BLUE -- MTU1500: STH-B -- MTU1500 |      v4: 194.68.128.24      |      v4: 194.68.128.229     |
|                                                     |    v6: 2001:7f8:d:fe::24    |    v6: 2001:7f8:d:fe::229   |
+-----------------------------------------------------+-----------------------------+-----------------------------+
|  Netnod Stockholm BLUE -- MTU4470: STH-B -- MTU4470 |      v4: 195.69.119.24      |      v4: 195.69.119.229     |
|                                                     |    v6: 2001:7f8:d:fb::24    |    v6: 2001:7f8:d:fb::229   |
+-----------------------------------------------------+-----------------------------+-----------------------------+
| Netnod Stockholm GREEN -- MTU1500: STH-A -- MTU1500 |      v4: 194.68.123.24      |      v4: 194.68.123.229     |
|                                                     |    v6: 2001:7f8:d:ff::24    |    v6: 2001:7f8:d:ff::229   |
+-----------------------------------------------------+-----------------------------+-----------------------------+
| Netnod Stockholm GREEN -- MTU4470: STH-A -- MTU4470 |      v4: 195.245.240.24     |     v4: 195.245.240.229     |
|                                                     |    v6: 2001:7f8:d:fc::24    |    v6: 2001:7f8:d:fc::229   |
+-----------------------------------------------------+-----------------------------+-----------------------------+
+----------------------------------------------------+-----------+---------------+
|                      Facility                      |  NORDUnet | Twitter, Inc. |
+----------------------------------------------------+-----------+---------------+
|           Equinix CH1/CH2/CH4 - Chicago            | ASN: 2603 |   ASN: 13414  |
+----------------------------------------------------+-----------+---------------+
|             Equinix DC1-DC15 - Ashburn             | ASN: 2603 |   ASN: 13414  |
+----------------------------------------------------+-----------+---------------+
|          Equinix LD8 - London, Docklands           | ASN: 2603 |   ASN: 13414  |
+----------------------------------------------------+-----------+---------------+
| Interxion Stockholm (STO1, STO2, STO3, STO4, STO5) | ASN: 2603 |   ASN: 13414  |
+----------------------------------------------------+-----------+---------------+

--missing

The cli switch to print the IXPs in which the given list of ASNs are not present in, and report the port speed if the present peer.

eg:

Fetching PeeringDB info for 2603
Fetching PeeringDB info for 13414
+----------------------------------------------------+----------------+---------------------+
|                         IX                         | NORDUnet speed | Twitter, Inc. speed |
+----------------------------------------------------+----------------+---------------------+
|                   Equinix Dallas                   |                |      40000Mbit      |
+----------------------------------------------------+----------------+---------------------+
|                     BBIX Tokyo                     |                |      400000Mbit     |
+----------------------------------------------------+----------------+---------------------+
|                Equinix Los Angeles                 |                |      30000Mbit      |
+----------------------------------------------------+----------------+---------------------+
|                   Equinix  Miami                   |                |      30000Mbit      |
+----------------------------------------------------+----------------+---------------------+
|               SIX Seattle: MTU 1500                |                |      20000Mbit      |
+----------------------------------------------------+----------------+---------------------+
|           SIX Seattle (Jumbo): MTU 9000            |                |      20000Mbit      |
+----------------------------------------------------+----------------+---------------------+
|               MegaIX Sydney: MegaIX                |                |      20000Mbit      |
+----------------------------------------------------+----------------+---------------------+
|         IX.br (PTT.br) São Paulo: ATM/MPLA         |                |      20000Mbit      |
+----------------------------------------------------+----------------+---------------------+
|         IX Australia (Sydney NSW): NSW-IX          |                |      20000Mbit      |
+----------------------------------------------------+----------------+---------------------+
|                  France-IX Paris                   |                |      20000Mbit      |
+----------------------------------------------------+----------------+---------------------+
|      Equinix São Paulo: Equinix IX - SP Metro      |                |      20000Mbit      |
+----------------------------------------------------+----------------+---------------------+
|                   Equinix Sydney                   |                |      20000Mbit      |
+----------------------------------------------------+----------------+---------------------+
|       Equinix London: Equinix IX - LD Metro        |                |      20000Mbit      |
+----------------------------------------------------+----------------+---------------------+
|      Equinix Frankfurt: Equinix IX - FR Metro      |                |      20000Mbit      |
+----------------------------------------------------+----------------+---------------------+
|      Equinix Amsterdam: Equinix IX - AM Metro      |                |      20000Mbit      |
+----------------------------------------------------+----------------+---------------------+
|      DE-CIX Madrid: DE-CIX Madrid Peering LAN      |                |      20000Mbit      |
+----------------------------------------------------+----------------+---------------------+
|                JPNAP Tokyo: Peering                |                |      200000Mbit     |
+----------------------------------------------------+----------------+---------------------+
|                   Equinix Tokyo                    |                |      200000Mbit     |
+----------------------------------------------------+----------------+---------------------+
|                 Equinix Singapore                  |                |      200000Mbit     |
+----------------------------------------------------+----------------+---------------------+
|                  Equinix San Jose                  |                |      200000Mbit     |
+----------------------------------------------------+----------------+---------------------+
|                 Equinix Palo Alto                  |                |      200000Mbit     |
+----------------------------------------------------+----------------+---------------------+
|                  Equinix New York                  |                |      200000Mbit     |
+----------------------------------------------------+----------------+---------------------+
|               Digital Realty Atlanta               |                |      200000Mbit     |
+----------------------------------------------------+----------------+---------------------+
|             CoreSite - Any2 California             |                |      200000Mbit     |
+----------------------------------------------------+----------------+---------------------+
|              DE-CIX Johor Bahru: JBIX              |                |        10Mbit       |
+----------------------------------------------------+----------------+---------------------+
|                        MyIX                        |                |       1000Mbit      |
+----------------------------------------------------+----------------+---------------------+
|                 Equinix Hong Kong                  |                |      10000Mbit      |
+----------------------------------------------------+----------------+---------------------+
|              ESPANIX Madrid Upper LAN              |                |      10000Mbit      |
+----------------------------------------------------+----------------+---------------------+
|              ESPANIX Madrid Lower LAN              |                |      10000Mbit      |
+----------------------------------------------------+----------------+---------------------+
|                  AMS-IX Hong Kong                  |                |      10000Mbit      |
+----------------------------------------------------+----------------+---------------------+
|           STHIX - Stockholm: STH Peering           |   20000Mbit    |                     |
+----------------------------------------------------+----------------+---------------------+
|          STHIX - Copenhagen: CPH Peering           |   10000Mbit    |                     |
+----------------------------------------------------+----------------+---------------------+
|                 SGIX: Peering LAN                  |   10000Mbit    |                     |
+----------------------------------------------------+----------------+---------------------+
|                        RIX                         |   10000Mbit    |                     |
+----------------------------------------------------+----------------+---------------------+
|     Netnod Copenhagen GREEN -- MTU9K: 9K-GREEN     |   10000Mbit    |                     |
+----------------------------------------------------+----------------+---------------------+
|      Netnod Copenhagen BLUE -- MTU9K: 9K-BLUE      |   10000Mbit    |                     |
+----------------------------------------------------+----------------+---------------------+
|                       NYIIX                        |   10000Mbit    |                     |
+----------------------------------------------------+----------------+---------------------+
|                    NL-ix: Main                     |   10000Mbit    |                     |
+----------------------------------------------------+----------------+---------------------+
|                        NIX1                        |   10000Mbit    |                     |
+----------------------------------------------------+----------------+---------------------+
|                      ECIX-HAM                      |   10000Mbit    |                     |
+----------------------------------------------------+----------------+---------------------+
|                      ECIX-FRA                      |   10000Mbit    |                     |
+----------------------------------------------------+----------------+---------------------+
|                    DIX: DIX LAN                    |   10000Mbit    |                     |
+----------------------------------------------------+----------------+---------------------+
|                        CIXP                        |   10000Mbit    |                     |
+----------------------------------------------------+----------------+---------------------+
| Asteroid Amsterdam: Asteroid Amsterdam Peering LAN |   10000Mbit    |                     |
+----------------------------------------------------+----------------+---------------------+

Bugs, Features

Please open a PR!

peerfinder's People

Contributors

brenocrs avatar ccaputo avatar rucarrol avatar rucarrol-goog avatar wusel42 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

peerfinder's Issues

Traceback

Getting this when trying to run peerfinder today. Has worked in the past for me.

Traceback (most recent call last):
File "/home/user/.local/bin/peerfinder", line 8, in
sys.exit(main())
File "/home/user/.local/lib/python3.8/site-packages/peerfinder/peerfinder.py", line 84, in main
ix_set = [pdb_to_ixp(ix) for _, ix in ix_dedup.items()]
File "/home/user/.local/lib/python3.8/site-packages/peerfinder/peerfinder.py", line 84, in
ix_set = [pdb_to_ixp(ix) for _, ix in ix_dedup.items()]
File "/home/user/.local/lib/python3.8/site-packages/peerfinder/peerfinder.py", line 105, in pdb_to_ixp
subnet4=[IPv4Address(i) for i in netixlan_set["ipaddr4"]],
File "/home/user/.local/lib/python3.8/site-packages/peerfinder/peerfinder.py", line 105, in
subnet4=[IPv4Address(i) for i in netixlan_set["ipaddr4"]],
File "/usr/lib/python3.8/ipaddress.py", line 1257, in init
self._ip = self._ip_int_from_string(addr_str)
File "/usr/lib/python3.8/ipaddress.py", line 1144, in _ip_int_from_string
raise AddressValueError("Expected 4 octets in %r" % ip_str)
ipaddress.AddressValueError: Expected 4 octets in 'None'

private-only not working?

i was expecting different results from this query:

hanna:tmp job$ python peerfinder.py --private-only --myasn 2914 --peerasn 6453
Fetching PeeringDB info for 2914
Fetching PeeringDB info for 6453
Didnt find any common IX

list what is gained by joining an IX

the current behavior of PeerFinder is to display similarities and differences between AS-es.

A nice feature would be an option to list what is AS-es that are potential peers by adding an IX. Something similar to

peerfinder --asn <my-asm> --new-ix=<ix-identifier>

+--------+---------+-------+-------------------+
|   AS   | AS name | speed | capacity increase |
+--------+---------+-------+-------------------+
| 63396  | some AS | 1Mbit |         ∞         |
| 65000  | foo AS  | 1Mbit |      0.005x       |
| 65534  | bar AS  | 1Mbit |       1000x       |
+--------+---------+-------+-------------------+

ix-identifier could be the peeringdb ix id

--private-only || --ix-only are not optional

Without --private-only || --ix-only, the script outputs nothing.

(env) 11:47 mp01~/src/PeerFinder[] % ./peerfinder.py --myasn  36459 --peerasn 13414                                                               (master|✔)
Fetching PeeringDB info for 36459
Fetching PeeringDB info for 13414
(env) 11:47 mp01~/src/PeerFinder[] % ./peerfinder.py --myasn 36459 --peerasn 13414 --private-only                                                 (master|✔)
Fetching PeeringDB info for 36459
Fetching PeeringDB info for 13414
+----------------------------+---------+---------+
|          Facility          |   City  | Country |
+----------------------------+---------+---------+
| Equinix Ashburn (DC1-DC11) | Ashburn |    US   |
+----------------------------+---------+---------+
(env) 11:47 mp01~/src/PeerFinder[] % ./peerfinder.py --myasn 36459 --peerasn 13414 --ix-only                                                      (master|✔)
Fetching PeeringDB info for 36459
Fetching PeeringDB info for 13414
+-----------------+-------+----------------+-------------------------+
|        IX       |  ASN  |      IPv4      |           IPv6          |
+-----------------+-------+----------------+-------------------------+
| Equinix Ashburn | 13414 | 206.126.236.18 | 2001:504:0:2:0:1:3414:1 |
| Equinix Ashburn | 13414 | 206.126.236.97 | 2001:504:0:2:0:1:3414:2 |
|   SIX Seattle   | 13414 |  206.81.81.31  |    2001:504:16::3466    |
+-----------------+-------+----------------+-------------------------+

I would expect either both outputs to be default, or an argv warning.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.