News
- 2009-06-22: Quagga 0.99.13 Released
Quagga 0.99.13 has been released, and is available in the usual places.
This release is contains a number of small fixes, for potentially irritating issues, as well as small enhancements to vtysh and support for linking to PCRE (a much faster regex library).
A quick summary of other changes is below, see the full changelog for more details.
build: [configure] fix check for GNU awk/gawk to abort ./configure if missing [configure] add configure support for PCRE Posix library [configure] Detect support for monotonic clock zebra: [zebra] Force rib_update when connected route deleted [zebra] Only announce connected routes if link is detected [zebra] MTU is unsigned [zebra] remove incorrect debug message [zebra] Cleanup meta-queue code [zebra] netlink interface minor cleanup [zebra] Fix vyatta bug 2814: Add "show ip route summary" command. bgpd: [bgpd] Fix 'update-source' command: It doesn't accept interface names [bgpd] reference count the BGP instance [bgpd] Add support for the old Linux 2.4, TCP_MD5_AUTH RFC2385 patch [bgpd] Fixed as-path prepend/exclude ASN handling [bgp] Fix crash on SIGHUP, deref of freed workqueues [bgpd] 64-bit bugfix in community_del_val ospfd: [ospfd] Fix OSPF route refcount leak [ospfd] fix vty ospfd no ospf abr-type standard ospf6d: Convert ospf6d over to quagga_gettime() wrappers. [ospf6d] Remove 'no router' from OSPF6_NODE [ospf6d] Fix ospf6d crash if removing interface with no area [ospf6d] Fix ospf6d crash in show border routers [ospf6] Add no router ospf6 [ospf6d] Fix ospf6d crash if range defined twice ripd: [ripd] Ignore non-running interfaces in rip status [ripd] Fix metrix in call to rip_zebra_ipv4_delete vtysh: [vtysh] Add a --noerror option [vtysh] Return non-zero exit code on error. [vtysh] Make vtysh more useable for scripting [vtysh] Force line buffered mode. misc: [daemons/cleanup] Remove disabled log_mode argument support. [lib] Put symbolic backtrace on system log [lib] sockopt_tcp_signature: sin6 requires HAVE_IPV6 [smux] 64-bit fix for lib/smux.h SNMP_INTEGER() macro - 2009-05-08: Quagga 0.99.12 Released
Quagga 0.99.12 has been released, and is available in the usual places.
This release fixes an urgent bug in bgpd where it could hit an assert if it received a long AS_PATH with a 4-byte ASN.
A quick summary of other changes is below, see the full changelog for more details.
bgpd: Fix bgp ipv4/ipv6 accept handling [bgpd] AS4 bugfix by Chris Caputo[bgpd] Add 'show bgp views' command [bgpd] Allow accepted peers to progress even if realpeer is in Connect ospfd: [lib] Move type cast in Fletcher checksum [lib] Switch Fletcher checksum back to old ospfd version Justified OSPF cost function names and added support for: ospf cost <1-65535> A.B.C.D no ospf cost <1-65535> library: [lib] Fix timer precision. [lib] fix missing sockunion_normalise_mapped vtysh: [vtysh] Add commands from zebra_routemap.c to vtysh misc: [build] tools/multiple-bgpd.sh should be in 'make dist' - 2008-10-02: Quagga 0.99.11 Released
Quagga 0.99.11 has been released, and is available, along with a full changelog, in the usual places.
Thanks to everyone who helped by reporting bugs, contributing and testing fixes.
Release notes
Stable release candidate
Most regressions in 0.99 over 0.98 are now believed to be fixed. This release should be considered a release-candidate for a new stable series, and we urge any remaining users of 0.98 to test this release and report any bugs. A blocker meta-bug exists to track critical regressions.
bgpd: Preliminary UI and Linux-IPv4 support for TCP-MD5 merged
Initial support for TCP-MD5 has been merged. This adds the neighbor ... password command, and some support for setting TCP-MD5 on pure-IPv4 connections on Linux. On Linux systems with IPv6 available, passing the -l 0.0.0.0 argument to bgpd may allow TCP-MD5 support to work. It's not possible at this point to have IPv6 sessions and also use TCP-MD5 on IPv4 sessions. This will hopefully be rectified in a future release.
bgpd: Fix double-free crash in bgp_table_finish, seen with rs-client
Though diagnosed with rs-clients, this fix very likely addresses a number of crashes reported to Quagga bugzilla.
zebra: ignore dead routes in RIB update
This fix may address some issues reported with routes not being consistent between the zebra RIB and the kernel FIB, remaining after the fixes in last release.
Solaris: Sync SMF bits with OpenSolaris SFW
The Quagga packaging support for Solaris has been updated to synchronise with OpenSolaris SFW. Of particular note is that SMF schema has been updated to match the Sun PSARC approved schema, which is supported by the OpenSolaris routeadm utility. User's may need to familiarise themselves with the changed FMRIs, and may need to update any administrative scripts.
A short-form list of more notable, code related changes:
bgpd: [bgpd] Document the FSM dummy-peer race that sometimes afflicts session setup [bgpd] Fix definition of an rsclient command [bgpd] Fix double-free crash in bgp_table_finish, seen with rs-client [bgpd] Fix triggerable crash when compiled with --disable-bgp-announce [bgpd] TCP-MD5: password vty configuration and initial Linux support build: [build] --enable...user/group didn't match help text [build] Fix --enable-pie so it can actually be disabled [build] Linux netlink doesn't need IF_PROC [build] Test for GNU-style PIE support in toolchain and enable Make --enable-snmp cross compile and make libcrypto optional with --without-crypto isisd: [isisd:DLPI] Try open vanity-named DLPI dev before style 1,2 [isisd] Fix packet filtering with DLPI [ospfd/isisd] Switch to lib/ Fletcher checksum, fixing bug in isisd lib: [lib] Add fletcher checksum implementation [vty] Add support for a 'restricted mode' with anonymous vty connections [vty] Allow delete during password entry [vty] CMD_AS_RANGE accidently quoted and so not expanded in vty ospfd: [ospfd] Default route needs to be refreshed after neighbour state change [ospfd] Fix SEGV during startup introduced in recent commit [ospfd] Move passive interface check [ospfd] Restructure opsf_if_update() and ospf_network_run() Fix SEGV in ip ospf neighbor all Ignore host routes to self. Set destination for PtP links to OSPF_ALLSPFROUTERS. packaging: [solaris] Sync SMF bits with OpenSolaris SFW tools: [tools/multiple-bgpd.sh] make it easier to use IPv6 peer addresses [tools/multiple-bgpd] setup IPv6 advertisments vtysh: [vtysh] small fix to previous CMD_AS_RANGE patch, and add missing command zebra: [zebra:linux] Filter out unwanted netlink messages by PID [zebra:linux] clean up blocking setting of netlink sockets [zebra:linux] netlink buffer size tweaking only needed on receive socket [zebra:linux] netlink: no need to change privs for receive [zebra:linux] netlink: quiet harmless errors [zebra:netlink] Set proto/scope on all route update messages [zebra] Make BSD link-state deal more gracefully with GIFMEDIA ioctl error [zebra] ignore dead routes in RIB update
- 2008-06-11: Quagga 0.99.10 Released
Quagga 0.99.10 has been released, and is available, along with a full changelog, in the usual places.
Thanks to everyone who helped by reporting bugs, contributing and testing fixes.
Release notes
zebra: Races in the RIB could lead to routes not being installed to kernel FIB
bgpd: 4-Byte AS Number support
Quagga now supports 4-byte AS numbers.
bgpd: Low impact AS4 Attribute DoS (Mu Security)
This release fixes further potential DoS conditions in bgpd, again reported by Mu Security, where a bgpd could be made to crash if an UPDATE was sent with certain AS4 attributes. The possible crashes are either a NULL pointer dereference, or an assert, and so are not thougth to be exploitable.
As AS4 support is only being introduced in this release of Quagga, the impact is considered neglible. The exception is where pre-release Quagga software, with initial AS4 support, has been deployed. Such deployments are vulnerable to a DoS initiated by any remote participant in the BGP network.
NB: The CVS commit message mistakenly says this affects only configured peers. The above advice takes precedence.
bgpd: Sundry regression fixes
Sessions would be incorrectly reset if a partial AS-Pathlimit attribute was received. All users of 0.99.9 bgpd, in which AS-Pathlimit support was introduced, that receive public routes will need to upgrade to 0.99.10 to avoid this issue.
Advertisement of Multi-Protocol prefixes (i.e. non-IPv4) had been broken in the 0.99.9 release.
BSD: Interface link-state now supported
Solaris: Support added for Solaris 10U5 IP instance privileges
A short-form list of code related changes:
zebra: [zebra] note the meta-queue in NEWS [zebra] initial edition of meta-queue for RIB updates processing (#431) [zebra] fix bug#326 by rib_lookup_and_pushup() [zebra/linux] Use BPF to filter out responses, to try avoid netlink overruns [zebra] fixed bug #418 (changing address on an existing interface doesn't cause existing static routes to be revalidated) [zebra] fix the bug reported by Milan Kocian (IPv6 route handling was broken by the RIB debug changeset). [zebra] rib_process() speedup for multi-nexthop route nodes [zebra] Minor bugfix: IPv6 prefixes were logged incorrectly in RIB debugging calls. Fixed. [zebra] sayonara old_pid! [zebra] fixed bug #402: now the second zebra process doesn't destroy routes of the first one before dying [zebra] we are not going to receive routing messages originated by old_pid, because rib_sweep_route() is called after damon() now. This will allow to drop old_pid completely soon. [zebra] Switch from LOOKUP() to lookup() for rtm_type (see bug #401 for details). [zebra] * rt_socket.c: (kernel_rtm_ipv4) prefix_buf could be passed to zlog_err() uninitialized with debug disabled. Fixed. lib: [lib] trivial: add const qualifier to stream_put/write [lib] Fix the struct message LOOKUP function to be more robust [lib/linklist] Enforce "nodes must have data" invariant more rigorously [lib] add mising UL qualifier to numerical constant [lib] pidfiles are now always created with 0644 perms instead if LOGFILE_MASK (0600) [privs/Solaris] Quagga should work in zones with IP instances [snmp-smux] Fix problems if 'smux peer ...' is issued multiple times bgpd: [bgpd] minor changes to bgp_mp_reach_parse [bgpd] bug #419: partial aspath-limit incorrectly causes session reset [bgpd] fix the set statement name [bgpd] Added new route-map set statement: "as-path ignore" [bgpd] remove unnecessary 0 entries from struct message's [bgpd] fix crash on startup if compiled IPv4-only [bgpd] Fix number of DoS security issues, restricted to configured peers. [bgpd] fixed no_set_aspath_prepend() to correctly match existing "set" statement [bgpd] Fix typo in previous commit to bgp_main.c [bgpd] small fix for crash if 'listenon' argument is not given [bgpd] Add 'listenon' argument [bgpd] Merge AS4 support [bgpd] Fix typo, which prevented advertisement of MP (non-IPv4) prefixes ospfd: [ospfd] fix missing arg to zlog_warn() [ospfd] fix minor regression in OSPF sending buffer adjustment logic ripd: [ripd] Fix mistaken empty string test [ripd] remove unnecessary 0 entries from struct message's isisd: [isisd] Bug #437: fix ssert caused by bad list management ospf6d: [ospf6d] Fix removal of defunct ASBR routes general: [c++] remove/rename some names in headers that clash with C++ reserved words [daemons] Sanity check port number arguments before use [solaris] add missing makefile.am dependency [link-detect] Improve BSD support. [link-detect] Try to get BSD link-detect to work properly. [link-detect] Static interface routes should behave properly with link-detect. [tests] BGP MP_(UN)REACH_NLRI unit tests [tests:bgp] Further tests for 0 sized as_path segments [tools] multiple-bgpd.sh: make paths more configurable