t2mune / Mrtparse
Programming Languages
Labels
Projects that are alternatives of or similar to Mrtparse
mrtparse ########
Introduction
| mrtparse is a module to read and analyze the MRT format data.
| The MRT format can be used to export routing protocol messages, state changes, and routing information base contents, and is defined in RFC6396_.
| Programs like FRRouting_, Quagga_, Zebra_, BIRD_, OpenBGPD_ and PyRT_ can dump the MRT format data.
| You can also download archives from the Route Views Projects
, RIPE NCC
.
.. _RFC6396: https://tools.ietf.org/html/rfc6396
.. _FRRouting: https://frrouting.org/
.. _Quagga: https://www.nongnu.org/quagga/
.. _Zebra: https://www.gnu.org/software/zebra/
.. _BIRD: https://bird.network.cz/
.. _OpenBGPD: http://www.openbgpd.org/
.. _PyRT: https://github.com/mor1/pyrt
.. _the Route Views Projects
: http://archive.routeviews.org/
.. _RIPE NCC
: https://www.ripe.net/analyse/internet-measurements/routing-information-service-ris/ris-raw-data
Support
Python Version
If you want your code to run faster, you should use PyPy or PyPy3.
- Python2
- Python3
- PyPy
- PyPy3
MRT Type
+-------------------+---------+ | Name | Value | +===================+=========+ | TABLE_DUMP | 12 | +-------------------+---------+ | TABLE_DUMP_V2 | 13 | +-------------------+---------+ | BGP4MP | 16 | +-------------------+---------+ | BGP4MP_ET | 17 | +-------------------+---------+
TABLE_DUMP Subtype
+-------------------+---------+ | Name | Value | +===================+=========+ | AFI_IPv4 | 1 | +-------------------+---------+ | AFI_IPv6 | 2 | +-------------------+---------+
TABLE_DUMP_V2 Subtype
+-------------------------------+---------+ | Name | Value | +===============================+=========+ | PEER_INDEX_TABLE | 1 | +-------------------------------+---------+ | RIB_IPV4_UNICAST | 2 | +-------------------------------+---------+ | RIB_IPV4_MULTICAST | 3 | +-------------------------------+---------+ | RIB_IPV6_UNICAST | 4 | +-------------------------------+---------+ | RIB_IPV6_MULTICAST | 5 | +-------------------------------+---------+ | RIB_GENERIC | 6 | +-------------------------------+---------+ | RIB_IPV4_UNICAST_ADDPATH | 8 | +-------------------------------+---------+ | RIB_IPV4_MULTICAST_ADDPATH | 9 | +-------------------------------+---------+ | RIB_IPV6_UNICAST_ADDPATH | 10 | +-------------------------------+---------+ | RIB_IPV6_MULTICAST_ADDPATH | 11 | +-------------------------------+---------+ | RIB_GENERIC_ADDPATH | 12 | +-------------------------------+---------+
BGP4MP/BGP4MP_ET Subtype
+--------------------------------------+---------+ | Name | Value | +======================================+=========+ | BGP4MP_STATE_CHANGE | 0 | +--------------------------------------+---------+ | BGP4MP_MESSAGE | 1 | +--------------------------------------+---------+ | BGP4MP_MESSAGE_AS4 | 4 | +--------------------------------------+---------+ | BGP4MP_STATE_CHANGE_AS4 | 5 | +--------------------------------------+---------+ | BGP4MP_MESSAGE_LOCAL | 6 | +--------------------------------------+---------+ | BGP4MP_MESSAGE_AS4_LOCAL | 7 | +--------------------------------------+---------+ | BGP4MP_MESSAGE_ADDPATH | 8 | +--------------------------------------+---------+ | BGP4MP_MESSAGE_AS4_ADDPATH | 9 | +--------------------------------------+---------+ | BGP4MP_MESSAGE_LOCAL_ADDPATH | 10 | +--------------------------------------+---------+ | BGP4MP_MESSAGE_AS4_LOCAL_ADDPATH | 11 | +--------------------------------------+---------+
BGP Capability
+--------------------------------------------+---------+ | Name | Value | +============================================+=========+ | Multiprotocol Extensions for BGP-4 | 1 | +--------------------------------------------+---------+ | Route Refresh Capability for BGP-4 | 2 | +--------------------------------------------+---------+ | Outbound Route Filtering Capability | 3 | +--------------------------------------------+---------+ | Graceful Restart Capability | 64 | +--------------------------------------------+---------+ | Support for 4-octet AS number capability | 65 | +--------------------------------------------+---------+ | ADD-PATH Capability | 69 | +--------------------------------------------+---------+
BGP Attribute
+-------------------------+---------+ | Name | Value | +=========================+=========+ | ORIGIN | 1 | +-------------------------+---------+ | AS_PATH | 2 | +-------------------------+---------+ | NEXT_HOP | 3 | +-------------------------+---------+ | MULTI_EXIT_DISC | 4 | +-------------------------+---------+ | LOCAL_PREF | 5 | +-------------------------+---------+ | ATOMIC_AGGREGATE | 6 | +-------------------------+---------+ | AGGREGATOR | 7 | +-------------------------+---------+ | COMMUNITY | 8 | +-------------------------+---------+ | ORIGINATOR_ID | 9 | +-------------------------+---------+ | CLUSTER_LIST | 10 | +-------------------------+---------+ | MP_REACH_NLRI | 14 | +-------------------------+---------+ | MP_UNREACH_NLRI | 15 | +-------------------------+---------+ | EXTENDED COMMUNITIES | 16 | +-------------------------+---------+ | AS4_PATH | 17 | +-------------------------+---------+ | AS4_AGGREGATOR | 18 | +-------------------------+---------+ | AIGP | 26 | +-------------------------+---------+ | LARGE_COMMUNITY | 32 | +-------------------------+---------+ | ATTR_SET | 128 | +-------------------------+---------+
Installation
::
$ pip install mrtparse
or
::
$ git clone https://github.com/t2mune/mrtparse.git
$ cd mrtparse
$ python setup.py install
Usage
First, import the module.
::
from mrtparse import *
or
::
import mrtparse
| And pass a MRT format data as a filepath string or file object to a class Reader(). | It is also supported gzip and bzip2 format. | You can retrieve each entry from the returned object using a loop and then process it. |
::
for entry in Reader(f):
# Parsed data is stored in "entry.data"
<statements>
We have prepared some example scripts and sample data in "examples"
_ and "samples"
_ directory.
.. _"examples"
: examples
.. _"samples"
: samples
Authors
| Tetsumune KISO [email protected] | Yoshiyuki YAMAUCHI [email protected] | Nobuhiro ITOU [email protected]
License
| Licensed under the Apache License, Version 2.0
_
| Copyright (C) 2020 Tetsumune KISO
.. _Apache License, Version 2.0
: http://www.apache.org/licenses/LICENSE-2.0