Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Aug 23 17:56
    pettai opened #912
  • Aug 22 12:08
    thomas-mangin labeled #911
  • Aug 22 12:03
    thomas-mangin closed #910
  • Aug 22 12:03
    thomas-mangin commented #910
  • Aug 22 09:31
    thomas-mangin commented #911
  • Aug 22 09:29
    thomas-mangin labeled #911
  • Aug 22 09:28
    thomas-mangin assigned #911
  • Aug 22 03:58
    andy19910403 edited #911
  • Aug 22 03:58
    andy19910403 opened #911
  • Aug 15 14:15
    vincentbernat commented #910
  • Aug 15 07:46
    sincerywaing edited #910
  • Aug 15 05:19
    sincerywaing opened #910
  • Aug 14 21:40
    Vascko commented #909
  • Aug 13 10:04
    thomas-mangin labeled #909
  • Aug 13 10:04
    thomas-mangin assigned #909
  • Aug 13 10:02
    thomas-mangin commented #909
  • Aug 12 07:32
    wavezhang commented #908
  • Aug 12 07:32
    wavezhang commented #908
  • Aug 11 23:04
    Vascko opened #909
  • Aug 09 21:44
    thomas-mangin commented #908
Sebastian Wiesinger
@sebastianw
let me check, I use the one from pip install ..
ExaBGP : 4.0.6-daa3d6ba Python : 3.5.3 (default, Jan 19 2017, 14:11:04) [GCC 6.3.0 20170118] Uname : Linux grml2 4.9.0-1-grml-amd64 #1 SMP Debian 4.9.29-1+grml.1 (2017-05-24) x86_64
Thomas Mangin
@thomas-mangin
There was nothing since 4.0.6 in master to explain this difference
Sebastian Wiesinger
@sebastianw
hm
Thomas Mangin
@thomas-mangin
Could you please run exabgp with the -d option
and … a secret one - 10 second need the name
Sebastian Wiesinger
@sebastianw
okay, have to go to a quick meeting, bee back in 10-20 mins
Thomas Mangin
@thomas-mangin
env exabgp.debug.configuration=1 exabgp.debug.pdb=1 exabgp -d ...
NP
Sebastian Wiesinger
@sebastianw
okay, so I ran it
12:26:17 | 20080 | reactor | async | add-remove | problem with function 12:26:17 | 20080 | reactor | async | add-remove | 'Iterator' object has no attribute 'afi' 12:26:17 | 20080 | configuration | . attributes | 'as-path' '[' '54596' ']' 'community' '[' 'no-export' ']' 'next-hop' 'self' 'nlri' '2.64.0.0/13' '2.72.0.0/15' '2.72.0.0/16'
Sebastian Wiesinger
@sebastianw
that's all I get
Thomas Mangin
@thomas-mangin
:-(
could you try to not use next-hop self but use the IP to see if the issue is there
Sebastian Wiesinger
@sebastianw
I will but my test machines just died and I have to get them back first :) I'll report back when I can
Thomas Mangin
@thomas-mangin
ok - no issue
otherwise as said - works for me :-(
Sebastian Wiesinger
@sebastianw
yeah
maybe I'll just test it with the master branch
Sebastian Wiesinger
@sebastianw
@thomas-mangin changing next-hop self to the ip address did the trick. works now
Thomas Mangin
@thomas-mangin
ok - will look into that
Rens Houben
@kaosdrachen
Hello. I'm trying to write a script that will interact with ExaBGP to handle destination-based blackholing, and because I'm a masochist I'm thinking of using the API in JSON mode to do the actual communicating. However, I can't seem to find any kind of example of what format ExaBGP wants to receive commands in JSON mode in, and google's being singularly unhelpful. All I need is one example of how to send and receive, and I'll figure out the rest in relatively short order.
Thomas Mangin
@thomas-mangin
The API only works in JSON for receiving … So if you can make it work for outgoing message PLEASE provide me the patches :smile:
Rens Houben
@kaosdrachen
... Ah, so you're supposed to send in plaintext and exabgp returns JSON?
Thomas Mangin
@thomas-mangin
Yes
later on a command “decoder” will come for the command in JSON - encoder is for exa -> program
Justin
@JustinAzoff
found a really interesting bug with api+v4+v6 peerings
seems next-hop self for a nlri injected via the api is ending up with the v4 local-address instead of the v6 one
looks like the
    def nexthops (self, peers):
            return dict((peer,self.peers[peer].neighbor.local_address) for peer in peers)
is intended to account for this, but not sure why it is not working
Justin
@JustinAzoff
ah, narrowed it down, i thnk it's this:
                            if 'local-address' in scope[-1]:
                                    la = scope[-1]['local-address']
                            elif self._nexthopself:
                                    la = self._nexthopself
if the last neighbor in the group is a v6 neighbor, the v6 route is ok, but if it's a v4 peer, it uses that local-adress
so I think that code doesn't account for groups
This message was deleted
Justin
@JustinAzoff
yeah, definitely found the problem, just not the cause
neighbor <v6 neighbor> local-ip <v6 ip> local-as 65145 peer-as <as> router-id <id> family-allowed in-open : <v6 route>/128 next-hop <ipv4 local-addr!!!> community [ 64512:666 no-export ]
Justin
@JustinAzoff
will file bug later, it's a tricky thing to reproduce
Thomas Mangin
@thomas-mangin
Please can you send the output of exabgp -d when you see the issue .. It would really help.
Justin
@JustinAzoff
sure, one sec
hmm, doesn't really show anything different from the normal output
PM'd you the screenshot from wireshark that also shows the mismatch
i should be able to come up with 2 exabgp configs that can be ran over loopback that reproduce this issue
Justin
@JustinAzoff
ah, can reproduce it without even peering
just need to define two peers and inject routes
Justin
@JustinAzoff
ah.. maybe not. this may take a bit of work to come up with a reproducable test
I need to do what qa/self/simple is doing, but over both v4 and v6
Justin
@JustinAzoff
I almost narrowed down the root cause anyway
when you announce a route via dynamic api and use nex-hop self, it loops through all the peers and temporarily saves the next hops under self._nexthopself when it generates the routes, but something is doing wrong there, maybe because I use a group