Есть рутер (даже 2, настроеных по аналогии) в один рутер входит инет с айпишником х.х.151.16, в другой инет с айпишником х.х.151.109 (дабы небыло поблем в работе с системой авторизации провайдера пришлось разделить на 2 сервера, оба на FreeBSD6.1)оба рутера соеденены по локальной сети с внутренним сервером windows 2003
Рутер 1: 192.168.250.1 на сервер с айпи 192.168.250.10
Рутер 2: 172.100.100.1 на сервер с айпи 172.100.100.10т.е на сервере внутреннем, под управление Windows 2003, подняты 2 интерфейса:
Ethernet adapter Lan1:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Intel(R) PRO/1000 EB
DHCP Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . . : 192.168.250.10
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.250.1
DNS Servers . . . . . . . . . . . : 192.168.250.1Ethernet adapter Lan2:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Intel(R) PRO/1000 EB
DHCP Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . . : 172.100.100.10
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 172.100.100.1
DNS Servers . . . . . . . . . . . : 172.100.100.10на внутреннем сервере win2003 запущены службы: http, ftp, rdp, mysqld, ircd И т.п.
Используется PF для организации доступа из ИНЕТА во внутреннюю методом NAT+RDR.
все работает, НО!!!!! периодически PF отрубается, точнее, отрубаются правила редиректа и ната. при падении (проверяется отстутствием сайта или доступом к какой либо внутренней службе на внутреннем сервере) если зайти на сам рутер, там интернет есть, при этом пинг до самих рутеров тоже есть.Настройка PF (/etc/pf.conf):
# $RuOBSD: pf-dual.conf,v 1.9 2006/04/22 17:25:57 andrey Exp $
#
# Пример настройки PF для маршрутизатора с двумя внешними каналами
# с трансляцией адресов и переадресацией некоторых сервисов во внутреннюю сеть.
#
# В данном примере также настраивается симметричная маршрутизация для
# правильного возврата пакетов в канал, с которого было инициировано
# соединение, независимо от настройки default route.
#
# WAN_1 WAN_2 LAN
# | | +------------+--------
# | | | |
# +-rl0----rl1----em0-+ +--------------+
# | | | 10.10.10.2 |
# +-------------------+ +--------------+# Внешние и внутренний интерфейсы.
#
ext_if_a = "bfe0"
int_if = "re0"# Шлюзы для каналов.
#
ext_gw_a = "x.x.151.1"# TCP/UDP сервисы, обслуживаемые маршрутизатором.
#
tcp_svc = "ssh smtp domain 8899 8314"
udp_svc = "domain 8899 8314"# TCP сервисы, обслуживаемые внутренним сервером.
#
tcp_rdr = "http ftp ftp-data rdp ircd mysqld 8021"
host_rdr = "192.168.250.10"# Таблицы черного и белого списков для spamd.
#
#table <spamd> persist
#table <spamd-white> persist# Выполнить нормализацию всех пакетов.
#
#scrub in# Транслировать внутренние адреса в (основной) адрес внешнего интерфейса.
#
#nat on $ext_if_a from !(self) -> ($ext_if_a:0)
nat on $ext_if_a from 192.168.250.10 -> ($ext_if_a:0)# Пропустить FTP через transparent FTP proxy.
#
rdr on $int_if proto tcp to !(self) port ftp -> 127.0.0.1 port ftp-proxy# Переадресовать TCP сервисы, обслуживаемые внутренним сервером.
#
rdr pass on $ext_if_a proto tcp from ($ext_if_a:network) to port { $tcp_rdr } \
-> $host_rdr
rdr on $ext_if_a proto tcp to port { $tcp_rdr } tag EXT_IF_A -> $host_rdr# Защита от IP spoofing.
#
#pass quick on { lo $int_if }
#antispoof quick for { lo $int_if }# По умолчанию блокировать входящий трафик на внешних интерфейсах.
# Для TCP соединений возвращать RST.
#
block in on { $ext_if_a }
block return-rst in on { $ext_if_a } proto tcp# Фтп чего то там правило, чтобы работало видимо!
pass in on $ext_if_a inet proto tcp from port ftp-data to ($ext_if_a) user proxy flags S/SA keep state
# Направить исходящие пакеты в канал, соответствующий адресу источника.
#
pass out route-to ($ext_if_a $ext_gw_a) from ($ext_if_a) to !(self:network) \
keep state# Установить маршрут для ответа на входящие пакеты для переадресованных
# TCP сервисов.
#
pass in reply-to ($ext_if_a $ext_gw_a) proto tcp flags S/SA tagged EXT_IF_A \
keep state# Разрешить входящие ICMP ping пакеты, обслуживаемые UDP и TCP сервисы.
#
pass in on $ext_if_a reply-to ($ext_if_a $ext_gw_a) inet proto icmp \
icmp-type echoreq code 0 keep state
pass in on $ext_if_a inet proto icmp from ($ext_if_a:network) \
icmp-type echoreq code 0 keep state
pass in on $ext_if_a reply-to ($ext_if_a $ext_gw_a) proto udp \
to port { $udp_svc } keep state
pass in on $ext_if_a proto udp from ($ext_if_a:network) to port { $udp_svc } \
keep state
pass in on $ext_if_a reply-to ($ext_if_a $ext_gw_a) proto tcp \
to port { $tcp_svc } flags S/SA keep state
pass in on $ext_if_a proto tcp from ($ext_if_a:network) to port { $tcp_svc } \
flags S/SA keep state# Разрешить входящие TCP соединения для FTP proxy.
#
pass in on $ext_if_a reply-to ($ext_if_a $ext_gw_a) proto tcp \
to port > 49151 flags S/SA user proxy keep state
pass in on $ext_if_a proto tcp from ($ext_if_a:network) to port > 49151 \
flags S/SA user proxy keep state#############################################################
# Блокировка доступа по RDP всем и разрешение тока довереным#
#############################################################
# x.x.211.48, 82.193.139.2 - user1 (user1 Work) #
# x.x.211.36 - user2 #
# x.x.151.109, x.x.211.156 #
#############################################################table <hosts_rdp> {x.x.211.156, x.x.151.109, x.x.211.48, x.x.211.36, 82.193.139.2}
pass in quick on $ext_if_a proto tcp from <hosts_rdp> to any port rdp
block in quick on $ext_if_a proto tcp from any to any port rdp###############################################################
# Блокировка доступа по SSH всем и разрешение тока довереным #
# x.x.211.48, 82.193.139.2 - user1 (Netic Work) #
# x.x.151.109, x.x.211.156 - Servers #
###############################################################table <hosts_sshd> {x.x.211.156, x.x.151.109, x.x.211.48, 82.193.139.2}
pass in quick on $ext_if_a proto tcp from <hosts_sshd> to any port ssh
block in quick on $ext_if_a proto tcp from any to any port ssh###############################################################
# Блокировка доступа по MySQL всем и разрешение тока довереным#
# x.x.211.48 - user1 #
# x.x.211.36 - user2 #
###############################################################table <hosts_mysqld> {x.x.211.156, x.x.151.109, x.x.211.48, x.x.211.36}
pass in quick on $ext_if_a proto tcp from <hosts_mysqld> to any port mysqld
block in quick on $ext_if_a proto tcp from any to any port mysqld###############################################################
# Авторизатор #
###############################################################pass in quick on $ext_if_a proto tcp from x.x.151.1 to any
pass out quick on $ext_if_a proto tcp from any to x.x.151.1 port 8899###############################################################
# Баны #
###############################################################block in quick on $ext_if_a proto tcp from x.x.212.87 to any
block in quick on $ext_if_a proto tcp from any to x.x.212.87
конфиг RC.CONF:local_startup="/usr/local/etc/rc.d"
gateway_enable="YES"
hostname="ns"
keymap="ru.koi8-r"
ipv6_enable="NO"
sshd_enable="YES"
usbd_enable="YES"
sendmail_enable="NO"
inetd_enable="YES"#LOCAL
ifconfig_re0="inet 192.168.250.1 netmask 255.255.255.0"#INET 151.16
ifconfig_bfe0="inet х.х.151.16 netmask 255.255.255.128"данные IFCONFIG:
bfe0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
inet6 fe80::2e0:18ff:fed0:5814©e0 prefixlen 64 scopeid 0x1
inet x.x.151.16 netmask 0xffffff80 broadcast x.x.151.127
ether xx:xx:xx:xx:xx:xx
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=18<VLAN_MTU,VLAN_HWTAGGING>
inet6 fe80::20c:76ff:feae:b793%re0 prefixlen 64 scopeid 0x2
inet 192.168.250.1 netmask 0xffffff00 broadcast 192.168.250.255
ether 00:0c:76:ae:b7:93
media: Ethernet autoselect (1000baseTX <full-duplex>)
status: activeкак видно, юзается дефолтный опенбсдшный конфиг. все работает.
но падения постоянные, который не могу понять от чего происходят уже замучали :(как можно определить в чем проблема?
nat on $ext_if_a from $int_if -> ($ext_if_a:0)rdr pass on $ext_if_a proto tcp from ($ext_if_a:network) to port { $tcp_rdr } -> $host_rdr
rdr on $ext_if_a proto tcp to port { $tcp_rdr } tag EXT_IF_A -> $host_rdr
pass in reply-to ($ext_if_a $ext_gw_a) proto tcp flags S/SA tagged EXT_IF_A keep stateукоротил правила до токого, но все равно наедается