Download raw body.
veb(4) link1 breaks vport(4) connectivity to igc(4) ports
I am trying to create a sort of managed switch out of my OpenBSD box.
Effectively, my goal is to assign each IP to a NIC:
# Management
mang_if = "vport0"
mang_ip = "x.x.x.26"
# Home Network
home_if = "igc0"
home_ip = "x.x.x.27"
# Personal
fugu_if = "igc1"
fugu_ip = "x.x.x.28"
# Production
prod_if = "igc2"
prod_ip = "x.x.x.29"
# Buddy
andy_if = "igc3"
andy_ip = "x.x.x.30"
I did this with pf and veb(4). It works... sort of. With pf
running my ruleset and `ifconfig veb0 link1`, all the downlink
networks can reach the internet and are having a great time. But
when I ping or ssh to x.x.x.26 I get nothing. In fact, the
OpenBSD box doesn't have internet at all. Even if I `set skip on
lo` and `pass all`, ssh and ping to .26 fail. But if I
`ifconfig veb0 -link1`, all of a sudden I can touch interne
(even with the below pf.conf set). Is this a bug? Also, is there
a better approach?
edge# cat /etc/hostname.veb0
description "WAN Bridge"
add em0 # WAN
add igc0 # Home Network
add igc1 # Personal
add igc2 # Production
add igc3 # Buddy's Network
add vport0 # Host Management
link1
up
edge# cat /etc/pf.conf
# Home Network
home_if = "igc0"
home_ip = "x.x.x.27"
# Fugu Farm
fugu_if = "igc1"
fugu_ip = "x.x.x.28"
# Production
prod_if = "igc2"
prod_ip = "x.x.x.29"
# Andrew
andy_if = "igc3"
andy_ip = "x.x.x.30"
### Options
set skip on { lo vport0 }
set limit table-entries 1000000
# Normalize and de-fragment
match in all scrub (no-df random-id max-mss 1440)
### Meat and Potatos
block log all
# Allow Traffic on WAN Uplink
pass on em0
# Connect host stack to bridge
pass on vport0
pass in on $home_if from $home_ip
pass out on $home_if to $home_ip
pass in on $fugu_if from $fugu_ip
pass out on $fugu_if to $fugu_ip
pass in on $prod_if from $prod_ip
pass out on $prod_if to $prod_ip
pass in on $andy_if from $andy_ip
pass out on $andy_if to $andy_ip
edge# ls /etc/hostname.{em0,igc*} # All just contain "up"
/etc/hostname.em0 /etc/hostname.igc1 /etc/hostname.igc3
/etc/hostname.igc0 /etc/hostname.igc2
edge# cat /etc/hostname.vport0
inet x.x.x.26 255.255.255.0
up
veb(4) link1 breaks vport(4) connectivity to igc(4) ports