/arptools

Primary LanguageCBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

ARPTOOLS

Distribution Build Status (master)
Overall Build Build Status
Centos 8 Build Status
Debian 10 amd64 Build Status
Debian 10 armhf Build Status

Installation

RedHat

yum install libpcap-devel libnet-devel libconfig-devel mariadb-connector-c-devel systemd-devel cmake
mkdir build && cd build
cmake ..
make
make install

Debian

apt install libmariadb-dev-compat libpcap-dev libnet-dev libconfig-dev libsystemd-dev cmake
mkdir build && cd build
cmake ..
make
make install

Database Schema

MySQL Database Schema

Configuration

Configuration file

database = "arptools";
username = "arptools";
password = "password";
hostname = "localhost";
location = "eddie";

interfaces = (
  {
    interface = "enp6s0";
    label = "subnet1";
    native_vlan = 100;
    networks = (
      {
        ipaddress = "192.168.1.1";
        subnet = "255.255.255.0";
        vlan = 101;
        src_ipaddress = "192.168.2.254";
      }
    )
  }, {
    interface = "enp4s0";
    label = "subnet2";
    networks = (
      {
        ipaddress = "10.10.0.0";
        subnet = "255.255.255.0";
        vlan = 0;
        src_ipaddress = "10.10.0.254";
      }
    )
  }
);

Global config options

Option Type Description
hostname string Hostname of MySQL Server
username string Username for connecting to MySQL server
password string Password for connecting to MySQL server
database string Database name
location string Location name to store in database
mysql_loop_delay int Time in seconds to sleep between MySQL Database transactions
pcap_timeout microseconds Packet buffer timeout in miliseconds (See PCAP)
filter_self bool If true, do not record MAC address of the interface used to monitor traffic
buffer_size int Size of internal ringbuffer for packet store

Interfaces Config Options

Option Type Description
device string Device name for the interface to listen on
label string Label for this interface
arp_requests int If true, send arp requests to the ipaddress range
arp_loop_delay int Time in seconds to sleep between sending ARP requests
arp_delay int Time in microseconds between ARP requestes from the same subnet
ignore_tagged bool If true, ignore tagged packets on this interface
native_vlan int The native VLAN tag for this interface to use when no tag is present
ignore_vlan array An array of vlan tags to ignore on this interface

Networks Config Options

ipaddress string IP Address for interface to use for sending ARP requests
ipaddress string IP Address (network) to use on this interface for sending ARP requests
subnet string Subnet mask for ip addresses to use for sending ARP requests
vlan string VLAN ID to use on this network
vlan_pri string VLAN Priority
vlan_dei string VLAN DEI
ipaddress_source string IP Address to use as the source when sending ARP requests