Снаружи в шлюз входят ext_if_87 = "vlan1" - ISP1 и ext_if_172 = "vlan3" - ISP2. ext_gw_87 = "87.87.87.225"-default GW.
Необходимо сделать, чтоб часть юзеров сетки (table <na_ISP2> ) ходила в инет через ISP2 и имела доступ в локалку ISP1. Вся остальная сеть (my_net = "192.168.0.0/24") ходила через ISP1 и имела доступ в локалку ISP2.
Вот сам конфиг:
Код: Выделить всё
ext_if_87 = "vlan1"
ext_if_172 = "vlan3"
ext_if_89 = "vr0"
int_if = "xl0" #Local
media = "192.168.0.3"
dcc = "192.168.0.6"
my_net = "192.168.0.0/24"
ext_gw_87 = "87.87.87.225"
ext_gw_172 = "172.17.48.1"
##############
#Таблицы
##############
#Таблица внешних интерфейсов
table <ext_if> { vlan1 vlan3 vr0 }
### те, кто сидит на ISP2
table <na_ISP2> { 192.168.0.22 .......}
### локалка ISP1
table <ISP1> { 10.0.0.0/8 .......}
### локалка ISP2
table <ISP2> { 10.1.2.0/24..........}
# Нормализация трафика
scrub in
scrub in on { $ext_if_87 $ext_if_172 $ext_if_89 } no-df random-id
##########################
################ Нат
##########################
nat pass on $ext_if_87 from <na_ISP2> to <ISP1> -> ($ext_if_87)
nat pass on $ext_if_172 from <na_ISP2> to any -> ($ext_if_172)
nat pass on $ext_if_172 from $my_net to <ISP2> -> ($ext_if_172)
nat pass on $ext_if_87 from $my_net to any -> ($ext_if_87)
#####################################
################ RDR 87.87.87.87
#####################################
#Редиректы к Медиаархиву через http
rdr pass on $ext_if_87 proto tcp from any to $ext_if_87 port 80 -> $media
#Редирект к Медиасерверу по https
rdr pass on $ext_if_87 proto tcp from any to $ext_if_87 port 555 -> $media
#Редирект ssh к Медиасерверу
rdr pass on $ext_if_87 proto tcp from any to $ext_if_87 port 23 -> $media port 22
#Редирект к Радио
rdr pass on $ext_if_87 proto tcp from any to $ext_if_87 port 8000 -> 192.168.0.20
rdr pass on $ext_if_87 proto tcp from any to $ext_if_87 port 8001 -> 192.168.0.59
#Редирект к DCC хабу
rdr pass on $ext_if_87 proto tcp from any to $ext_if_87 port 411 -> $dcc
rdr pass on $ext_if_87 proto tcp from any to $ext_if_87 port 1209 -> $dcc
rdr pass on $ext_if_87 proto udp from any to $ext_if_87 port 1209 -> $dcc
##Редиректы к медиа архиву через FTP
rdr on $ext_if_87 proto tcp from any to $ext_if_87 port 660 -> $media
#Редиректы пассивных портов
rdr pass on $ext_if_87 proto tcp from any to $ext_if_87 port 50051:50091 -> $media
############################################
#################### RDR 172.172.172.172
############################################
#Редиректы к Медиаархиву через http
rdr pass on $ext_if_172 proto tcp from any to $ext_if_172 port 80 -> $media
#Редирект к DCC хабу
rdr pass on $ext_if_172 proto tcp from any to $ext_if_172 port 411 -> $dcc
rdr pass on $ext_if_172 proto tcp from any to $ext_if_172 port 1209 -> $dcc
rdr pass on $ext_if_172 proto udp from any to $ext_if_172 port 1209 -> $dcc
##Редиректы к медиа архиву через FTP
rdr pass on $ext_if_172 proto tcp from any to $ext_if_172 port 669 -> $media
rdr pass on $ext_if_172 proto tcp from any to $ext_if_172 port 50051:50091 -> $media
#####################################
################ PASS 87.87.87.87
#####################################
## Игнорируем петлевой интерфейс
pass quick on {lo0}
## Запрещаем все входящие соединения на интерфейсе одного из провайдеров(ext_if_87 = vlan1)
block in on $ext_if_87
# Разрешение на VPN
pass in on $ext_if_87 inet proto tcp from any to $ext_if_87 port 1723 keep state
pass in on $ext_if_87 inet proto gre from any to $ext_if_87 keep state
#Разрегение на вход для пассивных портов ftp к 606
pass in on $ext_if_87 proto tcp from any to $ext_if_87 port 606
pass in on $ext_if_87 proto tcp from any to $ext_if_87 port 50045><50050
## И еще разок пинги.
pass in on $ext_if_87 inet proto icmp from any to $ext_if_87 keep state
## Разрешаем все исходящие пакеты
pass out on $ext_if_87 keep state
#####################################
################ PASS 172.172.172.172
#####################################
## Запрещаем все входящие соединения на интерфейсе одного из провайдеров($ext_if_172= vlan3)
block in on $ext_if_172
# Разрешение на VPN
pass in on $ext_if_172 inet proto tcp from any to $ext_if_172 port 1723 keep state
pass in on $ext_if_172 inet proto gre from any to $ext_if_172 keep state
## И еще разок пинги.
pass in on $ext_if_172 inet proto icmp from any to $ext_if_172 keep state
## Разрешаем все исходящие пакеты
pass out on $ext_if_172 keep state
#####################################
################ PASS 192.168.0.2 - внутренний интерфейс
#####################################
pass out on $int_if keep state
pass in on $int_if keep state
#######################################
########### Роутинг
######################################
#Роутинг
pass in on $int_if route-to ($ext_if_172 $ext_gw_172) from $my_net to <ISP2>
pass in on $int_if route-to ($ext_if_172 $ext_gw_172) from <na_ISP2> to any
pass in on $int_if route-to ($ext_if_87 $ext_gw_87) from <na_ISP2> to <ISP1>
pass in on $int_if from $my_net to (self) keep state
Все остальные компьютеры внутренней сети $my_net=192.168.0.2/24 нормально ходят в инет через ISP1, но при доступе к локалке второго провайдера (<ISP2>) проходит тот же самый один пинг и тишина..... Tracert снова показывает пустой экран =(
Как я уже написал дефолтный маршрут на GW ISP1 (87.87.87.225)
Код: Выделить всё
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
0 link#1 UC 0 0 em0 =>
default 87.87.87.225 UGS 0 14590 vlan1
87.87.87.224/28 link#7 UC 0 0 vlan1
87.87.87.225 00:16:9c:0d:9c:00 UHLW 2 0 vlan1 927
127.0.0.1 127.0.0.1 UH 0 67 lo0
172.17.48/22 link#8 UC 0 0 vlan3
172.17.48.1 00:20:ed:61:27:d4 UHLW 1 0 vlan3 136
192.168.0 link#2 UC 0 0 xl0
192.168.0.2 00:01:02:cc:bb:aa UHLW 1 16 lo0
192.168.0.3 00:11:2f:bd:2d:52 UHLW 1 231 xl0 131
192.168.0.4 00:0c:42:03:0a:00 UHLW 13 3 xl0 464
192.168.0.20 00:01:02:cc:bd:15 UHLW 1 7387 xl0 1031
192.168.0.22 00:01:02:cc:bd:15 UHLW 1 211 xl0 988
192.168.0.23 00:e0:4c:21:a0:02 UHLW 1 186 xl0 1048
192.168.0.26 00:17:9a:47:9b:38 UHLW 1 19 xl0 974
192.168.0.47 00:0a:eb:ab:59:d9 UHLW 1 49 xl0 1193
192.168.0.50 00:05:1c:1e:5c:d2 UHLW 1 14 xl0 1146
192.168.0.75 00:0a:eb:ab:d5:6f UHLW 1 18 xl0 1046
192.168.0.85 00:90:4b:48:ed:01 UHLW 1 4 xl0 1184
192.168.0.90 00:c0:0c:b0:8f:8f UHLW 1 3273 xl0 932
192.168.0.154 00:c0:df:14:38:92 UHLW 1 44 xl0 1153
192.168.0.160 00:50:ba:73:57:4a UHLW 1 42 xl0 1074
Я бы понял если пакеты вообще не шли....
Но что означает если только один пинг проходит,а остальные нет ?
Предистория разбора полетов вот здесь