Releases: batfish/batfish
Batfish 2019-03-12
Release notes
Noteworthy new features and improvements in this release include:
- (#3322, #3339, #3340) Added support for F5 devices! (see here for instructions on packaging F5 configs)
- (#3365) Added
bfq.lpmRoutes
which identifies the longest prefix match for an IP address - (#3341) BGP import/export policy now supports prefix lists for Cisco IOS
Bug fixes:
- (#3353) Fix an issue with BGP default-originate propagation for Cisco IOS
- (#3343) Fix an issue with Juniper transformations for interfaces without an IP
Installation
To upgrade your local Docker image, run docker pull batfish/allinone
then follow the standard instructions to get started.
batfish 0.36.1
Release notes
This is a bugfix release that includes only changes to the RPM and DEB packages.
Bug fixes
- (#1051) Fix a regression in the .deb and .rpm release packages.
Breaking changes
Installation
Using APT:
(Ubuntu 16.04 ONLY)
echo 'deb https://apt.batfish.org/batfish/debian xenial main' | sudo tee /etc/apt/sources.list.d/batfish.list
(Ubuntu 14.04 ONLY)
echo 'deb https://apt.batfish.org/batfish/debian trusty main' | sudo tee /etc/apt/sources.list.d/batfish.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5CC0F927C4237ED5
sudo apt-get update
sudo apt-get install batfish-0.36
batfish 0.36.0
As the pace of development on Batfish picks up, we're increasing the release cadence.
Release notes
Noteworthy new features and improvements in this release include:
- (#1023) Added
IpsecVpnStatusQuestion
, which provides details on whether VPNs are correctly configured. - (#1005) ARP support for reachability analysis.
- (#1030) The
Neighbors
question has been updated to remove full descriptions of the node endpoints when running in verbose mode, dramatically reducing answer size. - (#1035, #1036) Improved support for Juniper metrics and Cisco bandwidth.
Bug fixes
- (#1025) Prevent passive interfaces from showing up as OSPF neighbors.
- (#1028) The Batfish worker will no longer accept kill task requests unless running in watchdog mode.
- (#1042) Batfish can now identify Metamako configuration files and will no longer parse them as Cisco configurations.
Breaking changes
- (#1027) Several deprecated questions have been deleted in favor of their newer replacements:
BgpSessionCheck
(replaced byBgpSessionStatus
),IpsecVpnCheck
/PairwiseVpn
(IpsecVpnStatus
), andOspfLoopbacks
(OspfStatus
). - (#1030) The
Neighbors
question has been updated to remove full descriptions of the node endpoints when running in verbose mode, dramatically reducing answer size. - (#1042) Batfish can now identify Metamako configuration files and will no longer parse them as Cisco configurations.
Installation
Using APT:
(Ubuntu 16.04 ONLY)
echo 'deb https://apt.batfish.org/batfish/debian xenial main' | sudo tee /etc/apt/sources.list.d/batfish.list
(Ubuntu 14.04 ONLY)
echo 'deb https://apt.batfish.org/batfish/debian trusty main' | sudo tee /etc/apt/sources.list.d/batfish.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5CC0F927C4237ED5
sudo apt-get update
sudo apt-get install batfish-0.36
Batfish 0.35.0
Release notes
Noteworthy new features and improvements in this release include:
- Added multiple new questions:
- (#865, #885, #866) Added the ability to list the currently executing and queued tasks in the coordinator, overall or by task type. Added the ability to kill ongoing tasks by task ID.
- (many PRs) The backend implementation for reachability analysis has been completely rewritten to be more performant, easier to test and maintain, and to support packet transformations such as NAT.
- (#879) Enabled parallelism in Z3 on OS X using custom Z3 binaries with OpenMP enabled: https://github.com/batfish/z3/
- (#855) Added the ability to set a timeout for queries that invoke Z3 using the
-z3timeout
Batfish argument. - (#895, #945, #949) Reduce memory consumption and output size in various places.
- (#872, #880) Improved handling of Amazon services including RDS and ElasticSearch.
- (#862) Improved Batfish handling of BGP route reflection.
- (#886, #897, #899) Add manually-overridden OSPF costs to the data model and parser support for Cisco and Juniper.
- (#850, thanks @agember!) Various support for parsing Cisco commands.
Bug fixes
- Several new constructs are parsed.
- Fixed some corner cases in processing BGP route reflection.
- (#1022) Cygwin builds working again
Breaking changes
transitNodes
andnotTransitNodes
fields in reachability questions are ignored for now. This will be fixed in a subsequent release.- Full device configuration information is now missing from
verbose
answers returned byNeighborsQuestion
, as it led to quadratic expansion in the serialized and in-memory answers. - The JSON returned by (#962)
UniqueIpAssignmentsQuestion
and (#963)BgpAdvertisementsQuestion
have been restructured to be more usable.
Installation
Using APT:
(Ubuntu 16.04 ONLY)
echo 'deb https://apt.batfish.org/batfish/debian xenial main' | sudo tee /etc/apt/sources.list.d/batfish.list
(Ubuntu 14.04 ONLY)
echo 'deb https://apt.batfish.org/batfish/debian trusty main' | sudo tee /etc/apt/sources.list.d/batfish.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5CC0F927C4237ED5
sudo apt-get update
sudo apt-get install batfish-0.35
The .rpm and .deb files include Z3 binaries.
The license for Z3 (MIT) differs from that of Batfish (Apache 2.0).
See https://github.com/Z3Prover/z3/blob/z3-4.6.0/LICENSE.txt
batfish 0.34.0
Release notes
Noteworthy new features and improvements in this release include:
- (#718, #752) Improvements to VPN link identification and detection and NAT.
- (#720, #726) Improved parsing for Amazon Web Services configurations.
- (#805) Traceroute now supports providing the destination node hostname in addition to IP address for nodes in the network. Other questions can take advantage of this support using
NodesSpecifier
. - (#466, thanks @dspicuzzbbn!) Additional support for Cisco ASA configuration language.
- (#821) Record all names used for the same interface in the configuration, rather than only the canonical name.
- (#729) Significantly reduced memory consumption during parsing.
- (#780) Significantly reduced memory consumption of in-memory configurations.
- (#840) Significantly reduced memory consumption of the data plane.
Bug fixes
- (#708) Fix an issue where static routes would be left out of the FIB in rare cases.
- (#738) Reachability question now honors
ingressNodeRegex
in multipath and reduced modes. - (#816, #853) Upgraded to z3 version 4.6.0 with an additional bugfix that addresses #485.
Breaking changes
- The Traceroute
dstIp
parameter has been renamed todst
as it now supports more than just IP addresses.
Installation
Using APT:
(Ubuntu 16.04 ONLY)
echo 'deb https://apt.batfish.org/batfish/debian xenial main' | sudo tee /etc/apt/sources.list.d/batfish.list
(Ubuntu 14.04 ONLY)
echo 'deb https://apt.batfish.org/batfish/debian trusty main' | sudo tee /etc/apt/sources.list.d/batfish.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5CC0F927C4237ED5
sudo apt-get update
sudo apt-get install batfish-0.34
The .rpm and .deb files include Z3 binaries.
The license for Z3 (MIT) differs from that of Batfish (Apache 2.0).
See https://github.com/Z3Prover/z3/blob/z3-4.6.0/LICENSE.txt
batfish 0.33.3
Release notes
Refer to the release notes for version 0.33.2.
This incremental release includes the following improvements and fixes:
- (#748) Fixed a scalability issue when serializing long routing policies with many
continue
statements.
Installation
Using APT:
(Ubuntu 16.04 ONLY)
echo 'deb https://apt.batfish.org/batfish/debian xenial main' | sudo tee /etc/apt/sources.list.d/batfish.list
(Ubuntu 14.04 ONLY)
echo 'deb https://apt.batfish.org/batfish/debian trusty main' | sudo tee /etc/apt/sources.list.d/batfish.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5CC0F927C4237ED5
sudo apt-get update
sudo apt-get install batfish-0.33
The .rpm and .deb files include Z3 binaries.
The license for Z3 (MIT) differs from that of Batfish (Apache 2.0).
See https://github.com/Z3Prover/z3/blob/z3-4.5.0/LICENSE.txt
batfish 0.33.2
Release notes
Refer to the release notes for version 0.33.0 and 0.33.1.
This incremental release includes the following improvements and fixes:
- (#739) Fixed a scalability issue with long routing policies.
- (#729) Improve memory usage during parsing and serialization.
Installation
Using APT:
(Ubuntu 16.04 ONLY)
echo 'deb https://apt.batfish.org/batfish/debian xenial main' | sudo tee /etc/apt/sources.list.d/batfish.list
(Ubuntu 14.04 ONLY)
echo 'deb https://apt.batfish.org/batfish/debian trusty main' | sudo tee /etc/apt/sources.list.d/batfish.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5CC0F927C4237ED5
sudo apt-get update
sudo apt-get install batfish-0.33
The .rpm and .deb files include Z3 binaries.
The license for Z3 (MIT) differs from that of Batfish (Apache 2.0).
See https://github.com/Z3Prover/z3/blob/z3-4.5.0/LICENSE.txt
batfish 0.33.1
Release notes
Refer to the release notes for version 0.33.0.
This incremental release includes the following bug fixes:
- (#701) Fixed spurious warnings that routing policies were recursively defined.
- Fixed a performance regression introduced in
0.33.0
when parsing with recovery was enabled.
Installation
Using APT:
(Ubuntu 16.04 ONLY)
echo 'deb https://apt.batfish.org/batfish/debian xenial main' | sudo tee /etc/apt/sources.list.d/batfish.list
(Ubuntu 14.04 ONLY)
echo 'deb https://apt.batfish.org/batfish/debian trusty main' | sudo tee /etc/apt/sources.list.d/batfish.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5CC0F927C4237ED5
sudo apt-get update
sudo apt-get install batfish-0.33
The .rpm and .deb files include Z3 binaries.
The license for Z3 (MIT) differs from that of Batfish (Apache 2.0).
See https://github.com/Z3Prover/z3/blob/z3-4.5.0/LICENSE.txt
batfish 0.33.0
Release notes
Noteworthy new features and improvements in this release include:
- (#624) Implemented parser recovery for configuration languages (including Cisco, Juniper, IPtables, etc.) that use newlines as command separators. When it encounters unhandled statements, the parser will now warn, skip the current line, and recover (by resuming at the next command).
- Unhandled commands may affect the results; please file issues for unhandled commands.
- Parser recovery can be disabled using the
-disableunrecognized
Batfish flag.
- (#648) Added support for tracking the different statements (e.g., route-maps, route-policies, policy-statements) used to inform import and export routing policies.
- (#603) Switch to
AutoService
for plugin registration. Now all plugins from the classpath are automatically registered, and configuration for plugin or question plugin directories has been removed. - (#684) Improved support for Cisco IPSec tunnels.
- (#597) Add support for BGP AS-path comparison modes.
- (#685) Added support for OSPF max-metric for router-lsa, stub networks, external networks, and summary networks.
- (#617) Add support for RFC 1583 compatibility mode when computing OSPF summary metrics.
- (#636) Add support for Cisco ASA network command that uses mask instead of wildcard.
- (#642, #682, others) Improved and updated support for Amazon Web Services configurations.
- (#650, others) Added an example showing how Batfish can proactively detect BGP route leaks. For more information, read this Intentionet blog post.
- (#598, #665) Improved data plane performance by caching intermediate route computations.
- (#602) Reduced task completion latency in the Batfish worker.
- (#657) Improved the data plane plugin support for recovering from network oscillations.
Bug fixes
- (#685) Fixed omitted computation for OSPF inter-area routes.
Breaking changes
- (#621) Reduced build time by eliminating bundled jars other than
allinone-bundle
. Users of the oldclient-bundle
,coordinator-bundle
, orbatfish-bundle
jars can useallinone-bundle
instead by supplying the class name for the appropriate driver program tojava -cp allinone-bundle.jar <driverprogram.class>
. - (#669) Updated the Batfish APIs to serialized timestamps using the Internet standard RFC 3339 format instead of integral milliseconds since Unix epoch.
- (#690) The internal on-disk structure in which questions and their answers are stored has changed; questions are now stored within containers rather than per-testrig so that the same question can be more easily asked on multiple different snapshots of the same network. Users updating Batfish may need to re-ask questions on old snapshots.
- (#603) (see above) The
-DbatfishQuestionPluginDir
and-plugindirs
arguments are now invalid.
Installation
Using APT:
(Ubuntu 16.04 ONLY)
echo 'deb https://apt.batfish.org/batfish/debian xenial main' | sudo tee /etc/apt/sources.list.d/batfish.list
(Ubuntu 14.04 ONLY)
echo 'deb https://apt.batfish.org/batfish/debian trusty main' | sudo tee /etc/apt/sources.list.d/batfish.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5CC0F927C4237ED5
sudo apt-get update
sudo apt-get install batfish-0.33
The .rpm and .deb files include Z3 binaries.
The license for Z3 (MIT) differs from that of Batfish (Apache 2.0).
See https://github.com/Z3Prover/z3/blob/z3-4.5.0/LICENSE.txt
batfish 0.32.0
Release notes
Noteworthy new features and improvements in this release include:
- (#581,#585) Data plane oscillation detection and recovery
- (#497) Parse Aruba configurations
- (#531,#549) Parse IOS routing tables
- (#515) Implement remove-private-as
- (#488) (credit to @dspicuzzbbn) Improved Iptables-to-ACL translation
- (#450) Data model support for BGP authentication configuration
- (#539) Provide parsing report for BGP tables
- (#472,#481,#538,#551,#563,#567,#568,#569,#574,#575,#576,#577,#579,#580,#586) Improved Cisco-like configuration parsing
Bug fixes
- (#585,#586,#589,#590) Fix BGP tie-breaking bugs
- (#528) Fix iBGP neighbors allowing advertisements containing own AS in path
- (#541) Fix bug where eBGP neighbor would fail to send advertisement to neighbor with same router-id as neighbor from which original advertisement was received (should only be suppressed for iBGP)
- (#511) Fix
BgpSessionCheck
ignoring mismatched AS numbers - (#524) Fix stale cache when deleting and recreating testrig with same name
- (#543,#571) (credit to @buehlert) Fix Juniper route-filter lines not allowing prefix-length > 32 (for IPv6)
- (#479) Fix broken text serialization
Breaking changes
- (#513) Changes to
FlowHistory
JSON serialization - traces now organized by environment name inside ofpaths
element. Affects traceroute and reachability type questions.
Installation
Using APT:
(Ubuntu 16.04 ONLY)
echo 'deb https://apt.batfish.org/batfish/debian xenial main' | sudo tee /etc/apt/sources.list.d/batfish.list
(Ubuntu 14.04 ONLY)
echo 'deb https://apt.batfish.org/batfish/debian trusty main' | sudo tee /etc/apt/sources.list.d/batfish.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5CC0F927C4237ED5
sudo apt-get update
sudo apt-get install batfish-0.32
The .rpm and .deb files include Z3 binaries.
The license for Z3 (MIT) differs from that of Batfish (Apache 2.0).
See https://github.com/Z3Prover/z3/blob/z3-4.5.0/LICENSE.txt