Comments (3)
For more context, the issue here is that the peering session for this BGP update message was over IPv6 (both peer and local addresses are IPv6)
Peer IP Address: 2001:7f8:54::1:204
Local IP Address: 2001:7f8:54::1:99
However, peering session doesn't necessarily mean that NLRI will follow the same AFI. In fact, NLRI at the end of BGP message should always be decoded as IPv4. RFC4760 for multiprotocol extensions also confirms this. Under 1. Introduction first paragraph, it states that:
The only three pieces of information carried by BGP-4 [BGP-4] that are IPv4 specific are (a) the NEXT_HOP attribute (expressed as an IPv4 address), (b) AGGREGATOR (contains an IPv4 address), and (c) NLRI (expressed as IPv4 address prefixes).
from mrtparse.
Hi,
Thank you very much for reporting this issue.
I fixed it, so could you confirm that it works correctly?
In my environment, the result is as follows:
--- updates.20200422.0125.out.before 2020-04-24 19:23:31.974871626 +0900
+++ updates.20200422.0125.out.after 2020-04-24 19:43:59.898189564 +0900
(...snip)
@@ -1160977,29 +1160977,29 @@
NEXT_HOP: 85.208.68.1
Path Attribute Flags/Type/Length: 0xc0/8/64
COMMUNITY: 0:8304 0:49981 16:1134 6762:1 6762:31 6762:40 6762:10150 24115:57463 25091:22414 25091:24115 64700:57463 64704:1300 65400:0 65400:65400 65444:102 65444:2000
- NLRI: 305::/20
- NLRI: 305::/24
- NLRI: 305:1000::/21
- NLRI: 305:1000::/24
- NLRI: 350::/12
- NLRI: 3e0::/12
- NLRI: 3d0::/12
- NLRI: 305:400::/24
- NLRI: 305:900::/24
- NLRI: 305:1100::/24
- NLRI: 305:1200::/24
- NLRI: 305:a00::/24
- NLRI: 305:b00::/24
- NLRI: 305:700::/24
- NLRI: 305:1300::/24
- NLRI: 305:200::/24
- NLRI: 305:600::/24
- NLRI: 305:300::/24
- NLRI: 305:1500::/24
- NLRI: 305:500::/24
- NLRI: 305:800::/24
- NLRI: 305:100::/24
- NLRI: 305:1400::/24
+ NLRI: 3.5.0.0/20
+ NLRI: 3.5.0.0/24
+ NLRI: 3.5.16.0/21
+ NLRI: 3.5.16.0/24
+ NLRI: 3.80.0.0/12
+ NLRI: 3.224.0.0/12
+ NLRI: 3.208.0.0/12
+ NLRI: 3.5.4.0/24
+ NLRI: 3.5.9.0/24
+ NLRI: 3.5.17.0/24
+ NLRI: 3.5.18.0/24
+ NLRI: 3.5.10.0/24
+ NLRI: 3.5.11.0/24
+ NLRI: 3.5.7.0/24
+ NLRI: 3.5.19.0/24
+ NLRI: 3.5.2.0/24
+ NLRI: 3.5.6.0/24
+ NLRI: 3.5.3.0/24
+ NLRI: 3.5.21.0/24
+ NLRI: 3.5.5.0/24
+ NLRI: 3.5.8.0/24
+ NLRI: 3.5.1.0/24
+ NLRI: 3.5.20.0/24
from mrtparse.
Thanks for the update, I took a look at your change and it looks good to me. I can also confirm that IPv4 are now getting decoded correctly.
from mrtparse.
Related Issues (20)
- potential bug: mrt2exabgp.py with BGP4MP_MESSAGE HOT 4
- Enhancement: mrt2exabgp.py (-A|-G) should finish by itself HOT 5
- ExaBGP API grouping format syntax change HOT 6
- mrt2exabgp bails out with CRC error HOT 3
- mrt2bgpdump.py crashes with Updates messages HOT 3
- module 'signal' has no attribute 'SIGPIPE' on jupyter notebook , python 3.6 on windows HOT 3
- TypeError: object of type 'NoneType' has no len() in a Route Views update file HOT 5
- Possible Performance improvements HOT 7
- MRTPARSE to exabgp config hangs when using -G & -P flags HOT 1
- Bug in __init__.py line 930 HOT 2
- Error parsing RIPE MRT data HOT 2
- Python3 Error in mrtparse HOT 9
- Convert the RAW BGP data from RIPE HOT 9
- Key error when converting MRT to JSON HOT 4
- Error in Example mrt2bgpdump HOT 1
- mrt2exabgp mrt2bgpdump key issue for prefix length HOT 4
- Replace `val_dict` by a better solution HOT 3
- Extended NLRI Encodings HOT 4
- Upload to pypi HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mrtparse.