Код: Выделить всё
PF:
ext_if="igb0"
int_if="igb1"
nat on $ext_if inet from 192.168.123.27 to any -> x.x.x.x (alias1)
rdr on $ext_if inet from any to x.x.x.x -> 192.168.123.27
rc.conf
ifconfig_igb0="inet y.y.y.y/22"
ifconfig_igb0_alias0="inet y.y.y.y/22"
ifconfig_igb0_alias1="inet x.x.x.x/24"
ifconfig_igb0_alias2="inet x.x.x.x/24"
ifconfig_igb1="inet 192.168.253.252/24"
vlans_igb1="123"
ifconfig_igb1_123="inet 192.168.123.252/24"
defaultrouter="x.x.x.x"
static_routes="local"
route_local="-net 192.168.0/8 192.168.253.254"
x.x.x.x разные выделенные белые адреса для выделенного ната пользователям.
ifconfig -a
igb0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=400b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM, VLAN_HWTSO>
ether 00:24:45:81:у5:7b
inet y.y.y.y netmask 0xfffffc00 broadcast y.y.y.255
inet y.y.y.y netmask 0xfffffc00 broadcast y.y.y.255
inet x.x.x.x netmask 0xffffff00 broadcast x.x.x.255
inet x.x.x.x netmask 0xffffff00 broadcast x.x.x.255
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
igb1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=400b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM, VLAN_HWTSO>
ether 00:24:45:81:у5:7e
inet 192.168.253.252 netmask 0xffffff00 broadcast 192.168.123.255
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
pflog0: flags=100<PROMISC> metric 0 mtu 33152
pfsync0: flags=0<> metric 0 mtu 1500
syncpeer: 0.0.0.0 maxupd: 128
ipfw0: flags=8800<SIMPLEX,MULTICAST> metric 0 mtu 65536
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
inet 127.0.0.1 netmask 0xff000000
igb1.123: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:26:55:80:b5:7b
inet 192.168.123.252 netmask 0xffffff00 broadcast 192.168.123.255
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
vlan: 123 parent interface: igb1
Пробовал так, но не срабатывает. Возможно тут надо использовать skipto или что то конкретное out,in,via, xmit,recv + интерфейсы?
ipfw pipe 1 config bw 1024Kbit/s mask dst-ip 0xffffffff
ipfw pipe 2 config bw 1024Kbit/s mask src-ip 0xffffffff
ipfw add 1 pipe 1 ip from any to table\(1,1024\) via
ipfw add 2 pipe 2 ip from table\(2,1024\) to any via
ipfw table 1 add x.x.x.x 1024
ipfw table 2 add x.x.x.x 1024
P.S. queue не нужны, просто шейпинг.