Reading hostname.if(5) and ifconfig(8) again, I understand that commands in 
hostname.if are executed by ifconfig. Of interest here is the ifconfig command 
"group"; hostname.if(8) does not say a word about this command, but it should 
work. Of special interest here is the group "egress". hostname.if(5) does not 
say a word about "egress"; this is not a critique, it is just a note on the 
fact. On its turn, ifconfig(8) mentions "egress", twice, only in reference to 
the command "group":
> a group could be used to create a hardware independent pf(4) ruleset (i.e. 
> not one based on the names of NICs) using existing (egress, carp, etc.) or 
> user-defined groups.

> The interfaces the default routes point to are members of the "egress" 
> interface group.

Does it work?

In the following case study, /etc/hostname.ix0 contains the command "group 
lan", and ix0 is assigned to group "lan" as a consequence. This means that the 
command "group" works in hostname.if. The command does not work for group 
"egress" however. Since em0 is wired to the gateway, em0 is the interface the 
default route points to, and therefore it should be assigned to egress. What 
follows is evidence of the fact that this does not happen.

Note that the interface ix0 is wired to the switch, its /etc/hostname.ix0 puts 
it in group "lan", it shows up in groups "lan" correctly, but it also shows up 
in group "egress" all by itself. You may say that perhaps the gateway has a 
wire to the switch as well. You are correct. The wire is needed because this is 
how this network works at this time. The OpenBSD firewall needs to be 
configured on the existing network before entering production mode in the 
existing network: the only change allowed will be the detachment of the wire 
that currently joins the gateway to the switch.

-----------------------------------------------------

192.168.1.1/24 is the LAN

192.168.1.1: gateway
192.168.1.4: em0 wire connected to gateway
192.168.1.5: em1 down
192.168.1.6: ix0 wire connected to switch
192.168.1.7: ix1 down

> ifconfig
lo0: flags=2008049<UP,LOOPBACK,RUNNING,MULTICAST,LRO> mtu 32768
   index 6 priority 0 llprio 3
   groups: lo
   inet 127.0.0.1 netmask 0xff000000
ix0: flags=2008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LRO> mtu 1500
   lladdr ac:1f:6b:6d:1e:18
   index 1 priority 0 llprio 3
   groups: lan egress
   media: Ethernet autoselect (10GSFP+Cu full-duplex,rxpause,txpause)
   status: active
   inet 192.168.1.6 netmask 0xffffff00 broadcast 192.168.1.255
ix1: flags=2008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LRO> mtu 1500
   lladdr ac:1f:6b:6d:1e:19
   index 2 priority 0 llprio 3
   groups: lan
   media: Ethernet autoselect
   status: no carrier
   inet 192.168.1.7 netmask 0xffffff00 broadcast 192.168.1.255
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
   lladdr ac:1f:6b:6d:1c:88
   index 3 priority 0 llprio 3
   media: Ethernet autoselect (1000baseT full-duplex,rxpause)
   status: active
   inet 192.168.1.4 netmask 0xffffff00 broadcast 192.168.1.255
em1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
   lladdr ac:1f:6b:6d:1c:89
   index 4 priority 0 llprio 3
   media: Ethernet autoselect (none)
   status: no carrier
   inet 192.168.1.5 netmask 0xffffff00 broadcast 192.168.1.255
   enc0: flags=0<>
   index 5 priority 0 llprio 3
   groups: enc
   status: active
pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33136
   index 7 priority 0 llprio 3
   groups: pflog

> netstat -r -n

Routing tables

Internet:
Destination        Gateway            Flags   Refs      Use   Mtu  Prio Iface
default            192.168.1.1        UGS        4       74     -     8 ix0
224/4              127.0.0.1          URS        0        4 32768     8 lo0
127/8              127.0.0.1          UGRS       0        0 32768     8 lo0
127.0.0.1          127.0.0.1          UHhl       3       85 32768     1 lo0
192.168.1/24       192.168.1.6        UCn        1       97     -     4 ix0
192.168.1/24       192.168.1.4        UCPn       0        2     -     4 em0
192.168.1/24       192.168.1.5        CPn        0        0     -     4 em1
192.168.1/24       192.168.1.7        CPn        0        0     -     4 ix1
192.168.1.1        14:49:bc:16:6c:a8  UHLch      1       39     -     3 ix0
192.168.1.4        ac:1f:6b:6d:1c:88  UHLl       0       43     -     1 em0
192.168.1.5        ac:1f:6b:6d:1c:89  UHLl       0        0     -     1 em1
192.168.1.6        ac:1f:6b:6d:1e:18  UHLl       0        7     -     1 ix0
192.168.1.7        ac:1f:6b:6d:1e:19  UHLl       0        0     -     1 ix1
192.168.1.255      192.168.1.6        UHb        0      642     -     1 ix0
192.168.1.255      192.168.1.4        UHPb       0        0     -     1 em0
192.168.1.255      192.168.1.5        HPb        0        0     -     1 em1
192.168.1.255      192.168.1.7        HPb        0        0     -     1 ix1

> route -n get default

   route to: 0.0.0.0
destination: 0.0.0.0
       mask: 0.0.0.0
    gateway: 192.168.1.1
  interface: ix0
 if address: 192.168.1.6
   priority: 8 (static)
      flags: <UP,GATEWAY,DONE,STATIC>
     use       mtu    expire
      74         0         0

Reply via email to