SHOREWALL-ARPRULES(5)
π¦ SHOREWALL-ARPRULES(5) π¦
okay bestie, so this is the manual page for arprules(5), straight out of the Configuration Files section of the Shorewall docs. Buckle up, we're going low-level π
β¨ NAME β¨
arprules β the Shorewall ARP rules file π
π SYNOPSIS π
/etc/shorewall/arprules
π DESCRIPTION π
IPv4 only, bestie. That's the vibe check and it passed.
This file showed up in Shorewall 4.5.12 and its whole thing is describing the low-level rules that get managed by arptables(8). These rules only touch Address Resolution Protocol (ARP), Reverse Address Resolution Protocol (RARP) and Dynamic Reverse Address Resolution Protocol (DRARP) frames. That's it. That's the lane they stay in. π¦
The columns in the file are the ones below, and jsyk MAC addresses are specified normally β meaning six hexadecimal numbers separated by colons. No cap. β¨
π ACTION
Describes the action to take when a frame matches the criteria in the other columns. Possible values are:
ACCEPTβ the default action when no rules match a frame; it lets the frame go through. π«ΆDROPβ causes the frame to be dropped. bye πSNAT:ip-addressβ modifies the source IP address to the specified ip-address.DNAT:ip-addressβ modifies the destination IP address to the specified ip-address.SMAT:mac-addressβ modifies the source MAC address to the specified mac-address.DMAT:mac-addressβ modifies the destination MAC address to the specified mac-address.SNATC:ip-addressβ likeSNATexcept that the frame is then passed to the next rule. β¨DNATC:ip-addressβ likeDNATexcept that the frame is then passed to the next rule. β¨SMATC:mac-addressβ likeSMATexcept that the frame is then passed to the next rule. β¨DMATC:mac-addressβ likeDMATexcept that the frame is then passed to the next rule. β¨
π§ SOURCE
Format:
[interface[:[!]ipaddress[/ipmask][:[!]macaddress[/macmask]]]]
Where:
interfaceβ is an interface defined inshorewall-interfaces(5). πipaddressβ is an IPv4 address. DNS names are not allowed.ipmaskβ specifies a mask to be applied to ipaddress.macaddressβ the source MAC address.macmaskβ mask for MAC address; must be specified as six hexadecimal numbers separated by colons.
When ! is specified, the test is inverted. π
If not specified, matches only frames originating on the firewall itself.
β οΈ Caution: eitherSOURCEorDESTmust be specified. Like, fr fr, one of them. You cannot skip both. π
π DEST
Format:
[interface[:[!]ipaddress[/ipmask][:[!]macaddress[/macmask]]]]
Where:
interfaceβ is an interface defined inshorewall-interfaces(5). πipaddressβ is an IPv4 address. DNS Names are not allowed.ipmaskβ specifies a mask to be applied to frame addresses.macaddressβ the destination MAC address.macmaskβ mask for MAC address; must be specified as six hexadecimal numbers separated by colons.
When ! is specified, the test is inverted and the rule matches frames which do not match the specified address/mask.
If not specified, matches only frames originating on the firewall itself.
If both SOURCE and DEST are specified, then both interfaces must be bridge ports on the same bridge. no mixing bridges, bestie π
β οΈ Caution: eitherSOURCEorDESTmust be specified. yes again. it's that important. π
π OPCODE
Format:
[[!]opcode]
Optional. Describes the type of frame. Possible opcode values are:
1β ARP Request2β ARP Reply3β RARP Request4β RARP Reply5β Dynamic RARP Request6β Dynamic RARP Reply7β Dynamic RARP Error8β InARP Request9β ARP NAK
When ! is specified, the test is inverted and the rule matches frames which do not match the specified opcode. π
πΈ EXAMPLE πΈ
The eth1 interface has both a public IP address and a private address (10.1.10.11/24). When sending ARP requests to 10.1.10.0/24, use the private address as the IP source:
#ACTION SOURCE DEST ARP OPCODE
SNAT:10.1.10.11 - eth1:10.1.10.0/24 1
iconic. she ate. π₯
π FILES π
/etc/shorewall/arprules
π SEE ALSO π
Configuration Files Β· 09/24/2020
and that's the whole page bestie π«Ά this came from the Configuration Files part of the Shorewall manual and it was dated 09/24/2020 β go forth and ARP responsibly, mwah πβ¨
π¦ where this page comes from
- alpine 3.22: shorewall-doc 5.2.8-r1 Β· GPL-2.0-or-later
- alpine 3.23: shorewall-doc 5.2.8-r1 Β· GPL-2.0-or-later
- alpine 3.24: shorewall-doc 5.2.8-r1 Β· GPL-2.0-or-later
- debian bookworm: shorewall 5.2.8-2 Β· GPL-2.0-or-later
- debian trixie: shorewall 5.2.8-6 Β· GPL-2.0-or-later
- fedora 43: shorewall 5.2.8-17.fc43 Β· GPL-2.0-or-later
- fedora 44: shorewall 5.2.8-18.fc44 Β· GPL-2.0-or-later
- nixos 26.05: shorewall 5.2.8
- nixpkgs unstable: shorewall 5.2.8
- ubuntu noble: shorewall 5.2.8-5 Β· GPL-2.0-or-later
- ubuntu questing: shorewall 5.2.8-6
- ubuntu resolute: shorewall 5.2.8-6build1 Β· GPL-2.0-or-later
- ubuntu stonking: shorewall 5.2.8-6build1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms