I didn't modify the source code in any way. I'm running the latest 
version from CVS on an amd64 machine and an i386 machine.

I have the following configuration:

AS 6777
router-id 195.69.145.245
fib-update no
log updates
listen on 195.69.145.245
listen on 2001:7F8:1::A500:6777:4

nexthop qualify via bgp
transparent-as yes

dump all in "/tmp/all-in-dump-%H%M" 300
dump all out "/tmp/all-out-dump-%H%M" 300

group "peers-rs-v6" {
         announce IPv6 unicast
         announce IPv4 none
         softreconfig in yes
         enforce neighbor-as yes
         set nexthop no-modify
         local-address 2001:7F8:1::A500:6777:4

         neighbor 2001:7f8:1::A500:1200:1 {
                 descr "AS1200-v6-01"
                 remote-as 1200
                 announce all
                 passive
         }
}

The comment about the gracefull restart lead me to think about the 
following setting:

      announce capabilities (yes|no)
              If set to no, capability negotiation is disabled during 
the es-
              tablishment of the session.  This can be helpful to connect to
              old or broken BGP implementations.  The default is yes.

Doesn't this troggle the graceful update? While reading the announce 
part of the manual, I noticed the following:

      announce (all|none|self|default-route)
              If set to none, no UPDATE messages will be sent to the 
neighbor.
              If set to default-route, only the default route will be 
announced
              to the neighbor.  If set to all, all generated UPDATE messages
              will be sent to the neighbor.  This is usually used for 
transit
              AS's and IBGP peers.  The default value for EBGP peers is 
self,
              which limits the sent UPDATE messages to announcements of 
the lo-
              cal AS.  The default for IBGP peers is all.

I also have announce all, in my configuration, because it is a route 
server I'm working on. Could this be the setting that is responsible for 
the UPDATE?

Arnoud

On 3/7/09 6:39 PM, Henning Brauer wrote:
> wow.
> I can't see where this could happen, code seems straightforward. but
> I'll keep digging...
>
> the strange thing beeing - restart (and thus sending of the EoR marker)
> is disabled unless you changed the code. if you didn't, this is some
> genuine bug and not the EoR-marker at all. which would explain why I
> can't find an error wrt the EoR-marker :)
>
> hrm.<
>
> * Arnoud Vermeer<arnoud.verm...@ams-ix.net>  [2009-03-06 17:23]:
>    
>> Ok, so this is what the RFC4724, section 2 states:
>>
>> "For the IPv4 unicast address family, the End-of-RIB
>>      marker is an UPDATE message with the minimum length [BGP-4].  For any
>>      other address family, it is an UPDATE message that contains only the
>>      MP_UNREACH_NLRI attribute [BGP-MP] with no withdrawn routes for that
>> <AFI, SAFI>."
>>
>> The minimal length of BGPD-4 is 23 bytes.
>>
>> So were using IPv6 unicast so the UPDATE should contain a
>> MP_UNREACH_NLRI attribute. Here's the wireshark export of the UPDATE
>> message:
>>
>> No.     Time        Source                Destination           Protocol
>> Info
>>       114 42.464461   2001:7f8:1::a500:6777:4 2001:7f8:1::a503:4763:1
>> BGP      UPDATE Message
>>
>> Frame 114 (115 bytes on wire, 115 bytes captured)
>> Ethernet II, Src: Dell_36:ca:9f (00:1e:4f:36:ca:9f), Dst: Cisco_53:c4:1c
>> (00:05:00:53:c4:1c)
>> Internet Protocol Version 6
>> Transmission Control Protocol, Src Port: bgp (179), Dst Port: 53076
>> (53076), Seq: 207, Ack: 1, Len: 41
>> Border Gateway Protocol
>>       UPDATE Message
>>           Marker: 16 bytes
>>           Length: 41 bytes
>>           Type: UPDATE Message (2)
>>           Unfeasible routes length: 0 bytes
>>           Total path attribute length: 0 bytes
>>
>> 0000  00 05 00 53 c4 1c 00 1e 4f 36 ca 9f 86 dd 60 08   ...S....O6....`.
>> 0010  14 2b 00 3d 06 01 20 01 07 f8 00 01 00 00 00 00   .+.=.. .........
>> 0020  a5 00 67 77 00 04 20 01 07 f8 00 01 00 00 00 00   ..gw.. .........
>> 0030  a5 03 47 63 00 01 00 b3 cf 54 61 e2 4d 63 51 ce   ..Gc.....Ta.McQ.
>> 0040  f6 d1 50 18 43 80 7b dd 00 00 ff ff ff ff ff ff   ..P.C.{.........
>> 0050  ff ff ff ff ff ff ff ff ff ff 00 29 02 00 00 00   ...........)....
>> 0060  00 *12 80 0f 0f 00 02 01 2a 02 00 10 01 03 20 20*   ........*.....
>> 0070 *01 00 00*
>>
>> So it says the total path attribute length is 0 bytes, but I have 18
>> bits of 'unsolved matterial' at the end of the packet '*12 80 0f 0f 00
>> 02 01 2a 02 00 10 01 03 20 20 **01 00 00*'.
>>
>> So for a IPv4 unicast 'END-of RIB'-marker it is invalid because of the
>> junk at the end, and for the IPv6 unicast family the update attribute is
>> missing the MP_UNREACH_NLRI attribute.
>>
>> So the conclusion is, that this isn't a (valid) 'END-of-RIB'-marker.
>>
>> On 2/26/09 4:52 PM, Henning Brauer wrote:
>>      
>>> * Arnoud Vermeer<arnoud.verm...@ams-ix.net>   [2009-02-26 16:21]:
>>>
>>>        
>>>> Foundry advertises the route refresh capability ( RFC2918 ), and not the
>>>> ability for Graceful Restart Mechanism for BGP ( RFC4724 ). In Frame 75
>>>> the route server sends AS1200 a big update. AS1200 responds in frame 87
>>>> with a notification of a malformed attribute.
>>>>
>>>> The route server also sends an empty update to the other foundry router
>>>> (XSNEWS), wich crashes there session, because they don't advertise
>>>> Graceful restart:
>>>>
>>>>          
>>> an empty UPDATE is valid no matter what, wether graceful restart was
>>> advertised or not.

Reply via email to