AMS-IX ARPsponge Project
Go to file
2021-08-13 15:26:13 +02:00
debian arpsponge (3.24.1) unstable; urgency=medium 2021-08-13 15:26:13 +02:00
doc Remove more SVN keywords 2017-05-29 10:36:58 +02:00
init.d Refactor init script 2021-05-06 14:51:01 +02:00
lib Fix is_valid_ip() to only accept literal IPv4 addresses 2021-05-06 17:37:58 +02:00
man Remove SVN keywords from misc. files 2016-02-05 11:38:41 +01:00
sbin Fix for --passive mode not incrementing pending state 2021-08-13 15:19:02 +02: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 Add quotes around tr arguments. 2021-05-06 14:50:02 +02: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 Fix MANIFEST for new library structure. 2021-08-13 15:18:40 +02:00
README.md Try to autodiscover the OS; annotate README accordingly. 2021-04-13 18:23:42 +00:00
rules.mk Try to autodiscover the OS; annotate README accordingly. 2021-04-13 18:23:42 +00: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 if necessary (see below)
  2. Run make dpkg
  3. dpkg --install *.deb

OTHER SYSTEMS

  1. The config.mk should be able to detect your OS/distro automatically. If not, you may need to edit config.mk and set an explicit value.

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

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

  4. run make (or gmake on BSD).

  5. 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