
Есть внутренняя сеть, которая быстро растет и которую "навырост" поделили на крупные сегменты по 8К адресов. Есть нормальный пул белых адресов, из которого выделили сколько-то штук для организации шлюзования, типа каждой сети по отдельному шлюзу.
Наличествует FBSD 7.2 с NAT'ом и ipfw. Настроили мы ее таким образом, чтобы на интерфейсе em1 приземлялись шлюзы по умолчанию от локальных подсетей, а на em0 - белые адреса:
Код: Выделить всё
bi# ifconfig
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=1db<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,POLLING,VLAN_HWCSUM,TSO4>
ether 00:х.х:96
inet 87.х.х.254 netmask 0xffffff00 broadcast 87.х.х.255
inet 87.х.х.253 netmask 0xffffff00 broadcast 87.х.х.255
inet 87.х.х.252 netmask 0xffffff00 broadcast 87.х.х.255
inet 87.х.х.251 netmask 0xffffff00 broadcast 87.х.х.255
inet 87.х.х.250 netmask 0xffffff00 broadcast 87.х.х.255
inet 87.х.х.235 netmask 0xffffff00 broadcast 87.х.х.255
media: Ethernet autoselect (1000baseTX <full-duplex>)
status: active
em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=db<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,POLLING,VLAN_HWCSUM>
ether 00:х.х:94
inet 172.16.63.254 netmask 0xffffe000 broadcast 172.16.63.255
inet 172.16.95.254 netmask 0xffffe000 broadcast 172.16.95.255
inet 172.16.127.254 netmask 0xffffe000 broadcast 172.16.127.255
inet 172.16.159.254 netmask 0xffffe000 broadcast 172.16.159.255
inet 172.16.191.254 netmask 0xffffe000 broadcast 172.16.191.255
media: Ethernet autoselect (100baseTX <half-duplex>)
status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
Код: Выделить всё
ipnat
# NAT for US 1
map em0 172.16.32.0/19 -> 87.х.х.254/32
map em0 172.16.32.0/19 -> 87.х.х.254/32 proxy port ftp ftp/tcp
map em0 172.16.32.0/19 -> 87.х.х.254/32 portmap tcp/udp auto
# NAT for US 2
map em0 172.16.64.0/19 -> 87.х.х.253/32
map em0 172.16.64.0/19 -> 87.х.х.253/32 proxy port ftp ftp/tcp
map em0 172.16.64.0/19 -> 87.х.х.253/32 portmap tcp/udp auto
# NAT for US 3
map em0 172.16.96.0/19 -> 87.х.х.252/32
map em0 172.16.96.0/19 -> 87.х.х.252/32 proxy port ftp ftp/tcp
map em0 172.16.96.0/19 -> 87.х.х.252/32 portmap tcp/udp auto
# NAT for US 4
map em0 172.16.128.0/19 -> 87.х.х.251/32
map em0 172.16.128.0/19 -> 87.х.х.251/32 proxy port ftp ftp/tcp
map em0 172.16.128.0/19 -> 87.х.х.251/32 portmap tcp/udp auto
# NAT for US 5
map em0 172.16.160.0/19 -> 87.х.х.250/32
map em0 172.16.160.0/19 -> 87.х.х.250/32 proxy port ftp ftp/tcp
map em0 172.16.160.0/19 -> 87.х.х.250/32 portmap tcp/udp auto
# NAT for US 20
map em0 192.168.100.0/32 -> 87.х.х.235/32
map em0 192.168.100.0/32 -> 87.х.х.235/32 proxy port ftp ftp/tcp
map em0 192.168.100.0/32 -> 87.х.х.235/32 portmap tcp/udp auto
Код: Выделить всё
bi# ipfw list 0-115
00100 check-state
00101 tee ... ip from any to any via em0
00102 tee ... ip from any to any via em1
00103 allow ip from any to any via lo0
00104 allow ip from 87.х.х.254 to any via em0
00105 allow ip from any to 87.х.х.254 via em0
00106 allow ip from 87.х.х.253 to any via em0
00107 allow ip from any to 87.х.х.253 via em0
00108 allow ip from 87.х.х.252 to any via em0
00109 allow ip from any to 87.х.х.252 via em0
00110 allow ip from 87.х.х.251 to any via em0
00111 allow ip from any to 87.х.х.251 via em0
00112 allow ip from 87.х.х.250 to any via em0
00113 allow ip from any to 87.х.х.250 via em0
00114 allow ip from 87.х.х.235 to any via em0
00115 allow ip from any to 87.х.х.235 via em0
Код: Выделить всё
01462 allow ip from 172.16.160.9 to any
01463 allow ip from any to 172.16.160.9
01464 pipe 257 ip from 172.16.160.23 to any
01465 pipe 256 ip from any to 172.16.160.23
Мы, как это видно по вышеприведенным конфигурациям, сделали
inet 87.х.х.235 netmask 0xffffff00 broadcast 87.х.х.255,
и честно провесили на него
map em0 192.168.100.0/32 -> 87.х.х.235/32
map em0 192.168.100.0/32 -> 87.х.х.235/32 proxy port ftp ftp/tcp
map em0 192.168.100.0/32 -> 87.х.х.235/32 portmap tcp/udp auto
Но вот когда мы попытались поднять на em1 алиас 192.168.100.1/24, юзеры, имевшие шлюзом этот адрес, не смогли до инета достучаться. Хотя каждому было честно сделано
01448 pipe 257 ip from 192.168.100.146 to any
01449 pipe 256 ip from any to 192.168.100.146
01450 allow ip from 192.168.100.146 to any
01451 allow ip from any to 192.168.100.146
При этом исходящие allow и pipe показывают увеличивающиеся счетчики - пакеты ползут. А назад не возвращаются.
Блинский нафиг. Свернул себе весь мозг. Братцы, посоветуйте, куда копнуть? Чем продиагностировать?