Package: quagga
Version: 0.99.5-5etch3horde1
Severity: normal

I reported this bug upstream a few months ago and haven't been able to get
any response, though this seems broken in a fairly obvious manner(?).

It's probably too late to have any fix make the lenny freeze, but I'm hoping
that giving this bug more exposure might help bring it to the attention of
the right people. Christian, I'm sure you know the quagga source better than
I do, and maybe you know someone who hacks on Quagga that might be
interested in looking at this?


http://marc.info/?l=quagga-users&m=120576712714935&w=2
http://bugzilla.quagga.net/show_bug.cgi?id=445

I'm running IBGP over a GRE tunnel:

[EMAIL PROTECTED]:pts/5 ~> ifconfig gre1
gre1      Link encap:UNSPEC  HWaddr 
AC-10-41-02-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:172.17.65.2  P-t-P:172.17.65.1  Mask:255.255.255.255

zebra gets the endpoints right:

boost# sh int gre1
Interface gre1 is up, line protocol detection is disabled
  index 18 metric 1 mtu 1476 
  flags: <UP,POINTOPOINT,RUNNING,NOARP>
  HWaddr: ac:10:41:02
  inet 172.17.65.2/32 pointopoint 172.17.65.1
    374 input packets (0 multicast), 30117 bytes, 0 dropped
    0 input errors, 0 length, 0 overrun, 0 CRC, 0 frame
    0 fifo, 0 missed
    544 output packets, 47274 bytes, 0 dropped
    3 output errors, 0 aborted, 3 carrier, 0 fifo, 0 heartbeat
    0 window, 0 collisions

as does bgpd, but it detects the wrong end of the tunnel as the nexthop
(i.e., it sees itself as the only legitimate nexthop instead of the opposite
end of the tunnel):

boost# sh ip bgp nei
[...]
Local host: 172.17.65.2, Local port: 36205
Foreign host: 172.17.65.1, Foreign port: 179
Nexthop: 172.17.65.2

Since I have 'set nexthop self' in the peer (OpenBSD bgpd(8)), quagga bgpd
rejects all of its announcements:

172.17.65.1 rcvd UPDATE about 192.168.197.16/28 -- DENIED due to: martian
next-hop;

If I remove the bgp_nexthop_self() check:

--- quagga-0.99.5.orig/bgpd/bgp_route.c
+++ quagga-0.99.5/bgpd/bgp_route.c
@@ -1934,8 +1934,7 @@
 
       /* Next hop must not be 0.0.0.0 nor Class E address.  Next hop
         must not be my own address.  */
-      if (bgp_nexthop_self (afi, &new_attr)
-         || new_attr.nexthop.s_addr == 0
+      if (new_attr.nexthop.s_addr == 0
          || ntohl (new_attr.nexthop.s_addr) >= 0xe0000000)
        {
          reason = "martian next-hop;";

the announcements are accepted and have the correct next hop:

[EMAIL PROTECTED]:pts/5 ~> netstat -rn
[...]
192.168.197.16  172.17.65.1     255.255.255.240 UG        0 0          0
gre1


Shouldn't BGP neighbor output be showing the opposite end of the GRE tunnel
as the next hop, not itself?

-- System Information:
Debian Release: 4.0
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: alpha
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-6-alpha-smp
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)

Versions of packages quagga depends on:
ii  adduser                3.102             Add and remove users and groups
ii  debconf [debconf-2.0]  1.5.11etch1       Debian configuration management sy
ii  iproute                20061002-3        Professional tools to control the 
ii  libc6.1                2.3.6.ds1-13etch5 GNU C Library: Shared libraries
ii  libcap1                1:1.10-14         support for getting/setting POSIX.
ii  libpam0g               0.79-5            Pluggable Authentication Modules l
ii  libreadline5           5.2-2             GNU readline and history libraries
ii  logrotate              3.7.1-3           Log rotation utility

quagga recommends no packages.

-- debconf information:
* quagga/really_stop: true



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to