neutron/neutron/tests/functional/agent/linux
Kevin Benton bf28c724dd Add ARP spoofing protection for LinuxBridge agent
This patch adds ARP spoofing protection for the Linux Bridge
agent based on ebtables. This code was written to be minimally
invasive with the intent of back-porting to Kilo.

The protection is enabled and disabled with the same
'prevent_arp_spoofing' agent config flag added for the OVS agent
in I7c079b779245a0af6bc793564fa8a560e4226afe.

The protection works by setting up an ebtables chain for each port
and jumping all ARP traffic to that chain. The port-specific chains
have a default DROP policy and then have allow rules installed that
only allow ARP traffic with a source CIDR that matches one of the
port's fixed IPs or an allowed address pair.

Since this is a back-port to Kilo, it is disabled by default just
like the protection added for OVS.

This patch additionally pulls back the required ebtables filter and
the functional test helpers to support the tests.

Conflicts:
	neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py
	neutron/plugins/linuxbridge/common/config.py
	neutron/tests/common/machine_fixtures.py

Closes-Bug: #1274034
Change-Id: I0b0e3b1272472385dff060897ecbd25e93fd78e7
(cherry picked from commit 04197bc4bb)
2015-09-03 10:39:47 -07:00
..
bin Add a functional test for iptables_manager.binary_name 2015-03-02 16:19:50 +09:00
__init__.py Empty files should not contain copyright or license 2014-10-20 00:50:32 +00:00
base.py Define bridge/port fixtures for OVS/LinuxBridge/Veth backends 2015-04-01 15:01:06 +00:00
helpers.py OVS-agent: Ignore IPv6 addresses for ARP spoofing prevention 2015-05-28 23:03:40 -07:00
simple_daemon.py tests: monkey patch stdlib before importing other modules 2015-02-18 13:33:57 +01:00
test_async_process.py Introduce ip address monitor 2015-03-03 20:06:14 -05:00
test_helpers.py Remove root_helper arg from AsyncProcess 2015-02-18 14:21:29 +00:00
test_ip_lib.py Support Dual-Stack Gateway Ports on Neutron Routers 2015-03-27 23:37:58 -04:00
test_ip_monitor.py Change linux/ip_lib code to better handle address families 2015-03-10 00:17:24 -04:00
test_ipset.py Modify ipset functional tests to pass on older machines 2015-06-03 12:57:46 +02:00
test_iptables.py Add a functional test for iptables_manager.binary_name 2015-03-02 16:19:50 +09:00
test_iptables_firewall.py Define bridge/port fixtures for OVS/LinuxBridge/Veth backends 2015-04-01 15:01:06 +00:00
test_keepalived.py Disable keepalived process in keepalived func test 2015-06-19 16:06:07 +02:00
test_linuxbridge_arp_protect.py Add ARP spoofing protection for LinuxBridge agent 2015-09-03 10:39:47 -07:00
test_ovsdb_monitor.py Create bridges in ovsdb monitor functional tests 2015-06-01 17:09:12 +00:00
test_process_monitor.py Fix intermittent UT failures in test_utils 2015-04-07 16:40:47 -07:00
test_utils.py Introduce ip address monitor 2015-03-03 20:06:14 -05:00