IFUPDOWN-ADDONS-INTERFACES(5)

πŸ“¦
version 3.0.0 Β· 2 versions
, in debian bookworm

✨ NAME ✨

ifupdown-addons-interfaces β€” ifupdown2 addon modules interface configuration. That's the whole vibe, bestie. πŸ’… This is the manual page for ifupdown-addons-interfaces(5), and it's about to spill all the tea on how addon modules customize your network interfaces. πŸ«–


πŸ’– DESCRIPTION πŸ’–

Okay so ifupdown2 addon modules add incremental functionality to the core ifupdown2 tool. They're like little upgrades that make the main character even more powerful. ✨

All installed addon modules are executed on every interface listed in the interfaces file. Addon modules are installed under /usr/share/ifupdownaddons. To see the list of active addon modules, see ifaddon(8). πŸ‘‘

Addon modules add new attributes to the interfaces(5) file. Below is a list of attribute options provided by each module. These can be listed under each iface section in the interfaces(5) file. So if you're writing your interfaces file, these are the extra keys you can drop in. πŸŽ€


🌸 EXAMPLES 🌸

Listed below are addon modules and their supported attributes. The attributes, if applicable, go under the iface section in the interfaces(5) file. Let's go module by module, bestie. πŸ¦‹

ethtool: ethtool configuration module for interfaces

This module handles ethtool configuration for interfaces. πŸ”§

  • help: set link duplex
  • required: False
  • default: half
  • validvals: half, full
  • example:
link-duplex full
  • help: set autonegotiation
  • required: False
  • default: no
  • validvals: yes, no
  • example:
link-autoneg yes
  • help: set link speed
  • required: False
  • example:
link-speed 1000

bridge: Bridge configuration module. Supports both vlan aware and non vlan aware bridges. For the vlan aware bridge, the port specific attributes must be specified under the port. And for vlan unaware bridge port specific attributes must be specified under the bridge.

This one is the bridge module. It supports both vlan aware and non vlan aware bridges. For the vlan aware bridge, the port specific attributes must be specified under the port. And for vlan unaware bridge, port specific attributes must be specified under the bridge. πŸŒ‰

bridge-vlan-aware

  • help: vlan aware bridge. Setting this attribute to yes enables vlan filtering on the bridge.
  • required: False
  • example:
bridge-vlan-aware yes/no

bridge-pathcosts

  • help: bridge set port path costs
  • required: False
  • default: 100
  • example:
bridge-pathcosts swp1=100 swp2=100

bridge-portprios

  • help: bridge port prios
  • required: False
  • default: 32
  • example:
bridge-portprios swp1=32 swp2=32

bridge-fd

  • help: bridge forward delay
  • required: False
  • default: 15
  • example:
bridge-fd 15

bridge-ageing

  • help: bridge ageing
  • required: False
  • default: 300
  • example:
bridge-ageing 300

bridge-hello

  • help: bridge set hello time
  • required: False
  • default: 2
  • example:
bridge-hello 2

bridge-gcint

  • help: bridge garbage collection interval in secs
  • required: False
  • default: 4
  • example:
bridge-gcint 4

bridge-mcquerier

  • help: set multicast querier
  • required: False
  • default: no
  • validvals: yes, no
  • example:
bridge-mcquerier no

bridge-mclmc

  • help: set multicast last member count
  • required: False
  • default: 2
  • example:
bridge-mclmc 2

bridge-mcsqc

  • help: set multicast startup query count
  • required: False
  • default: 2
  • example:
bridge-mcsqc 2

bridge-mcrouter

  • help: set multicast router
  • required: False
  • default: yes
  • validvals: yes, no
  • example:
bridge-mcrouter yes

bridge-stp

  • help: bridge-stp yes/no
  • required: False
  • default: no
  • validvals: yes, on, off, no
  • example:
bridge-stp no

bridge-pvid

  • help: bridge port pvid. Must be specified under the bridge port.
  • required: False
  • example:
bridge-pvid 1

bridge-mcsqi

  • help: set multicast startup query interval (in secs)
  • required: False
  • default: 31
  • example:
bridge-mcsqi 31

bridge-mcmi

  • help: set multicast membership interval (in secs)
  • required: False
  • default: 260
  • example:
bridge-mcmi 260

bridge-mclmi

  • help: set multicast last member interval (in secs)
  • required: False
  • default: 1
  • example:
bridge-mclmi 1

bridge-vids

  • help: bridge port vids. Can be specified under the bridge or under the port. If specified under the bridge the ports inherit it unless overridden by a bridge-vids attribute under the port.
  • required: False
  • example:
bridge-vids 4000

bridge-vids 2000 2200-3000

bridge-ports

  • help: bridge ports
  • required: True
  • example:
bridge-ports swp1.100 swp2.100 swp3.100

bridge-ports glob swp1-3.100

bridge-ports glob swp[1-3]s[0-4].100

bridge-ports regex (swp[1|2|3].100)

bridge-mcqifaddr

  • help: set multicast query to use ifaddr
  • required: False
  • default: no
  • validvals: yes, no
  • example:
bridge-mcqifaddr no

bridge-waitport

  • help: wait for a max of time secs for the specified ports to become available. If no ports are specified then those specified on bridge-ports will be used here. Specifying no ports here should not be used if we are using regex or "all" on bridge-ports, as it wouldn't work.
  • required: False
  • default: 0
  • example:
bridge-waitport 4 swp1 swp2

bridge-mcqri

  • help: set multicast query response interval (in secs)
  • required: False
  • default: 10
  • example:
bridge-mcqri 10

bridge-hashel

  • help: set hash elasticity
  • required: False
  • default: 4096
  • example:
bridge-hashel 4096

bridge-mcqpi

  • help: set multicast querier interval (in secs)
  • required: False
  • default: 255
  • example:
bridge-mcqpi 255

bridge-hashmax

  • help: set hash max
  • required: False
  • default: 4096
  • example:
bridge-hashmax 4096

bridge-bridgeprio

  • help: bridge priority
  • required: False
  • default: 32768
  • example:
bridge-bridgeprio 32768

bridge-maxage

  • help: bridge set maxage
  • required: False
  • default: 20
  • example:
bridge-maxage 20

bridge-mcsnoop

  • help: set multicast snooping
  • required: False
  • default: yes
  • validvals: yes, no
  • example:
bridge-mcsnoop yes

bridge-access

  • help: bridge port access vlan. Must be specified under the bridge port.
  • required: False
  • example:
bridge-access 300

bridge-maxwait

  • help: forces to time seconds the maximum time that the Debian bridge setup scripts will wait for the bridge ports to get to the forwarding status. Doesn't allow a fractional part. If it is equal to 0 then no waiting is done.
  • required: False
  • default: 0
  • example:
bridge-maxwait 3

bridge-portmcrouter

  • help: set port multicast routers
  • required: False
  • default: 1
  • example:
under the bridge: bridge-portmcrouter swp1=1 swp2=1

under the port: bridge-portmcrouter 1

bridge-portmcfl

  • help: port multicast fast leave.
  • required: False
  • default: 0
  • example:
under the bridge: bridge-portmcfl swp1=0 swp2=0

under the port: bridge-portmcfl 0

bridge-mcqi

  • help: set multicast query interval (in secs)
  • required: False
  • default: 125
  • example:
bridge-mcqi 125

usercmds: user commands for interfaces

This module is for running user commands on interfaces. πŸ’¬

down

  • help: run command at interface down
  • required: False

post-up

  • help: run command after interface bring up
  • required: False

up

  • help: run command at interface bring up
  • required: False

pre-down

  • help: run command before bringing the interface down
  • required: False

pre-up

  • help: run command before bringing the interface up
  • required: False

post-down

  • help: run command after bringing interface down
  • required: False

mstpctl: mstp configuration module for bridges

This module handles mstp configuration for bridges. πŸŒ‰

mstpctl-portadminedge

  • help: enable/disable initial edge state of the port
  • required: False
  • default: no
  • validvals: yes, no
  • example:
mstpctl-portadminedge swp1=no swp2=no

mstpctl-portbpdufilter

  • help: enable/disable bpdu filter on a port. syntax varies when defined under a bridge vs under a port
  • required: False
  • default: no
  • validvals: yes, no
  • example:
under a bridge: mstpctl-portbpdufilter swp1=no swp2=no

under a port: mstpctl-portbpdufilter yes

mstpctl-fdelay

  • help: set forwarding delay
  • required: False
  • default: 15
  • example:
mstpctl-fdelay 15
  • mstpctl-portnetwork β€” turn bridge assurance capability on/off for a port πŸ¦‹
    • required: False Β· default: no Β· validvals: yes,no
    • example:
mstpctl-portnetwork swp1=no swp2=no
  • mstpctl-txholdcount β€” the bridge transmit holdcount, like how many BPDUs it's allowed to hold before it has to spill the tea πŸ’…
    • required: False Β· default: 6
    • example:
mstpctl-txholdcount 6
  • mstpctl-forcevers β€” makes the bridge force a specific STP version, no negotiating fr fr
    • required: False Β· default: rstp
    • example:
mstpctl-forcevers rstp
  • mstpctl-portautoedge β€” enable/disable the auto transition to/from the edge state of the port ✨
    • required: False Β· default: yes Β· validvals: yes,no
    • example:
mstpctl-portautoedge swp1=yes swp2=yes
  • mstpctl-maxhops β€” bridge max hops, the limit on how far your topology gossip can travel 🫢
    • required: False Β· default: 15
    • example:
mstpctl-maxhops 15
  • mstpctl-treeprio β€” tree priority. lowest key energy wins the root election, so pick wisely πŸ’€
    • required: False Β· default: 32768 Β· validrange: 0-65535
    • example:
mstpctl-treeprio 32768
  • mstpctl-treeportprio β€” port priority for the MSTI instance 🌸
    • required: False Β· default: 128 Β· validrange: 0-240
    • example:
mstpctl-treeportprio swp1=128 swp2=128
  • mstpctl-portpathcost β€” bridge port path cost, aka how expensive this link is to walk across πŸ‘‘
    • required: False Β· default: 0
    • example:
mstpctl-portpathcost swp1=0 swp2=1
  • mstpctl-portrestrtcn β€” enable/disable the port's ability to propagate a received topology change notification of the port πŸ”₯
    • required: False Β· default: no Β· validvals: yes,no
    • example:
mstpctl-portrestrtcn swp1=no swp2=no
  • mstpctl-maxage β€” max message age, the expiry clock on topology info πŸ•°οΈ
    • required: False Β· default: 20
    • example:
mstpctl-maxage 20
  • mstpctl-hello β€” set the hello time, i.e. how often the bridge says hi to its neighbours πŸ’–
    • required: False Β· default: 2
    • example:
mstpctl-hello 2
  • mstpctl-portrestrrole β€” enable/disable the port's ability to take the root role of the port 🌈
    • required: False Β· default: no Β· validvals: yes,no
    • example:
mstpctl-portrestrrole swp1=no swp2=no
  • mstpctl-bpduguard β€” enable/disable bpduguard, the bouncer that says "not you, bestie" to stray BPDUs 🚫
    • required: False Β· default: no Β· validvals: yes,no
    • example:
mstpctl-bpduguard swp1=no swp2=no
  • mstpctl-ageing β€” ageing time, how long a learned thing hangs around before it's forgotten 😭
    • required: False Β· default: 300
    • example:
mstpctl-ageing 300
  • mstpctl-treeportcost β€” port tree cost. no default listed, no example listed, that's just how it is 🧚
    • required: False
  • mstpctl-portp2p β€” bridge port p2p detection mode, auto by default because auto is the main character ⭐
    • required: False Β· default: auto Β· validvals: yes,no,auto
    • example:
mstpctl-portp2p swp1=no swp2=no

πŸŽ€ clagd πŸŽ€

This module generates the clagd defaults file. periodt.

  • clagd-priority β€” The priority of this clagd switch πŸ‘‘
    • required: False
    • example:
clagd-priority 30000
  • clagd-backup-ip β€” Backup IP address of the clagd peer 🫢
    • required: False
    • example:
clagd-backup-ip 192.1.1.1
  • clagd-enable β€” enable clagd ✨
    • required: False Β· validvals: yes,no
    • example:
clagd-enable yes
  • clag-id β€” multi-chassis lag id πŸ’…
    • required: False Β· default: 0 Β· validrange: 0-65535
    • example:
clag-id 1
  • clagd-peer-ip β€” The IP address of the clagd peer. this one is required, so like, don't skip it 🌸
    • required: True
    • example:
clagd-peer 10.10.10.2
  • clagd-sys-mac β€” The system ID of the CLAG pair. also required, no cap πŸ’–
    • required: True
    • example:
clagd-sys-mac 44:38:39:ff:00:00
  • clagd-args β€” Additional command line arguments for clagd, throw whatever extra flags you need at it πŸ”₯
    • required: False
    • example:
clagd-args --log /var/log/clagd.log
clagd-args --verbose --lacpPoll 10
clagd-args --debug 0x4

πŸ¦‹ vlan πŸ¦‹

vlan module configures vlan interfaces. This module understands vlan interfaces with dot notations. eg swp1.100. Vlan interfaces with any other names need to have raw device and vlan id attributes β€” that's the whole vibe check.

  • vlan-id β€” vlan id
    • required: False
  • vlan-raw-device β€” vlan raw device
    • required: False

🌈 bridgevlan 🌈

bridgevlan module configures vlan attributes on a vlan aware bridge. This module only understands vlan interface names with dot notations. eg br0.100. where br0 is the vlan aware bridge this config is for. iykyk.

  • bridge-igmp-querier-src β€” bridge igmp querier src. Must be specified under the vlan interface πŸ’œ
    • required: False
    • example:
bridge-igmp-querier-src 172.16.101.1

πŸ’… bond πŸ’…

bond configuration module. let's get into it.

  • bond-use-carrier β€” bond use carrier
    • required: False Β· default: yes Β· validvals: yes,no
    • example:
bond-use-carrier yes
  • bond-lacp-bypass-period β€” grace period (seconds) for lacp bypass ⏳
    • required: False Β· default: 0 Β· validrange: 0-900
    • example:
bond-lacp-bypass-period 100
  • bond-miimon β€” bond miimon
    • required: False Β· default: 0 Β· validrange: 0-255
    • example:
bond-miimon 0
  • bond-lacp-rate β€” bond lacp rate
    • required: False Β· default: 0 Β· validvals: 0,1
    • example:
bond-lacp-rate 0
  • bond-lacp-bypass-priority β€” slave priority for lacp bypass πŸ₯‡
    • required: False
    • example:
bond-lacp-bypass-priority swp1=1 swp2=1 swp3=2
  • bond-min-links β€” bond min links
    • required: False Β· default: 0
    • example:
bond-min-links 0
  • bond-slaves β€” bond slaves. this one is required, bestie, you can't have a bond with nobody in it 😭
    • required: True
    • example:
bond-slaves swp1 swp2
bond-slaves glob swp1-2
bond-slaves regex (swp[1|2)
  • bond-lacp-bypass-allow β€” allow lacp bypass
    • required: False Β· default: no Β· validvals: yes,no
    • example:
bond-lacp-bypass-allow no
  • bond-mode β€” bond mode ✨
    • required: False Β· default: balance-rr Β· validvals: balance-rr,active-backup,balance-xor,broadcast,802.3ad,balance-tlb,balance-alb
    • example:
bond-mode 802.3ad
  • bond-num-unsol-na β€” bond slave devices
    • required: False Β· default: 1 Β· validrange: 0-255
    • example:
bond-num-unsol-na 1
  • bond-ad-sys-priority β€” 802.3ad system priority
    • required: False Β· default: 65535
    • example:
bond-ad-sys-priority 65535
  • bond-xmit-hash-policy β€” bond slave devices
    • required: False Β· default: layer2 Β· validvals: layer2,layer3+4,layer2+3
    • example:
bond-xmit-hash-policy layer2
  • bond-num-grat-arp β€” bond use carrier
    • required: False Β· default: 1 Β· validrange: 0-255
    • example:
bond-num-grat-arp 1
  • bond-ad-sys-mac-addr β€” 802.3ad system mac address πŸ’–
    • required: False Β· default: 00:00:00:00:00:00
    • example:
bond-ad-sys-mac-addr 00:00:00:00:00:00

πŸ“ address πŸ“

address configuration module for interfaces. so many little knobs, obsessed.

  • broadcast β€” broadcast address πŸ“£
    • required: False
    • example:
broadcast 10.0.1.255
  • hwaddress β€” hw address
    • required: False
    • example:
hwaddress 44:38:39:00:27:b8
  • alias β€” description/alias 🏷️
    • required: False
    • example:
alias testnetwork
  • address β€” ipv4 or ipv6 addresses 🌐
    • required: False
    • example:
address 10.0.12.3/24
address 2000:1000:1000:1000:3::5/128
  • scope β€” scope
    • required: False
    • example:
scope host
  • address-purge β€” purge existing addresses. By default any existing ip addresses on an interface are purged to match persistent addresses in the interfaces file. Set this attribute to 'no' if you want to preserve existing addresses πŸ™ˆ
    • required: False Β· default: yes
    • example:
address-purge yes/no
  • preferred-lifetime β€” preferred lifetime ⏱️
    • required: False
    • example:
preferred-lifetime forever
preferred-lifetime 10
  • gateway β€” default gateway πŸšͺ
    • required: False
    • example:
gateway 255.255.255.0
  • mtu β€” interface mtu
    • required: False

oh and if you literally just don't say anything? it defaults to 1500. that's the whole vibe. πŸ’…

example:

mtu 1600

✨ addressvirtual ✨

ok bestie so the address module is the one that configures virtual addresses for interfaces 🫢. and here's the little magic trick: for every address-virtual line you write, it spins up a macvlan interface. one line = one interface. it's giving "one for each of y'all" and honestly? obsessed. ✨

  • address-virtual β€” help: bridge router virtual mac and ip
    • required: False
    • example:
address-virtual 00:11:22:33:44:01 11.0.1.254/24 11.0.1.254/24
yes, that's the mac and the ip written twice in the example. that's not me being extra, that's literally the example. copy it exactly, bestie. πŸ’–

🌈 vxlan 🌈

next up: the vxlan module, which configures vxlan interfaces. tunnels? in my config file? more likely than you think πŸ¦‹.

  • vxlan-learning β€” help: vxlan learning yes/no
    • required: False
    • default: yes
    • validvals: yes,no
    • example:
vxlan-learning no
  • vxlan-id β€” help: vxlan id
    • required: True β€” yep, this one is not optional, you HAVE to set it πŸ”₯
    • example:
vxlan-id 100
  • vxlan-remoteip β€” help: vxlan remote ip
    • required: False
    • example:
vxlan-remoteip 172.16.22.127
  • vxlan-svcnodeip β€” help: vxlan id
    • required: False
    • example:
vxlan-svcnodeip 172.16.22.125
ngl bestie, the help text on this one just says vxlan id again πŸ™ˆ that's what the page says, so that's what I'm telling you. no editing, no guessing, periodt.
  • vxlan-local-tunnelip β€” help: vxlan local tunnel ip
    • required: False
    • example:
vxlan-local-tunnelip 172.16.20.103

πŸ’– SEE ALSO πŸ’–

your little reading list, bestie β€” go check these out too πŸ‘‘:


🌸 AUTHOR 🌸

  • roopa@cumulusnetworks.com

  • Copyright 2013 Cumulus Networks, Inc. All rights reserved.

and that's the whole page, bestie 🫢 you ate that. this lil masterpiece is version 0.1, dated 2013-09-25, and it lives at IFUPDOWN-ADDONS-INTERFACES(5). main character manpage energy, no cap πŸ’…βœ¨

πŸ“¦ where this page comes from