-
Notifications
You must be signed in to change notification settings - Fork 81
ARPResponder
ARPResponder — Click element; generates responses to ARP queries
ARPResponder(IP/MASK [IP/MASK...] ETH, IP2/MASK2 ETH2, ...)
Batching: Batching natively supported
Ports: 1 input, 1-2 outputs
Processing: agnostic, but output 1 is push
Input should be ARP request packets, including the Ethernet header. Forwards an ARP reply if we know the answer -- that is, if one of the IPPREFIX arguments matches the requested IP address, then it outputs an ARP reply giving the corresponding ETH address, otherwise the ARP request packet is pushed out of output 1 (if it exists). Could be used for proxy ARP as well as producing replies for a host's own address.
The IP/MASK arguments are IP network addresses (IP address/netmask pairs).
The netmask can be specified in CIDR form (`18.26.7.0/24
') or dotted
decimal form (`18.26.7.0/255.255.255.0
').
ARPResponder sets the device and VLAN TCI annotations on generated ARP responses to the corresponding annotations from the queries.
AddressInfo elements can simplify the arguments to ARPResponder. In
particular, if NAME
is shorthand for both an IP network address (or IP
address) IP
and an Ethernet address ETH
, then ARPResponder(NAME)
is
equivalent to ARPResponder(IP ETH)
. If NAME
is short for both an IP
address and an IP network address, then ARPResponder will prefer the IP
address. (You can say NAME:ipnet
to use the IP network address.)
- table (read-only) — Return the ARPResponder's current table, with one IP network entry per line.
- lookup (read with parameters) — Takes an IP address as a parameter and returns the corresponding Ethernet address, if any.
- add (write-only) — Add new entries. Takes a string in "IP/MASK [IP/MASK...] ETH" form.
- remove (write-only) — Delete a single entry. Takes a string in "IP/MASK" form; deletes any entry with the same IP and MASK.
Produce ARP replies for the local machine (18.26.4.24) as well as proxy ARP for all machines on net 18.26.7 directing their packets to the local machine:
c :: Classifier(12/0806 20/0001, ...);
ar :: ARPResponder(18.26.4.24 18.26.7.0/24 00-00-C0-AE-67-EF);
c[0] -> ar;
ar -> ToDevice(eth0);
ARPQuerier, ARPFaker, AddressInfo
Generated by click-elem2man from ../elements/ethernet/arpresponder.hh:10
on 2022/11/25.