mrtparse
========, 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 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
.. _Quagga: http://www.nongnu.org/quagga/
.. _Zebra: https://www.gnu.org/software/zebra/
.. _BIRD: http://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
Supported MRT types
+-------------------+---------+, Name, Value, +===================+=========+, TABLE_DUMP, 12, +-------------------+---------+, TABLE_DUMP_V2, 13, +-------------------+---------+, BGP4MP, 16, +-------------------+---------+, BGP4MP_ET, 17, +-------------------+---------+
Supported TABLE_DUMP subtypes
+-------------------+---------+, Name, Value, +===================+=========+, AFI_IPv4, 1, +-------------------+---------+, AFI_IPv6, 2, +-------------------+---------+
Supported TABLE_DUMP_V2 subtypes
+-------------------------------+---------+, 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, +-------------------------------+---------+
Supported BGP4MP/BGP4MP_ET subtypes
+--------------------------------------+---------+, Name, Value, +======================================+=========+, BGP4MP_STATE_CHANGE, +--------------------------------------+---------+, 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, +--------------------------------------+---------+
Supported BGP capabilities
+--------------------------------------------+---------+, 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, +--------------------------------------------+---------+
Supported BGP attributes
+-------------------------+---------+, 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, +-------------------------+---------+
Requirements
Python2 or Python3 or PyPy or PyPy3
Installation
::
$ pip install mrtparse
or
::
$ git clone https://github.com/YoshiyukiYamauchi/mrtparse.git
$ cd mrtparse
$ python setup.py install
Usage
::
from mrtparse import *
or
::
import mrtparse
Programming
First, import the module.
::
from mrtparse import *, 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.
::
d = Reader(f)
for m in d:
<statements>
We have prepared some example scripts and sample data in "examples"
_ and "samples"
_ directory.
.. _"examples"
: https://github.com/YoshiyukiYamauchi/mrtparse/tree/master/examples
.. _"samples"
: https://github.com/YoshiyukiYamauchi/mrtparse/tree/master/samples
Authors
-------, Tetsumune KISO t2mune@gmail.com, Yoshiyuki YAMAUCHI info@greenhippo.co.jp, Nobuhiro ITOU js333123@gmail.com
License
-------, Licensed under the Apache License, Version 2.0
_, Copyright © 2018 Tetsumune KISO
.. _Apache License, Version 2.0
: http://www.apache.org/licenses/LICENSE-2.0