AMS-IX ARPsponge Project
Go to file
2021-04-13 18:23:13 +00:00
debian Fix dependencies. 2021-04-12 17:44:37 +02:00
doc Remove more SVN keywords 2017-05-29 10:36:58 +02:00
init.d Remove SOCKET_PERMISSIONS again, add STATIC_STATE_FILE 2021-03-26 18:29:00 +01:00
lib Use tput ce instead of tput el. 2021-04-13 12:31:08 +00:00
man Remove SVN keywords from misc. files 2016-02-05 11:38:41 +01:00
sbin asctl fixes 2021-04-13 11:10:24 +00:00
t Remove SVN keywords from misc. files 2016-02-05 11:38:41 +01:00
tools Remove SVN keywords from misc. files 2016-02-05 11:38:41 +01:00
.gitignore Add *.debhelper patterns to .gitignore 2020-07-15 14:30:19 +02:00
Changelog Switch around changelog/Changelog symlink. 2015-03-06 18:33:38 +01:00
config.mk Document Makefile configuration better 2018-11-28 23:08:30 +00:00
Copying Update Copying to remove SVN keyword. 2019-08-13 14:09:28 +02:00
defaults.sample.src Use @DFL_SOCK_PERMS@ in defaults sample. 2021-04-13 18:23:13 +00:00
Makefile Remove SVN keywords from misc. files 2016-02-05 11:38:41 +01:00
MANIFEST Add "debian/arpsponge.links" 2021-01-07 16:17:11 +01:00
README.md Add dependency on p5-YAML-LibYAML for FreeBSD. 2021-04-13 11:00:13 +00:00
rules.mk Add ETC_DEFAULT config variable. 2018-11-05 13:01:23 +01:00
TODO Intermediate check-in while redoing the control socket code. 2011-03-31 16:16:10 +00:00

About ARPSPONGE (a.k.a. "Bob")

The arpsponge is a tool that sweeps up stray ARP queries from a LAN. It listens on an ethernet interface and if the ARP rate for a particular IP address goes over the threshold, it starts faking responses.

This is especially useful on large peering LANs where a router crash can result in large ARP (broadcast) storms.

The arpsponge package provides a daemon, a CLI control utility, and an init script (see the arpsponge and asctl man pages).

This is released as free software, see the "Copying" file that came with this source).

Requirements

  • GNU make
  • Perl (>= 5.10)
  • Perl modules:
    • Carp
    • Data::Dumper
    • File::Path
    • Getopt::Long
    • IO::File
    • IO::Select
    • IO::Socket
    • IO::String
    • IPC::Run
    • NetAddr::IP
    • Net::ARP
    • Net::IPv4Addr
    • NetPacket (::ARP, ::Ethernet, ::IP)
    • Net::Pcap
    • Pod::Usage
    • POSIX
    • Readonly
    • Sys::Syslog
    • Term::ReadKey
    • Term::ReadLine
    • Time::HiRes

Depending on your O/S distribution and version of Perl, some or all of these may already be included in a base install of Perl.

Installation

DEBIAN

  1. Edit config.mk (see below)
  2. Run make dpkg
  3. dpkg --install *.deb

OTHER SYSTEMS

  1. Look at the start of config.mk and pick the correct value for DISTRO; this will pick sane defaults for the variables below.

  2. Override (or delete) DFL_SOCK_GROUP in the OVERRIDES section.

  3. Make sure the following variables are set correctly, either by the DISTRO selection or by overriding them. * PERL * IFCONFIG * SPONGE_VAR

  4. If you want, you can override any of the variables below: * DIRPREFIX * BINPREFIX * DOCPREFIX * BINDIR * LIBROOT * INSTLIB * MANDIR * DOCDIR * SECTION * FILESECTION

  5. run make (or gmake on BSD).

  6. run make install (gmake install on BSD).

Documentation

See the arpsponge man page, or perldoc arpsponge.

FreeBSD Notes

Installing dependencies:

pkg install gmake \
    perl5 \
    p5-Net-Pcap p5-Readonly p5-NetAddr-IP p5-IO-String \
    p5-Net-Arp p5-Term-ReadKey p5-Term-ReadLine-Gnu p5-IPC-Run \
    p5-YAML p5-YAML-LibYAML p5-JSON