![]() |
News | Profile | Code | Photography | Looking Glass | Projects | System Statistics | Uncategorized |
Blog |
Well, since the weather was crappy in Charlotte this weekend, I decided to fix a patch I had written for MTR awhile back. Based on RFC 4950, it decodes the ICMP extensions for MPLS and prints them in the curses and report interfaces of MTR. Here's an example:
(dax:18:12)% ./mtr --report --report-cycles=4 ns2.google.com. HOST: dax.prolixium.com Loss% Snt Last Avg Best Wrst StDev 1.|-- voxel.prolixium.net 0.0% 4 0.4 2.3 0.4 4.2 2.1 2.|-- 0.ae2.tsr1.lga5.us.voxel. 0.0% 4 0.3 1.5 0.3 5.1 2.4 3.|-- 0.ae59.tsr1.lga3.us.voxel 0.0% 4 0.4 0.4 0.4 0.4 0.0 4.|-- google.tienyc.telxgroup.n 0.0% 4 0.4 0.4 0.4 0.4 0.0 5.|-- 72.14.239.46 0.0% 4 0.6 4.5 0.6 16.0 7.7 6.|-- 209.85.249.11 0.0% 4 20.9 10.6 6.8 20.9 6.9 | +-- [MPLS: Lbl 729852 Exp 4 S 1 TTL 1] 7.|-- 209.85.241.222 0.0% 4 17.9 17.9 17.7 18.2 0.2 | +-- [MPLS: Lbl 602259 Exp 4 S 1 TTL 1] 8.|-- 209.85.241.207 0.0% 4 17.6 17.7 17.6 17.8 0.1 9.|-- 216.239.47.250 0.0% 4 25.5 22.8 17.6 27.3 4.4 | `|-- 216.239.47.242 10.|-- ns2.google.com 0.0% 4 17.8 17.9 17.8 18.0 0.1
And here's one on my internal network showing an MPLS L3VPN with two labels in the stack (the patch will decode up to eight, if anything supports it - Juniper routers process a max of five and then give up):
(dax:18:12)% ./mtr --report --report-cycles=4 -4 -n janeway HOST: dax.prolixium.com Loss% Snt Last Avg Best Wrst StDev 1.|-- 10.3.254.17 0.0% 4 34.4 33.9 30.6 36.2 2.4 2.|-- 10.3.7.249 0.0% 4 32.5 32.1 31.1 33.6 1.2 3.|-- 10.3.8.46 0.0% 4 31.7 31.8 31.5 32.0 0.2 4.|-- 10.3.8.54 0.0% 4 32.4 33.2 31.8 35.4 1.6 5.|-- 10.3.8.102 0.0% 4 33.2 34.0 31.7 36.1 1.9 6.|-- 10.3.8.77 0.0% 4 32.9 37.9 32.9 47.8 6.7 7.|-- 10.3.8.62 0.0% 4 33.1 34.4 33.1 35.3 0.9 | +-- [MPLS: Lbl 100512 Exp 0 S 0 TTL 1] | +-- [MPLS: Lbl 16 Exp 0 S 1 TTL 1] 8.|-- 10.3.8.70 0.0% 4 38.3 35.6 33.4 38.3 2.0 | +-- [MPLS: Lbl 100560 Exp 0 S 0 TTL 1] | +-- [MPLS: Lbl 16 Exp 0 S 1 TTL 2] 9.|-- 10.3.8.98 0.0% 4 47.6 42.5 39.5 47.6 3.6
I couldn't test the IPv6 support, so I left it out. I have yet to see a service provider on the Internet expose this information in a traceroute through their public infrastructure, so I have nothing to test it with. Due to Junos bugs, I couldn't test it in my lab, either! I also left out support for the GTK+ fronend because I don't find it too useful (does anybody?).
Grab the patch here. It's based on 0.80, which is currently the latest release.
Update: Use this patch, now. It includes IPv6 support. Thanks to Ryan Rawdon for pointing out that Cogent exposes MPLS label information on the IPv6 portion of their network, and helping me test it w/MTR.
Update: This patch is now included in the mainline MTR release starting with 0.82. You can grab it here!
New comments are currently disabled for this entry.
![]() ![]() ![]() ![]() ![]() |
This HTML for this page was generated in 0.000 seconds. |