BGP Link Bandwidth Extended Community?
dave seddon
dave.seddon.ca at gmail.com
Mon Jan 12 18:30:43 CET 2015
Greetings,
Thanks Ondrej!
With the help from a little IEEE754 converter, it works!
Filter becomes:
---------------------------------
export filter {
# Bandwidth in IEEE floating point format
# http://www.h-schmidt.net/FloatConverter/IEEE754.html
# 10000 0x461c4000
# 9000 0x460ca000
# 8000 0x45fa0000
# 7000 0x45dac000
# 6000 0x45bb8000
# 5000 0x459c4000
# 4000 0x457a0000
# 3000 0x453b8000
# 2000 0x44fa0000
# 1000 0x447a0000
#bgp_ext_community.add((unknown 0x4004, 65300, 0x461c4000));
if net ~ [22.0.0.0/24] then {
bgp_ext_community.add((unknown 0x4004, 65300,
0x461c4000));#10000
}
if net ~ [22.0.1.0/24] then {
bgp_ext_community.add((unknown 0x4004, 65300, 0x460ca000));#9000
}
if net ~ [22.0.2.0/24] then {
bgp_ext_community.add((unknown 0x4004, 65300, 0x45fa0000));#8000
}
if net ~ [22.0.3.0/24] then {
bgp_ext_community.add((unknown 0x4004, 65300, 0x447a0000));#1000
}
---------------------------------
Community is correctly interpreted by a Juniper MX:
---------------------------------
root at cache-router> show route 22.0.0.0 detail
inet.0: 605 destinations, 1120 routes (604 active, 0 holddown, 1 hidden)
22.0.0.0/24 (2 entries, 1 announced)
*BGP Preference: 170/-101
Next hop type: Indirect
Address: 0x290c1c0
Next-hop reference count: 514
Source: 10.1.0.2
Next hop type: Router, Next hop index: 635
Next hop: 10.0.0.2 via xe-1/0/0.10, selected
Session Id: 0x1
Next hop type: Router, Next hop index: 724
Next hop: 10.0.1.2 via xe-1/2/0.10
Session Id: 0x5
Protocol next hop: 10.0.0.2
Indirect next hop: 0x2930514 1048577 INH Session ID: 0xc1b
Protocol next hop: 10.0.1.2
Indirect next hop: 0x2930c30 1048578 INH Session ID: 0x96
State: <Active Int Ext>
Peer AS: 65300
Age: 3:56 Metric2: 0
Validation State: unverified
Task: BGP_65300_65300.10.1.0.2+57790
Announcement bits (3): 0-KRT 4-Resolve tree 2 6-RT
AS path: 65301 I
AS path: Recorded
Communities:
bandwidth:65300:10000
<--------------- Yay!
Accepted Multipath
Localpref: 100
Router ID: 10.1.0.2
BGP Preference: 170/-101
Next hop type: Indirect
Address: 0x28a58b4
Next-hop reference count: 385
Source: 10.1.0.6
Next hop type: Router, Next hop index: 724
Next hop: 10.0.1.2 via xe-1/2/0.10, selected
Session Id: 0x5
Protocol next hop: 10.0.1.2
Indirect next hop: 0x2930c30 1048578 INH Session ID: 0x96
State: <NotBest Int Ext>
Inactive reason: Not Best in its group - Router ID
Peer AS: 65300
Age: 2d 22:58:54 Metric2: 0
Validation State: unverified
Task: BGP_65300_65300.10.1.0.6+36217
AS path: 65301 I
AS path: Recorded
Accepted MultipathContrib
Localpref: 100
Router ID: 10.1.0.6
---------------------------------
root at cache-router> show route 22.0.0.0 detail | grep bandwidth
Communities: bandwidth:65300:10000
root at cache-router> show route 22.0.1.0 detail | grep bandwidth
Communities: bandwidth:65300:9000
root at cache-router> show route 22.0.2.0 detail | grep bandwidth
Communities: bandwidth:65300:8000
root at cache-router> show route 22.0.3.0 detail | grep bandwidth
Communities: bandwidth:65300:1000
---------------------------------
>From an operational perspective, what's the best way make changes to these
Bandwidth values without restarting the BGP sessions? I'd like to be able
to make changes, and then push a new update message, like doing a 'clear ip
bgp x.x.x.x soft clear out'. I've tried just updating the configurations
file and then restarting the reloading the protocol, but that doesn't do it.
---------------------------------
bird> reload core
core: reloading
---------------------------------
Kind regards,
Dave
On Sun, Jan 11, 2015 at 3:43 PM, Ondrej Zajicek <santiago at crfreenet.org>
wrote:
> On Sun, Jan 11, 2015 at 02:16:18PM -0800, dave seddon wrote:
> > Greetings Ondrej,
> >
> > Thanks for your reply regarding this extended community.
> >
> > I have tried the following two (2) configurations:
> > -------------------------------------------------
> > bgp_ext_community.add((unknown 0x4004, 65300, 10000));
> > bgp_ext_community.add((unknown 0x4004, 65300, 0x03E8));
> > -------------------------------------------------
> >
> > In both cases, the neighbour Juniper router see the bandwidth as zero.
>
> According to https://tools.ietf.org/html/draft-ietf-idr-link-bandwidth-06,
> the bandwidth have to be encoded as floating point, while the 'unknown'
> format defines a raw value of local field of the community.
>
> You could try to set the value from the tcpdump of Juniper (1176255488)
> instead of 10000.
>
> Well, to be practical, we would have to add explicit support for this
> community instead of using universal format.
>
> --
> Elen sila lumenn' omentielvo
>
> Ondrej 'Santiago' Zajicek (email: santiago at crfreenet.org)
> OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net)
> "To err is human -- to blame it on a computer is even more so."
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20150112/b1115e15/attachment.html>
More information about the Bird-users
mailing list