Reload network configuration on Debian Bullseye.

Display operating system details.

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 11 (bullseye)
Release:	11
Codename:	bullseye

Install ifupdown2 package which is a ifupdown re-written in Python.

$ sudo apt install ifupdown2

Inspect network interfaces.

$ ip -br a
lo               UNKNOWN        127.0.0.1/8 ::1/128 
enp2s0           UP             
vmbr0            UP             172.16.150.202/21 fe80::b6b0:24ff:fe2c:9f30/64 
vxlan100         UNKNOWN        
vmbr100          UP             192.168.24.10/24 fe80::4cd3:76ff:fe76:6db5/64 
tap101i0         UNKNOWN        
fwbr101i0        UP             
fwpr101p0@fwln101i0 UP             
fwln101i0@fwpr101p0 UP   

Inspect configuration for network interfaces.

$ cat /etc/network/interfaces
auto lo
iface lo inet loopback

iface enp2s0 inet manual

auto vmbr0
iface vmbr0 inet static
        address 172.16.150.202/21
        gateway 172.16.144.1
        bridge-ports enp2s0 
        bridge-stp off
        bridge-fd 0

auto vxlan100
iface vxlan100
  vxlan-id 100

auto vmbr100
iface vmbr100
  address 192.168.24.10/24
  bridge-ports vxlan100
  post-up bridge fdb add 00:00:00:00:00:00 dev vxlan100 dst 172.16.150.203

Display help information for ifreload utility.

$ ifreload --help
usage: ifreload [-h] (-a | -c | --allow CLASS) [-n] [-v] [-d] [-u] [-l] [-f] [-s] [-V] [--nldebug]

reload interface configuration.

optional arguments:
  -h, --help            show this help message and exit
  -a, --all             process all interfaces marked "auto"
  -c, --currently-up    Reload the configuration for all interfaces which are currently up regardless of
                        whether an interface has "auto <interface>" configuration within the
                        /etc/network/interfaces file.
  --allow CLASS         ignore non-"allow-CLASS" interfaces
  -n, --no-act          print out what would happen, but don't do it
  -v, --verbose         verbose
  -d, --debug           output debug info
  -u, --use-current-config
                        By default ifreload looks at saved state for interfaces to bring down. With this
                        option ifreload will only look at the current interfaces file. Useful when your state
                        file is corrupted or you want down to use the latest from the interfaces file
  -l, --syslog
  -f, --force           force run all operations
  -s, --syntax-check    Only run the interfaces file parser
  -V, --version
  --nldebug             print netlink debug messages

Display utility version.

$ ifreload --version
ifupdown2:3.1.0-1+pmx3

Check configuration syntax.

$ sudo ifreload --syntax-check --all
warning: vxlan100: missing vxlan-local-tunnelip

Check configuration syntax using verbose mode.

$ sudo ifreload --syntax-check --all --verbose
info: requesting link dump
info: requesting address dump
info: requesting netconf dump
info: loading builtin modules from ['/usr/share/ifupdown2/addons']
info: module openvswitch not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: module openvswitch_port not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: module ppp not loaded (module init failed: no /usr/bin/pon found)
info: module batman_adv not loaded (module init failed: no /usr/sbin/batctl found)
info: executing /sbin/sysctl net.bridge.bridge-allow-multiple-vlans
info: module mstpctl not loaded (module init failed: no /sbin/mstpctl found)
info: executing /bin/ip rule show
info: executing /bin/ip -6 rule show
info: address: using default mtu 1500
info: address: max_mtu undefined
info: executing /usr/sbin/ip vrf id
info: mgmt vrf_context = False
info: dhclient: dhclient_retry_on_failure set to 0
info: executing /bin/ip addr help
info: address metric support: OK
info: module ppp not loaded (module init failed: no /usr/bin/pon found)
info: module mstpctl not loaded (module init failed: no /sbin/mstpctl found)
info: module batman_adv not loaded (module init failed: no /usr/sbin/batctl found)
info: module openvswitch_port not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: module openvswitch not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: looking for user scripts under /etc/network
info: loading scripts under /etc/network/if-pre-up.d ...
info: loading scripts under /etc/network/if-up.d ...
info: loading scripts under /etc/network/if-post-up.d ...
info: loading scripts under /etc/network/if-pre-down.d ...
info: loading scripts under /etc/network/if-down.d ...
info: loading scripts under /etc/network/if-post-down.d ...
info: 'link_master_slave' is set. slave admin state changes will be delayed till the masters admin state change.
info: using mgmt iface default prefix eth
info: processing interfaces file /etc/network/interfaces
warning: vxlan100: missing vxlan-local-tunnelip
info: exit status 1

Check configuration syntax using debug mode.

$ sudo ifreload --syntax-check --all --debug
debug: args = Namespace(all=True, currentlyup=False, CLASS=None, iflist=[], noact=False, verbose=False, debug=True, withdepends=False, perfmode=False, nocache=False, excludepats=None, usecurrentconfig=False, syslog=False, force=False, syntaxcheck=True, version=None, nldebug=False)
debug: creating ifupdown object ..
info: requesting link dump
info: requesting address dump
info: requesting netconf dump
debug: nlcache: reset errorq
debug: {'use_daemon': 'no', 'template_enable': '1', 'template_engine': 'mako', 'template_lookuppath': '/etc/network/ifupdown2/templates', 'default_interfaces_configfile': '/etc/network/interfaces', 'disable_cli_interfacesfile': '0', 'addon_syntax_check': '0', 'addon_scripts_support': '1', 'addon_python_modules_support': '1', 'multiple_vlan_aware_bridge_support': '1', 'ifquery_check_success_str': 'pass', 'ifquery_check_error_str': 'fail', 'ifquery_check_unknown_str': '', 'ifquery_ifacename_expand_range': '0', 'link_master_slave': '1', 'delay_admin_state_change': '0', 'ifreload_down_changed': '0', 'addr_config_squash': '0', 'ifaceobj_squash': '0', 'adjust_logical_dev_mtu': '1', 'state_dir': '/run/network/'}
info: loading builtin modules from ['/usr/share/ifupdown2/addons']
info: module openvswitch not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: module openvswitch_port not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: module ppp not loaded (module init failed: no /usr/bin/pon found)
info: module batman_adv not loaded (module init failed: no /usr/sbin/batctl found)
debug: bridge: using reserved vlan range (0, 0)
debug: bridge: init: warn_on_untagged_bridge_absence=False
debug: bridge: init: vxlan_bridge_default_igmp_snooping=None
debug: bridge: init: arp_nd_suppress_only_on_vxlan=False
debug: bridge: init: bridge_always_up_dummy_brport=None
info: executing /sbin/sysctl net.bridge.bridge-allow-multiple-vlans
debug: bridge: init: multiple vlans allowed True
info: module mstpctl not loaded (module init failed: no /sbin/mstpctl found)
info: executing /bin/ip rule show
info: executing /bin/ip -6 rule show
info: address: using default mtu 1500
info: address: max_mtu undefined
info: executing /usr/sbin/ip vrf id
info: mgmt vrf_context = False
info: dhclient: dhclient_retry_on_failure set to 0
info: executing /bin/ip addr help
info: address metric support: OK
info: module ppp not loaded (module init failed: no /usr/bin/pon found)
info: module mstpctl not loaded (module init failed: no /sbin/mstpctl found)
info: module batman_adv not loaded (module init failed: no /usr/sbin/batctl found)
info: module openvswitch_port not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: module openvswitch not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: looking for user scripts under /etc/network
info: loading scripts under /etc/network/if-pre-up.d ...
info: loading scripts under /etc/network/if-up.d ...
info: loading scripts under /etc/network/if-post-up.d ...
info: loading scripts under /etc/network/if-pre-down.d ...
info: loading scripts under /etc/network/if-down.d ...
info: loading scripts under /etc/network/if-post-down.d ...
info: 'link_master_slave' is set. slave admin state changes will be delayed till the masters admin state change.
info: using mgmt iface default prefix eth
debug: reloading interface config ..
info: processing interfaces file /etc/network/interfaces
debug: vmbr0: evaluating port expr '['enp2s0']'
debug: vmbr100: evaluating port expr '['vxlan100']'
warning: vxlan100: missing vxlan-local-tunnelip
info: exit status 1

Perform a verbose dry run.

$ sudo ifreload --no-act --all --verbose
info: requesting link dump
info: requesting address dump
info: requesting netconf dump
info: loading builtin modules from ['/usr/share/ifupdown2/addons']
info: module openvswitch not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: module openvswitch_port not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: module ppp not loaded (module init failed: no /usr/bin/pon found)
info: module batman_adv not loaded (module init failed: no /usr/sbin/batctl found)
info: DRY-RUN: executing /sbin/sysctl net.bridge.bridge-allow-multiple-vlans
info: module mstpctl not loaded (module init failed: no /sbin/mstpctl found)
info: DRY-RUN: executing /bin/ip rule show
info: DRY-RUN: executing /bin/ip -6 rule show
info: address: using default mtu 1500
info: address: max_mtu undefined
info: DRY-RUN: executing /usr/sbin/ip vrf id
info: mgmt vrf_context = False
info: dhclient: dhclient_retry_on_failure set to 0
info: executing /bin/ip addr help
info: address metric support: OK
info: module ppp not loaded (module init failed: no /usr/bin/pon found)
info: module mstpctl not loaded (module init failed: no /sbin/mstpctl found)
info: module batman_adv not loaded (module init failed: no /usr/sbin/batctl found)
info: module openvswitch_port not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: module openvswitch not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: looking for user scripts under /etc/network
info: loading scripts under /etc/network/if-pre-up.d ...
info: loading scripts under /etc/network/if-up.d ...
info: loading scripts under /etc/network/if-post-up.d ...
info: loading scripts under /etc/network/if-pre-down.d ...
info: loading scripts under /etc/network/if-down.d ...
info: loading scripts under /etc/network/if-post-down.d ...
info: 'link_master_slave' is set. slave admin state changes will be delayed till the masters admin state change.
info: using mgmt iface default prefix eth
info: processing interfaces file /etc/network/interfaces
info: no interfaces to down ..
info: reload: scheduling up on interfaces: ['lo', 'vmbr0', 'vxlan100', 'vmbr100']
info: lo: running ops ...
info: DRY-RUN: writing "" to file /sys/class/net/lo/ifalias
info: DRY-RUN: executing /sbin/sysctl net.mpls.conf.lo.input=0
info: DRY-RUN: executing /bin/ip -force -batch - [link set dev lo down
link set dev lo addrgenmode eui64
link set dev lo up]
info: DRY-RUN: lo: netlink: ip link set dev lo up
info: DRY-RUN: executing /etc/network/if-up.d/chrony
info: DRY-RUN: executing /etc/network/if-up.d/postfix
info: enp2s0: running ops ...
info: vmbr0: applying bridge port configuration: ['enp2s0']
info: vrf: syncing table map to /etc/iproute2/rt_tables.d/ifupdown2_vrf_map.conf
info: vrf: dumping iproute2_vrf_map
info: {}
info: DRY-RUN: writing "" to file /sys/class/net/enp2s0/ifalias
info: DRY-RUN: executing /sbin/sysctl net.mpls.conf.enp2s0.input=0
info: DRY-RUN: executing /bin/ip -force -batch - [link set dev enp2s0 down
link set dev enp2s0 addrgenmode eui64
link set dev enp2s0 up]
info: DRY-RUN: executing /etc/network/if-up.d/chrony
info: DRY-RUN: executing /etc/network/if-up.d/postfix
info: vmbr0: running ops ...
info: vmbr0: bridge already exists
info: vmbr0: applying bridge settings
info: vmbr0: reset bridge-hashel to default: 4
info: reading '/sys/class/net/vmbr0/bridge/stp_state'
info: DRY-RUN: vmbr0: netlink: ip link add dev vmbr0 type bridge (with attributes)
info: vmbr0: port fwpr101p0 will stay enslaved as it matches with bridge-ports-condone-regex
info: vmbr0: port enp2s0: already processed
info: vmbr0: applying bridge configuration specific to ports
info: vmbr0: processing bridge config for port enp2s0
info: DRY-RUN: executing /bin/ip -force -batch - [link set dev enp2s0 up
link set dev fwpr101p0 up]
info: bridge mac is already inherited from enp2s0
info: DRY-RUN: writing "" to file /sys/class/net/vmbr0/ifalias
info: DRY-RUN: executing /sbin/sysctl net.mpls.conf.vmbr0.input=0
info: DRY-RUN: executing /bin/ip -force -batch - [link set dev vmbr0 down
link set dev vmbr0 addrgenmode eui64
link set dev vmbr0 up]
info: writing '0' to file /proc/sys/net/ipv4/conf/vmbr0/arp_accept
info: DRY-RUN: vmbr0: netlink: ip link set dev vmbr0 up
info: DRY-RUN: executing /bin/ip route add default via 172.16.144.1 proto kernel dev vmbr0 onlink
info: DRY-RUN: executing /etc/network/if-up.d/chrony
info: DRY-RUN: executing /etc/network/if-up.d/postfix
info: vxlan100: running ops ...
info: vxlan100: vxlan already exists - no change detected
info: vmbr100: applying bridge port configuration: ['vxlan100']
info: DRY-RUN: writing "" to file /sys/class/net/vxlan100/ifalias
info: DRY-RUN: executing /sbin/sysctl net.mpls.conf.vxlan100.input=0
info: DRY-RUN: executing /bin/ip -force -batch - [link set dev vxlan100 down
link set dev vxlan100 addrgenmode eui64
link set dev vxlan100 up]
info: DRY-RUN: executing /etc/network/if-up.d/chrony
info: DRY-RUN: executing /etc/network/if-up.d/postfix
info: vmbr100: running ops ...
info: vmbr100: bridge already exists
info: vmbr100: applying bridge settings
info: vmbr100: reset bridge-hashel to default: 4
info: reading '/sys/class/net/vmbr100/bridge/stp_state'
info: DRY-RUN: vmbr100: netlink: ip link add dev vmbr100 type bridge (with attributes)
info: vmbr100: port vxlan100: already processed
info: vmbr100: applying bridge configuration specific to ports
info: vmbr100: processing bridge config for port vxlan100
info: DRY-RUN: executing /bin/ip -force -batch - [link set dev vxlan100 up]
info: DRY-RUN: executing /sbin/bridge fdb replace 4e:d3:76:76:6d:b5 dev vmbr100  self 
info: DRY-RUN: writing "" to file /sys/class/net/vmbr100/ifalias
info: DRY-RUN: executing /sbin/sysctl net.mpls.conf.vmbr100.input=0
info: DRY-RUN: executing /bin/ip -force -batch - [link set dev vmbr100 down
link set dev vmbr100 addrgenmode eui64
link set dev vmbr100 up]
info: writing '0' to file /proc/sys/net/ipv4/conf/vmbr100/arp_accept
info: DRY-RUN: vmbr100: netlink: ip link set dev vmbr100 up
info: DRY-RUN: executing /etc/network/if-up.d/chrony
info: DRY-RUN: executing /etc/network/if-up.d/postfix
info: DRY-RUN: executing bridge fdb add 00:00:00:00:00:00 dev vxlan100 dst 172.16.150.203
info: exit status 0

Peform a very verbose dry run.

$ ifreload --no-act --all --debug
debug: args = Namespace(all=True, currentlyup=False, CLASS=None, iflist=[], noact=True, verbose=False, debug=True, withdepends=False, perfmode=False, nocache=False, excludepats=None, usecurrentconfig=False, syslog=False, force=False, syntaxcheck=False, version=None, nldebug=False)
debug: creating ifupdown object ..
info: requesting link dump
info: requesting address dump
info: requesting netconf dump
debug: nlcache: reset errorq
debug: {'use_daemon': 'no', 'template_enable': '1', 'template_engine': 'mako', 'template_lookuppath': '/etc/network/ifupdown2/templates', 'default_interfaces_configfile': '/etc/network/interfaces', 'disable_cli_interfacesfile': '0', 'addon_syntax_check': '0', 'addon_scripts_support': '1', 'addon_python_modules_support': '1', 'multiple_vlan_aware_bridge_support': '1', 'ifquery_check_success_str': 'pass', 'ifquery_check_error_str': 'fail', 'ifquery_check_unknown_str': '', 'ifquery_ifacename_expand_range': '0', 'link_master_slave': '1', 'delay_admin_state_change': '0', 'ifreload_down_changed': '0', 'addr_config_squash': '0', 'ifaceobj_squash': '0', 'adjust_logical_dev_mtu': '1', 'state_dir': '/run/network/'}
info: loading builtin modules from ['/usr/share/ifupdown2/addons']
info: module openvswitch not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: module openvswitch_port not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: module ppp not loaded (module init failed: no /usr/bin/pon found)
info: module batman_adv not loaded (module init failed: no /usr/sbin/batctl found)
debug: bridge: using reserved vlan range (0, 0)
debug: bridge: init: warn_on_untagged_bridge_absence=False
debug: bridge: init: vxlan_bridge_default_igmp_snooping=None
debug: bridge: init: arp_nd_suppress_only_on_vxlan=False
debug: bridge: init: bridge_always_up_dummy_brport=None
info: DRY-RUN: executing /sbin/sysctl net.bridge.bridge-allow-multiple-vlans
debug: bridge: init: multiple vlans allowed False
info: module mstpctl not loaded (module init failed: no /sbin/mstpctl found)
info: DRY-RUN: executing /bin/ip rule show
info: DRY-RUN: executing /bin/ip -6 rule show
info: address: using default mtu 1500
info: address: max_mtu undefined
info: DRY-RUN: executing /usr/sbin/ip vrf id
info: mgmt vrf_context = False
info: dhclient: dhclient_retry_on_failure set to 0
info: executing /bin/ip addr help
info: address metric support: OK
info: module ppp not loaded (module init failed: no /usr/bin/pon found)
info: module mstpctl not loaded (module init failed: no /sbin/mstpctl found)
info: module batman_adv not loaded (module init failed: no /usr/sbin/batctl found)
info: module openvswitch_port not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: module openvswitch not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: looking for user scripts under /etc/network
info: loading scripts under /etc/network/if-pre-up.d ...
info: loading scripts under /etc/network/if-up.d ...
info: loading scripts under /etc/network/if-post-up.d ...
info: loading scripts under /etc/network/if-pre-down.d ...
info: loading scripts under /etc/network/if-down.d ...
info: loading scripts under /etc/network/if-post-down.d ...
info: 'link_master_slave' is set. slave admin state changes will be delayed till the masters admin state change.
info: using mgmt iface default prefix eth
debug: reloading interface config ..
info: processing interfaces file /etc/network/interfaces
debug: vmbr0: evaluating port expr '['enp2s0']'
debug: vmbr100: evaluating port expr '['vxlan100']'
debug: vmbr100: evaluating port expr '['vxlan100']'
debug: vmbr0: evaluating port expr '['enp2s0']'
debug: eth0: marking interface with mgmt flag
debug: populate_dependency_info: deleting blacklisted interface eth0
info: no interfaces to down ..
info: reload: scheduling up on interfaces: ['lo', 'vmbr0', 'vxlan100', 'vmbr100']
debug: scheduling '['pre-up', 'up', 'post-up']' for ['lo', 'vmbr0', 'vxlan100', 'vmbr100']
debug: dependency graph {
        lo : []
        enp2s0 : []
        vmbr0 : ['enp2s0']
        vxlan100 : []
        vmbr100 : ['vxlan100']
}
debug: graph roots (interfaces that dont have dependents): ['lo', 'vmbr0', 'vmbr100']
info: lo: running ops ...
debug: lo: pre-up : running module xfrm
debug: lo: pre-up : running module link
debug: lo: pre-up : running module bond
debug: lo: pre-up : running module vlan
debug: lo: pre-up : running module vxlan
debug: lo: pre-up : running module usercmds
debug: lo: pre-up : running module bridge
debug: lo: pre-up : running module bridgevlan
debug: lo: pre-up : running module tunnel
debug: lo: pre-up : running module vrf
debug: lo: pre-up : running module ethtool
debug: lo: pre-up : running module address
info: DRY-RUN: writing "" to file /sys/class/net/lo/ifalias
info: DRY-RUN: executing /sbin/sysctl net.mpls.conf.lo.input=0
info: DRY-RUN: executing /bin/ip -force -batch - [link set dev lo down
link set dev lo addrgenmode eui64
link set dev lo up]
info: DRY-RUN: lo: netlink: ip link set dev lo up
debug: lo: up : running module dhcp
debug: lo: up : running module address
debug: lo: up : running module addressvirtual
debug: lo: up : running module usercmds
debug: lo: up : running script /etc/network/if-up.d/chrony
info: DRY-RUN: executing /etc/network/if-up.d/chrony
debug: lo: up : running script /etc/network/if-up.d/postfix
info: DRY-RUN: executing /etc/network/if-up.d/postfix
debug: lo: post-up : running module usercmds
debug: lo: statemanager sync state pre-up
debug: vmbr0: found dependents ['enp2s0']
info: enp2s0: running ops ...
debug: enp2s0: pre-up : running module xfrm
debug: enp2s0: pre-up : running module link
debug: enp2s0: pre-up : running module bond
debug: enp2s0: pre-up : running module vlan
debug: enp2s0: pre-up : running module vxlan
debug: enp2s0: pre-up : running module usercmds
debug: enp2s0: pre-up : running module bridge
info: vmbr0: applying bridge port configuration: ['enp2s0']
debug: enp2s0: pre-up : running module bridgevlan
debug: enp2s0: pre-up : running module tunnel
debug: enp2s0: pre-up : running module vrf
info: vrf: syncing table map to /etc/iproute2/rt_tables.d/ifupdown2_vrf_map.conf
info: vrf: dumping iproute2_vrf_map
info: {}
debug: enp2s0: pre-up : running module ethtool
debug: enp2s0: pre-up : running module address
info: DRY-RUN: writing "" to file /sys/class/net/enp2s0/ifalias
info: DRY-RUN: executing /sbin/sysctl net.mpls.conf.enp2s0.input=0
info: DRY-RUN: executing /bin/ip -force -batch - [link set dev enp2s0 down
link set dev enp2s0 addrgenmode eui64
link set dev enp2s0 up]
debug: enp2s0: up : running module dhcp
debug: enp2s0: up : running module address
debug: enp2s0: up : running module addressvirtual
debug: enp2s0: up : running module usercmds
debug: enp2s0: up : running script /etc/network/if-up.d/chrony
info: DRY-RUN: executing /etc/network/if-up.d/chrony
debug: enp2s0: up : running script /etc/network/if-up.d/postfix
info: DRY-RUN: executing /etc/network/if-up.d/postfix
debug: enp2s0: post-up : running module usercmds
debug: enp2s0: statemanager sync state pre-up
info: vmbr0: running ops ...
debug: vmbr0: pre-up : running module xfrm
debug: vmbr0: pre-up : running module link
debug: vmbr0: pre-up : running module bond
debug: vmbr0: pre-up : running module vlan
debug: vmbr0: pre-up : running module vxlan
debug: vmbr0: pre-up : running module usercmds
debug: vmbr0: pre-up : running module bridge
info: vmbr0: bridge already exists
info: vmbr0: applying bridge settings
info: vmbr0: reset bridge-hashel to default: 4
info: reading '/sys/class/net/vmbr0/bridge/stp_state'
info: DRY-RUN: vmbr0: netlink: ip link add dev vmbr0 type bridge (with attributes)
debug: attributes: {26: 4}
info: vmbr0: port fwpr101p0 will stay enslaved as it matches with bridge-ports-condone-regex
debug: vmbr0: evaluating port expr '['enp2s0']'
info: vmbr0: port enp2s0: already processed
info: vmbr0: applying bridge configuration specific to ports
info: vmbr0: processing bridge config for port enp2s0
info: DRY-RUN: executing /bin/ip -force -batch - [link set dev enp2s0 up
link set dev fwpr101p0 up]
debug: vmbr0: evaluating port expr '['enp2s0']'
info: bridge mac is already inherited from enp2s0
debug: vmbr0: _get_bridge_mac returned (enp2s0, b4:b0:24:2c:9f:30)
debug: vmbr0: cached hwaddress value: b4:b0:24:2c:9f:30
debug: vmbr0: pre-up : running module bridgevlan
debug: vmbr0: pre-up : running module tunnel
debug: vmbr0: pre-up : running module vrf
debug: vmbr0: pre-up : running module ethtool
debug: vmbr0: pre-up : running module address
info: DRY-RUN: writing "" to file /sys/class/net/vmbr0/ifalias
info: DRY-RUN: executing /sbin/sysctl net.mpls.conf.vmbr0.input=0
info: DRY-RUN: executing /bin/ip -force -batch - [link set dev vmbr0 down
link set dev vmbr0 addrgenmode eui64
link set dev vmbr0 up]
info: writing '0' to file /proc/sys/net/ipv4/conf/vmbr0/arp_accept
info: DRY-RUN: vmbr0: netlink: ip link set dev vmbr0 up
debug: vmbr0: up : running module dhcp
debug: vmbr0: up : running module address
info: DRY-RUN: executing /bin/ip route add default via 172.16.144.1 proto kernel dev vmbr0 onlink
debug: vmbr0: up : running module addressvirtual
debug: vmbr0: up : running module usercmds
debug: vmbr0: up : running script /etc/network/if-up.d/chrony
info: DRY-RUN: executing /etc/network/if-up.d/chrony
debug: vmbr0: up : running script /etc/network/if-up.d/postfix
info: DRY-RUN: executing /etc/network/if-up.d/postfix
debug: vmbr0: post-up : running module usercmds
debug: vmbr0: statemanager sync state pre-up
debug: vmbr100: found dependents ['vxlan100']
info: vxlan100: running ops ...
debug: vxlan100: pre-up : running module xfrm
debug: vxlan100: pre-up : running module link
debug: vxlan100: pre-up : running module bond
debug: vxlan100: pre-up : running module vlan
debug: vxlan100: pre-up : running module vxlan
info: vxlan100: vxlan already exists - no change detected
debug: vxlan100: pre-up : running module usercmds
debug: vxlan100: pre-up : running module bridge
info: vmbr100: applying bridge port configuration: ['vxlan100']
debug: vxlan100: pre-up : running module bridgevlan
debug: vxlan100: pre-up : running module tunnel
debug: vxlan100: pre-up : running module vrf
debug: vxlan100: pre-up : running module ethtool
debug: vxlan100: pre-up : running module address
info: DRY-RUN: writing "" to file /sys/class/net/vxlan100/ifalias
info: DRY-RUN: executing /sbin/sysctl net.mpls.conf.vxlan100.input=0
info: DRY-RUN: executing /bin/ip -force -batch - [link set dev vxlan100 down
link set dev vxlan100 addrgenmode eui64
link set dev vxlan100 up]
debug: vxlan100: up : running module dhcp
debug: vxlan100: up : running module address
debug: vxlan100: up : running module addressvirtual
debug: vxlan100: up : running module usercmds
debug: vxlan100: up : running script /etc/network/if-up.d/chrony
info: DRY-RUN: executing /etc/network/if-up.d/chrony
debug: vxlan100: up : running script /etc/network/if-up.d/postfix
info: DRY-RUN: executing /etc/network/if-up.d/postfix
debug: vxlan100: post-up : running module usercmds
debug: vxlan100: statemanager sync state pre-up
info: vmbr100: running ops ...
debug: vmbr100: pre-up : running module xfrm
debug: vmbr100: pre-up : running module link
debug: vmbr100: pre-up : running module bond
debug: vmbr100: pre-up : running module vlan
debug: vmbr100: pre-up : running module vxlan
debug: vmbr100: pre-up : running module usercmds
debug: vmbr100: pre-up : running module bridge
info: vmbr100: bridge already exists
info: vmbr100: applying bridge settings
info: vmbr100: reset bridge-hashel to default: 4
info: reading '/sys/class/net/vmbr100/bridge/stp_state'
info: DRY-RUN: vmbr100: netlink: ip link add dev vmbr100 type bridge (with attributes)
debug: attributes: {26: 4}
debug: vmbr100: evaluating port expr '['vxlan100']'
info: vmbr100: port vxlan100: already processed
info: vmbr100: applying bridge configuration specific to ports
info: vmbr100: processing bridge config for port vxlan100
info: DRY-RUN: executing /bin/ip -force -batch - [link set dev vxlan100 up]
debug: vmbr100: evaluating port expr '['vxlan100']'
debug: vmbr100: _get_bridge_mac returned (None, None)
info: DRY-RUN: executing /sbin/bridge fdb replace 4e:d3:76:76:6d:b5 dev vmbr100  self 
debug: vmbr100: pre-up : running module bridgevlan
debug: vmbr100: pre-up : running module tunnel
debug: vmbr100: pre-up : running module vrf
debug: vmbr100: pre-up : running module ethtool
debug: vmbr100: pre-up : running module address
info: DRY-RUN: writing "" to file /sys/class/net/vmbr100/ifalias
info: DRY-RUN: executing /sbin/sysctl net.mpls.conf.vmbr100.input=0
info: DRY-RUN: executing /bin/ip -force -batch - [link set dev vmbr100 down
link set dev vmbr100 addrgenmode eui64
link set dev vmbr100 up]
info: writing '0' to file /proc/sys/net/ipv4/conf/vmbr100/arp_accept
info: DRY-RUN: vmbr100: netlink: ip link set dev vmbr100 up
debug: vmbr100: up : running module dhcp
debug: vmbr100: up : running module address
debug: vmbr100: up : running module addressvirtual
debug: vmbr100: up : running module usercmds
debug: vmbr100: up : running script /etc/network/if-up.d/chrony
info: DRY-RUN: executing /etc/network/if-up.d/chrony
debug: vmbr100: up : running script /etc/network/if-up.d/postfix
info: DRY-RUN: executing /etc/network/if-up.d/postfix
debug: vmbr100: post-up : running module usercmds
info: DRY-RUN: executing bridge fdb add 00:00:00:00:00:00 dev vxlan100 dst 172.16.150.203
debug: vmbr100: statemanager sync state pre-up
info: exit status 0

Reload network configuration.

$ ifreload --all

Reload network configuration using verbose mode.

$ ifreload --all --verbose
info: requesting link dump
info: requesting address dump
info: requesting netconf dump
info: loading builtin modules from ['/usr/share/ifupdown2/addons']
info: module openvswitch not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: module openvswitch_port not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: module ppp not loaded (module init failed: no /usr/bin/pon found)
info: module batman_adv not loaded (module init failed: no /usr/sbin/batctl found)
info: executing /sbin/sysctl net.bridge.bridge-allow-multiple-vlans
info: module mstpctl not loaded (module init failed: no /sbin/mstpctl found)
info: executing /bin/ip rule show
info: executing /bin/ip -6 rule show
info: address: using default mtu 1500
info: address: max_mtu undefined
info: executing /usr/sbin/ip vrf id
info: mgmt vrf_context = False
info: dhclient: dhclient_retry_on_failure set to 0
info: executing /bin/ip addr help
info: address metric support: OK
info: module ppp not loaded (module init failed: no /usr/bin/pon found)
info: module mstpctl not loaded (module init failed: no /sbin/mstpctl found)
info: module batman_adv not loaded (module init failed: no /usr/sbin/batctl found)
info: module openvswitch_port not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: module openvswitch not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: looking for user scripts under /etc/network
info: loading scripts under /etc/network/if-pre-up.d ...
info: loading scripts under /etc/network/if-up.d ...
info: loading scripts under /etc/network/if-post-up.d ...
info: loading scripts under /etc/network/if-pre-down.d ...
info: loading scripts under /etc/network/if-down.d ...
info: loading scripts under /etc/network/if-post-down.d ...
info: 'link_master_slave' is set. slave admin state changes will be delayed till the masters admin state change.
info: using mgmt iface default prefix eth
info: processing interfaces file /etc/network/interfaces
info: no interfaces to down ..
info: reload: scheduling up on interfaces: ['lo', 'vmbr0', 'vxlan100', 'vmbr100']
info: lo: running ops ...
info: executing /sbin/sysctl net.mpls.conf.lo.input=0
info: executing /etc/network/if-up.d/chrony
info: executing /etc/network/if-up.d/postfix
info: enp2s0: running ops ...
info: vmbr0: applying bridge port configuration: ['enp2s0']
info: vrf: syncing table map to /etc/iproute2/rt_tables.d/ifupdown2_vrf_map.conf
info: vrf: dumping iproute2_vrf_map
info: {}
info: executing /sbin/sysctl net.mpls.conf.enp2s0.input=0
info: executing /etc/network/if-up.d/chrony
info: executing /etc/network/if-up.d/postfix
info: vmbr0: running ops ...
info: vmbr0: bridge already exists
info: vmbr0: applying bridge settings
info: vmbr0: reset bridge-hashel to default: 4
info: reading '/sys/class/net/vmbr0/bridge/stp_state'
info: vmbr0: netlink: ip link set dev vmbr0 type bridge (with attributes)
info: vmbr0: port fwpr101p0 will stay enslaved as it matches with bridge-ports-condone-regex
info: vmbr0: port enp2s0: already processed
info: vmbr0: applying bridge configuration specific to ports
info: vmbr0: processing bridge config for port enp2s0
info: bridge mac is already inherited from enp2s0
info: executing /sbin/sysctl net.mpls.conf.vmbr0.input=0
info: writing '0' to file /proc/sys/net/ipv4/conf/vmbr0/arp_accept
info: executing /bin/ip route add default via 172.16.144.1 proto kernel dev vmbr0 onlink
info: executing /etc/network/if-up.d/chrony
info: executing /etc/network/if-up.d/postfix
info: vxlan100: running ops ...
info: vxlan100: vxlan already exists - no change detected
info: vmbr100: applying bridge port configuration: ['vxlan100']
info: executing /sbin/sysctl net.mpls.conf.vxlan100.input=0
info: executing /etc/network/if-up.d/chrony
info: executing /etc/network/if-up.d/postfix
info: vmbr100: running ops ...
info: vmbr100: bridge already exists
info: vmbr100: applying bridge settings
info: vmbr100: reset bridge-hashel to default: 4
info: reading '/sys/class/net/vmbr100/bridge/stp_state'
info: vmbr100: netlink: ip link set dev vmbr100 type bridge (with attributes)
info: vmbr100: port vxlan100: already processed
info: vmbr100: applying bridge configuration specific to ports
info: vmbr100: processing bridge config for port vxlan100
info: executing /sbin/bridge fdb replace 4e:d3:76:76:6d:b5 dev vmbr100  self 
info: executing /sbin/sysctl net.mpls.conf.vmbr100.input=0
info: writing '0' to file /proc/sys/net/ipv4/conf/vmbr100/arp_accept
info: executing /etc/network/if-up.d/chrony
info: executing /etc/network/if-up.d/postfix
info: executing bridge fdb add 00:00:00:00:00:00 dev vxlan100 dst 172.16.150.203
info: exit status 0

Reload network configuration using very verbose mode.

$ ifreload --all --debug
debug: args = Namespace(all=True, currentlyup=False, CLASS=None, iflist=[], noact=False, verbose=False, debug=True, withdepends=False, perfmode=False, nocache=False, excludepats=None, usecurrentconfig=False, syslog=False, force=False, syntaxcheck=False, version=None, nldebug=False)
debug: creating ifupdown object ..
info: requesting link dump
info: requesting address dump
info: requesting netconf dump
debug: nlcache: reset errorq
debug: {'use_daemon': 'no', 'template_enable': '1', 'template_engine': 'mako', 'template_lookuppath': '/etc/network/ifupdown2/templates', 'default_interfaces_configfile': '/etc/network/interfaces', 'disable_cli_interfacesfile': '0', 'addon_syntax_check': '0', 'addon_scripts_support': '1', 'addon_python_modules_support': '1', 'multiple_vlan_aware_bridge_support': '1', 'ifquery_check_success_str': 'pass', 'ifquery_check_error_str': 'fail', 'ifquery_check_unknown_str': '', 'ifquery_ifacename_expand_range': '0', 'link_master_slave': '1', 'delay_admin_state_change': '0', 'ifreload_down_changed': '0', 'addr_config_squash': '0', 'ifaceobj_squash': '0', 'adjust_logical_dev_mtu': '1', 'state_dir': '/run/network/'}
info: loading builtin modules from ['/usr/share/ifupdown2/addons']
info: module openvswitch not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: module openvswitch_port not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: module ppp not loaded (module init failed: no /usr/bin/pon found)
info: module batman_adv not loaded (module init failed: no /usr/sbin/batctl found)
debug: bridge: using reserved vlan range (0, 0)
debug: bridge: init: warn_on_untagged_bridge_absence=False
debug: bridge: init: vxlan_bridge_default_igmp_snooping=None
debug: bridge: init: arp_nd_suppress_only_on_vxlan=False
debug: bridge: init: bridge_always_up_dummy_brport=None
info: executing /sbin/sysctl net.bridge.bridge-allow-multiple-vlans
debug: bridge: init: multiple vlans allowed True
info: module mstpctl not loaded (module init failed: no /sbin/mstpctl found)
info: executing /bin/ip rule show
info: executing /bin/ip -6 rule show
info: address: using default mtu 1500
info: address: max_mtu undefined
info: executing /usr/sbin/ip vrf id
info: mgmt vrf_context = False
info: dhclient: dhclient_retry_on_failure set to 0
info: executing /bin/ip addr help
info: address metric support: OK
info: module ppp not loaded (module init failed: no /usr/bin/pon found)
info: module mstpctl not loaded (module init failed: no /sbin/mstpctl found)
info: module batman_adv not loaded (module init failed: no /usr/sbin/batctl found)
info: module openvswitch_port not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: module openvswitch not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: looking for user scripts under /etc/network
info: loading scripts under /etc/network/if-pre-up.d ...
info: loading scripts under /etc/network/if-up.d ...
info: loading scripts under /etc/network/if-post-up.d ...
info: loading scripts under /etc/network/if-pre-down.d ...
info: loading scripts under /etc/network/if-down.d ...
info: loading scripts under /etc/network/if-post-down.d ...
info: 'link_master_slave' is set. slave admin state changes will be delayed till the masters admin state change.
info: using mgmt iface default prefix eth
debug: reloading interface config ..
info: processing interfaces file /etc/network/interfaces
debug: vmbr0: evaluating port expr '['enp2s0']'
debug: vmbr100: evaluating port expr '['vxlan100']'
debug: vmbr100: evaluating port expr '['vxlan100']'
debug: vmbr0: evaluating port expr '['enp2s0']'
debug: eth0: marking interface with mgmt flag
debug: populate_dependency_info: deleting blacklisted interface eth0
info: no interfaces to down ..
info: reload: scheduling up on interfaces: ['lo', 'vmbr0', 'vxlan100', 'vmbr100']
debug: scheduling '['pre-up', 'up', 'post-up']' for ['lo', 'vmbr0', 'vxlan100', 'vmbr100']
debug: dependency graph {
        lo : []
        enp2s0 : []
        vmbr0 : ['enp2s0']
        vxlan100 : []
        vmbr100 : ['vxlan100']
}
debug: graph roots (interfaces that dont have dependents): ['lo', 'vmbr0', 'vmbr100']
info: lo: running ops ...
debug: lo: pre-up : running module xfrm
debug: lo: pre-up : running module link
debug: lo: pre-up : running module bond
debug: lo: pre-up : running module vlan
debug: lo: pre-up : running module vxlan
debug: lo: pre-up : running module usercmds
debug: lo: pre-up : running module bridge
debug: lo: pre-up : running module bridgevlan
debug: lo: pre-up : running module tunnel
debug: lo: pre-up : running module vrf
debug: lo: pre-up : running module ethtool
debug: lo: pre-up : running module address
info: executing /sbin/sysctl net.mpls.conf.lo.input=0
debug: lo: up : running module dhcp
debug: lo: up : running module address
debug: lo: up : running module addressvirtual
debug: lo: up : running module usercmds
debug: lo: up : running script /etc/network/if-up.d/chrony
info: executing /etc/network/if-up.d/chrony
debug: lo: up : running script /etc/network/if-up.d/postfix
info: executing /etc/network/if-up.d/postfix
debug: lo: post-up : running module usercmds
debug: lo: statemanager sync state pre-up
debug: vmbr0: found dependents ['enp2s0']
info: enp2s0: running ops ...
debug: enp2s0: pre-up : running module xfrm
debug: enp2s0: pre-up : running module link
debug: enp2s0: pre-up : running module bond
debug: enp2s0: pre-up : running module vlan
debug: enp2s0: pre-up : running module vxlan
debug: enp2s0: pre-up : running module usercmds
debug: enp2s0: pre-up : running module bridge
info: vmbr0: applying bridge port configuration: ['enp2s0']
debug: enp2s0: pre-up : running module bridgevlan
debug: enp2s0: pre-up : running module tunnel
debug: enp2s0: pre-up : running module vrf
info: vrf: syncing table map to /etc/iproute2/rt_tables.d/ifupdown2_vrf_map.conf
info: vrf: dumping iproute2_vrf_map
info: {}
debug: enp2s0: pre-up : running module ethtool
debug: enp2s0: pre-up : running module address
info: executing /sbin/sysctl net.mpls.conf.enp2s0.input=0
debug: enp2s0: up : running module dhcp
debug: enp2s0: up : running module address
debug: enp2s0: up : running module addressvirtual
debug: enp2s0: up : running module usercmds
debug: enp2s0: up : running script /etc/network/if-up.d/chrony
info: executing /etc/network/if-up.d/chrony
debug: enp2s0: up : running script /etc/network/if-up.d/postfix
info: executing /etc/network/if-up.d/postfix
debug: enp2s0: post-up : running module usercmds
debug: enp2s0: statemanager sync state pre-up
info: vmbr0: running ops ...
debug: vmbr0: pre-up : running module xfrm
debug: vmbr0: pre-up : running module link
debug: vmbr0: pre-up : running module bond
debug: vmbr0: pre-up : running module vlan
debug: vmbr0: pre-up : running module vxlan
debug: vmbr0: pre-up : running module usercmds
debug: vmbr0: pre-up : running module bridge
info: vmbr0: bridge already exists
info: vmbr0: applying bridge settings
info: vmbr0: reset bridge-hashel to default: 4
info: reading '/sys/class/net/vmbr0/bridge/stp_state'
info: vmbr0: netlink: ip link set dev vmbr0 type bridge (with attributes)
debug: attributes: {26: 4}
info: vmbr0: port fwpr101p0 will stay enslaved as it matches with bridge-ports-condone-regex
debug: vmbr0: evaluating port expr '['enp2s0']'
info: vmbr0: port enp2s0: already processed
info: vmbr0: applying bridge configuration specific to ports
info: vmbr0: processing bridge config for port enp2s0
debug: vmbr0: evaluating port expr '['enp2s0']'
info: bridge mac is already inherited from enp2s0
debug: vmbr0: _get_bridge_mac returned (enp2s0, b4:b0:24:2c:9f:30)
debug: vmbr0: cached hwaddress value: b4:b0:24:2c:9f:30
debug: vmbr0: pre-up : running module bridgevlan
debug: vmbr0: pre-up : running module tunnel
debug: vmbr0: pre-up : running module vrf
debug: vmbr0: pre-up : running module ethtool
debug: vmbr0: pre-up : running module address
info: executing /sbin/sysctl net.mpls.conf.vmbr0.input=0
info: writing '0' to file /proc/sys/net/ipv4/conf/vmbr0/arp_accept
debug: vmbr0: up : running module dhcp
debug: vmbr0: up : running module address
info: executing /bin/ip route add default via 172.16.144.1 proto kernel dev vmbr0 onlink
debug: vmbr0: up : running module addressvirtual
debug: vmbr0: up : running module usercmds
debug: vmbr0: up : running script /etc/network/if-up.d/chrony
info: executing /etc/network/if-up.d/chrony
debug: vmbr0: up : running script /etc/network/if-up.d/postfix
info: executing /etc/network/if-up.d/postfix
debug: vmbr0: post-up : running module usercmds
debug: vmbr0: statemanager sync state pre-up
debug: vmbr100: found dependents ['vxlan100']
info: vxlan100: running ops ...
debug: vxlan100: pre-up : running module xfrm
debug: vxlan100: pre-up : running module link
debug: vxlan100: pre-up : running module bond
debug: vxlan100: pre-up : running module vlan
debug: vxlan100: pre-up : running module vxlan
info: vxlan100: vxlan already exists - no change detected
debug: vxlan100: pre-up : running module usercmds
debug: vxlan100: pre-up : running module bridge
info: vmbr100: applying bridge port configuration: ['vxlan100']
debug: vxlan100: pre-up : running module bridgevlan
debug: vxlan100: pre-up : running module tunnel
debug: vxlan100: pre-up : running module vrf
debug: vxlan100: pre-up : running module ethtool
debug: vxlan100: pre-up : running module address
info: executing /sbin/sysctl net.mpls.conf.vxlan100.input=0
debug: vxlan100: up : running module dhcp
debug: vxlan100: up : running module address
debug: vxlan100: up : running module addressvirtual
debug: vxlan100: up : running module usercmds
debug: vxlan100: up : running script /etc/network/if-up.d/chrony
info: executing /etc/network/if-up.d/chrony
debug: vxlan100: up : running script /etc/network/if-up.d/postfix
info: executing /etc/network/if-up.d/postfix
debug: vxlan100: post-up : running module usercmds
debug: vxlan100: statemanager sync state pre-up
info: vmbr100: running ops ...
debug: vmbr100: pre-up : running module xfrm
debug: vmbr100: pre-up : running module link
debug: vmbr100: pre-up : running module bond
debug: vmbr100: pre-up : running module vlan
debug: vmbr100: pre-up : running module vxlan
debug: vmbr100: pre-up : running module usercmds
debug: vmbr100: pre-up : running module bridge
info: vmbr100: bridge already exists
info: vmbr100: applying bridge settings
info: vmbr100: reset bridge-hashel to default: 4
info: reading '/sys/class/net/vmbr100/bridge/stp_state'
info: vmbr100: netlink: ip link set dev vmbr100 type bridge (with attributes)
debug: attributes: {26: 4}
debug: vmbr100: evaluating port expr '['vxlan100']'
info: vmbr100: port vxlan100: already processed
info: vmbr100: applying bridge configuration specific to ports
info: vmbr100: processing bridge config for port vxlan100
debug: vmbr100: evaluating port expr '['vxlan100']'
debug: vmbr100: _get_bridge_mac returned (None, None)
info: executing /sbin/bridge fdb replace 4e:d3:76:76:6d:b5 dev vmbr100  self 
debug: vmbr100: pre-up : running module bridgevlan
debug: vmbr100: pre-up : running module tunnel
debug: vmbr100: pre-up : running module vrf
debug: vmbr100: pre-up : running module ethtool
debug: vmbr100: pre-up : running module address
info: executing /sbin/sysctl net.mpls.conf.vmbr100.input=0
info: writing '0' to file /proc/sys/net/ipv4/conf/vmbr100/arp_accept
debug: vmbr100: up : running module dhcp
debug: vmbr100: up : running module address
debug: vmbr100: up : running module addressvirtual
debug: vmbr100: up : running module usercmds
debug: vmbr100: up : running script /etc/network/if-up.d/chrony
info: executing /etc/network/if-up.d/chrony
debug: vmbr100: up : running script /etc/network/if-up.d/postfix
info: executing /etc/network/if-up.d/postfix
debug: vmbr100: post-up : running module usercmds
info: executing bridge fdb add 00:00:00:00:00:00 dev vxlan100 dst 172.16.150.203
debug: vmbr100: statemanager sync state pre-up
debug: saving state ..
info: exit status 0

Simple, but useful utility.