Не открывается бОльшая часть сайтов через второго провайдера у локалки. tcpdump-ом пакеты вижу в обе стороны, но их мало (по сравнению с тем, сколько их при нормальной работе). С рутера телнетом получаю ответы, fetch-ем страницы качает. Через основного прова все ок. Пробовал Dir-100 роутером, там такой беды нет. Напрямую к виндовому и freebsd компу - проблемы нет. С mtu игрался, на длинке ставил то же значение что и на рутере, страницы стабильно открываются. Фаерфол ipfw, клиент mpd5, kernel nat, каналы переключаю ipfw add ip setfib-ом.
Основное тело фаервола.
Код: Выделить всё
#!/bin/sh
# 10000-60000 - is rules for WAN/VPN and so. One tousand per connection
# 60000-65000 - is nat rules
# 65100 - is allow rule for nated
# 59900 - is deny rule for not skipped
int0="em0"
ext0="re0"
ext1="re1"
whitelist="table(1)"
vpnlanlist="table(2)"
skip="skipto 60000"
lan="10.10.10.0/24"
ipfw -q flush
ipfw -q pipe flush
ipfw -q queue flush
ipfw -q add 5 allow tcp from any to me 22
ipfw -q add 6 check-state
ipfw -q add 10 ${skip} tcp from any to any established
ipfw -q add 20 allow ip from any to any via lo0
ipfw -q add 30 allow ip from any to any via ${int0}
ipfw -q add 40 allow ip from any to any via ${ext0}
ipfw -q add 50 allow ip from any to any via ${ext1}
ipfw -q add 60 allow gre from any to any
ipfw -q add 70 allow tcp from me to any setup
ipfw -q add 80 ${skip} tcp from ${whitelist} to any
ipfw -q add 85 ${skip} tcp from any to ${whitelist}
ipfw -q add 90 ${skip} udp from ${whitelist} to any
ipfw -q add 95 ${skip} udp from any to ${whitelist}
ipfw -q add 100 ${skip} tcp from ${lan} to any setup
ipfw -q add 110 ${skip} tcp from any 20,21 to any
ipfw -q add 120 ${skip} udp from any 53, 123 to any
ipfw -q add 130 ${skip} udp from any to any 53, 123
ipfw -q add 140 allow icmp from any to me icmptype 8
ipfw -q add 150 ${skip} icmp from any to any icmptype 0,3,4,8,11,12
# not skipped, then deny
ipfw -q add 59900 deny log ip from any to any
# nated, then allow
ipfw -q add 65100 allow ip from any to any
Код: Выделить всё
#!/bin/sh
ipfw -q nat 1 config if ${1} same_ports reset
ipfw -q add 60000 nat 1 ip from any to any via ${1}
Код: Выделить всё
#!/bin/sh
setfib 1 route add default ${4}
ipfw -q nat 2 config if ${1} same_ports reset
ipfw -q add 61000 nat 2 ip from any to any via ${1}
Код: Выделить всё
startup:
set user user password admin
set console self 127.0.0.1 5005
set console open
set web self 0.0.0.0 5006
set web open
default:
load pppoe_client_pri
load pppoe_client_sec
pppoe_client_pri:
create bundle static B2
set iface route default
set iface up-script /usr/local/etc/mpd5/scripts/pppoe0_up
set iface down-script /usr/local/etc/mpd5/scripts/pppoe0_down
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
create link static L2 pppoe
set link action bundle B2
set auth authname user
set auth password pass
set link max-redial 0
set link mtu 1460
set link keep-alive 10 60
set pppoe iface re1
set pppoe service ""
open
pppoe_client_sec:
create bundle static B3
# set iface route default
set iface up-script /usr/local/etc/mpd5/scripts/pppoe1_up
set iface down-script /usr/local/etc/mpd5/scripts/pppoe1_down
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
create link static L3 pppoe
set link action bundle B3
set auth authname user
set auth password pass
set link max-redial 0
set link mtu 1460
set link keep-alive 10 60
set pppoe iface re0
set pppoe service ""
open
