A firewall pair's CARP addresses are a third virtual IP mechanism (NetOrk/netork#1121).
Unlike vip-manager and keepalived, a CARP reading says who holds the address. A firewall's interface list need not show it (OPNsense's does not), but CARP's state names the MASTER.
VirtualIpsDict.carp (NotRequired): a firewall's CARP addresses. vip_manager/keepalived are None there.
VirtualIpDict.holds (NotRequired): the host holds the address by the mechanism's own state. None leaves the holder to the interfaces.
carp_virtual_ip() shapes one address bound to a VHID. MASTER holds, BACKUP stands by, INIT and DISABLED neither run nor hold, and an unknown state says nothing. It works the same for OPNsense and pfSense: a driver supplies the fields from its API (napalm-opnsense follows).
Tests: tests/test_carp_virtual_ips.py. Full suite 639 passed, mypy clean.
A firewall pair's CARP addresses are a third virtual IP mechanism (NetOrk/netork#1121).
Unlike vip-manager and keepalived, a CARP reading says who holds the address. A firewall's interface list need not show it (OPNsense's does not), but CARP's state names the MASTER.
- `VirtualIpsDict.carp` (NotRequired): a firewall's CARP addresses. `vip_manager`/`keepalived` are None there.
- `VirtualIpDict.holds` (NotRequired): the host holds the address by the mechanism's own state. None leaves the holder to the interfaces.
- `carp_virtual_ip()` shapes one address bound to a VHID. MASTER holds, BACKUP stands by, INIT and DISABLED neither run nor hold, and an unknown state says nothing. It works the same for OPNsense and pfSense: a driver supplies the fields from its API (napalm-opnsense follows).
Tests: `tests/test_carp_virtual_ips.py`. Full suite 639 passed, mypy clean.
A firewall pair's CARP addresses are a third virtual IP mechanism. Unlike
vip-manager and keepalived, a CARP reading says who holds the address: a
firewall's interface list need not show it, but CARP's state names the MASTER.
- VirtualIpsDict gains carp (NotRequired), VirtualIpDict gains holds
(NotRequired; None leaves the holder to the interfaces).
- carp_virtual_ip() shapes one address bound to a VHID: MASTER holds, BACKUP
stands by, INIT and DISABLED neither run nor hold, an unknown state says
nothing. The same for OPNsense and pfSense; a driver supplies the fields.
netOrk #1121.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
A firewall pair's CARP addresses are a third virtual IP mechanism (NetOrk/netork#1121).
Unlike vip-manager and keepalived, a CARP reading says who holds the address. A firewall's interface list need not show it (OPNsense's does not), but CARP's state names the MASTER.
VirtualIpsDict.carp(NotRequired): a firewall's CARP addresses.vip_manager/keepalivedare None there.VirtualIpDict.holds(NotRequired): the host holds the address by the mechanism's own state. None leaves the holder to the interfaces.carp_virtual_ip()shapes one address bound to a VHID. MASTER holds, BACKUP stands by, INIT and DISABLED neither run nor hold, and an unknown state says nothing. It works the same for OPNsense and pfSense: a driver supplies the fields from its API (napalm-opnsense follows).Tests:
tests/test_carp_virtual_ips.py. Full suite 639 passed, mypy clean.