Interface exists and doesn't exist at the same time.

Yesterday I created a bridge interface, all went good and worked ok. I rebooted my test server, and the interface isn't there anymore:
Code:
root@bsd:~ # ifconfig
igb0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
    options=4e507bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWFILTER,VLAN_HWTSO,RXCSUM_IPV6,TXCSUM_IPV6,HWSTATS,MEXTPG>
    ether 00:1b:21:dc:4d:db
    inet 10.10.10.3 netmask 0xffffff00 broadcast 10.10.10.255
    media: Ethernet autoselect (1000baseT <full-duplex>)
    status: active
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
igb1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
    options=4e527bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,WOL_MAGIC,VLAN_HWFILTER,VLAN_HWTSO,RXCSUM_IPV6,TXCSUM_IPV6,HWSTATS,MEXTPG>
    ether 2c:4d:54:43:58:80
    media: Ethernet autoselect
    status: no carrier
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
igb2: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
    options=4e527bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,WOL_MAGIC,VLAN_HWFILTER,VLAN_HWTSO,RXCSUM_IPV6,TXCSUM_IPV6,HWSTATS,MEXTPG>
    ether 2c:4d:54:43:58:81
    media: Ethernet autoselect
    status: no carrier
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
lo0: flags=1008049<UP,LOOPBACK,RUNNING,MULTICAST,LOWER_UP> metric 0 mtu 16384
    options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
    inet 127.0.0.1 netmask 0xff000000
    inet6 ::1 prefixlen 128
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
    groups: lo
    nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
tailscale0: flags=1008043<UP,BROADCAST,RUNNING,MULTICAST,LOWER_UP> metric 0 mtu 1280
    options=4080000<LINKSTATE,MEXTPG>
    inet 100.101.31.122 netmask 0xffffffff broadcast 100.101.31.122
    inet6 fd7a:115c:a1e0::8c32:1f7b prefixlen 48
    groups: tun
    nd6 options=101<PERFORMNUD,NO_DAD>
    Opened by PID 1801
AO2BbU3Q: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
    description: LAN
    options=10<VLAN_HWTAGGING>
    ether fe:67:47:f0:54:f6
    inet 10.10.10.1 netmask 0xffffff00 broadcast 10.10.10.255
    id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
    maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
    root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
    bridge flags=0<>
    member: vnet0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
            port 7 priority 128 path cost 2000000 vlan protocol 802.1q
    groups: bridge
    nd6 options=9<PERFORMNUD,IFDISABLED>
vnet0: flags=1008943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
    options=4080000<LINKSTATE,MEXTPG>
    ether fe:67:47:f0:54:f6
    hwaddr 58:9c:fc:10:12:42
    groups: tap
    media: Ethernet 1000baseT <full-duplex>
    status: active
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
    Opened by PID 4381

However, when I try to recreate it, it tells me it already exists:
Code:
root@bsd:~ # ifconfig bridge0 create
ifconfig: interface bridge0 already exists

But when I try to manipulate me, it tells me it doesn't exist:
Code:
root@bsd:~ # ifconfig bridge0 up
ifconfig: interface bridge0 does not exist

Is there any evident concept I'm missing?

EDIT: I suspect there is something related interface AO2BbU3Q, this seems to be "bridge0" perhaps? This was auto created by Sylve. is there a way for me to find out if AO2BbU3Q is indeed bridge0?
What would necessitate to make these changes permanent across restarts? would sysrc ifconfig_AO2BbU3Q="addm igb0" be enough or is there a more correct way?
 
Interesting. I think by default ifconfig with no -a only gives interfaces that are up, with -a gives all regardless of state. But since the diff is showing no changes then it's all up.
I don't know what to make of the ifconfig bridge0 stuff.
 
A bridge, like all others interfaces do not survive to a reboot. Those who come from a real device are recreated, but not the virtual ones. Unless, you use /etc/rc.conf or a script that runs at startup. That what Sylve does, certainly.

Often, the way to create a bridge with a custom name is:
Code:
brigename="$(ifconfig bridge create)"
ifconfig $bridgename name AO2BbU3Q

You can do the same in /etc/rc.conf with something like:
Code:
cloned_interfaces="bridge0"
ifconfig_bridge0_name="AO2BbU3Q"
But, bridge0 keeps used. IIRC, bridge0 will be available once you deleted AO2BbU3Q.
 
Back
Top