Mrtparse Save

MRT format data parser

Project README

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) 2022 Tetsumune KISO

.. _Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0

Open Source Agenda is not affiliated with "Mrtparse" Project. README Source: t2mune/mrtparse
Stars
134
Open Issues
1
Last Commit
7 months ago
Repository
License
Tags

Open Source Agenda Badge

Open Source Agenda Rating