Есть локалка, со своим рабочим шлюзом, который для меня недоступен.
Мне для выделен безлим инета для одного ip. На машинке стоит фря FreeBSD 7.4-PRERELEASE
на которой крутиццо squid на 3128 порту. Также прикручен ipfw с ядерным натом (можно указать гейтом), и несколько чел могут пользоваться безлимитным инетом. Окромя указанного есть также удаленные подсети, к которым также можно достучаться если гейтом указан ip. Хотелось бы пикрутить пайпы, но чето запутолся. Юзается одна сетевуха и один адресс, алиасы низя.
Вот рабочий вариант без пайпов, все работает ок
вот что наваял, неработает + тормозит дико при подключении ssh, в чем трабла?#!/bin/sh
sysctl net.inet.ip.fw.one_pass=1
FwCMD="/sbin/ipfw -q"
IP="192.168.0.77"
Lan="rl0"
${FwCMD} -f flush
${FwCMD} -f pipe flush
#ACL IP
. /etc/rc.table
#LIST sublan
. /etc/rc.lan
${FwCMD} add check-state
${FwCMD} add allow ip from any to any via lo0
${FwCMD} add deny ip from any to 127.0.0.0/8
${FwCMD} add deny ip from 127.0.0.0/8 to any
#vsem dostup k servake po SSH
${FwCMD} add allow ip from any to ${IP} ssh
${FwCMD} add allow tcp from any to ${IP} 3128 keep-state
${FwCMD} add allow ip from "table(1)" to "table(2)" via ${Lan}
${FwCMD} nat 1 config if ${Lan} reset same_ports
${FwCMD} add nat 1 ip from "table(1)" to any via ${Lan}
${FwCMD} add nat 1 ip from any to ${IP} via ${Lan}
${FwCMD} add allow ip from ${IP} to any keep-state
${FwCMD} add allow ip from any to "table(1)" via ${Lan}
${FwCMD} add deny ip from any to any via ${Lan}
если закоментить 180 правило, то ssh тормозить перестает, но инете всерано нету. По тспдампу вижу что пакеты уходят в инет и приходят, но только до шлюза. В чем трабла?#!/bin/sh
sysctl net.inet.ip.fw.one_pass=0
FwCMD="/sbin/ipfw -q"
IP="192.168.0.77"
Lan="rl0"
${FwCMD} -f flush
${FwCMD} -f pipe flush
. /etc/rc.table
. /etc/rc.lan
#vsem dostup k servake po SSH u k squid
${FwCMD} add 100 allow ip from any to me ssh in
${FwCMD} add 101 allow ip from me ssh to any out
${FwCMD} add 110 allow tcp from any to me 3128 in
${FwCMD} add 110 allow tcp from me 3128 to any out
#razreshaem vhodyachiy traf ot klientov
${FwCMD} add 120 allow ip from "table(1)" to not "table(2)" in via ${Lan}
#reshem skorost` 512Kbit/s dlya kazhdogo klienta
${FwCMD} pipe 1 config gred 0.002/8/16/0.1 bw 512Kbit/s queue 32
${FwCMD} queue 1 config pipe 1 queue 32 mask src-ip 0xffffffff gred 0.002/8/16/0.1
${FwCMD} pipe 2 config gred 0.002/8/16/0.1 bw 512Kbit/s queue 32
${FwCMD} queue 2 config pipe 2 queue 32 mask dst-ip 0xffffffff gred 0.002/8/16/0.1
${FwCMD} add 130 allow ip from any to any via lo0
${FwCMD} add 140 deny ip from any to 127.0.0.0/8
${FwCMD} add 150 deny ip from 127.0.0.0/8 to any
#otprovlyaem na podseti
${FwCMD} add 170 allow ip from "table(1)" to "table(2)" via ${Lan}
#puskaem v inet
${FwCMD} nat 1 config if ${Lan} reset same_ports
${FwCMD} nat 2 config deny_in
#redirect iz ineta
${FwCMD} add 180 skipto 1200 ip from not "table(1)" to me in
#v inet
${FwCMD} add 1100 queue 1 ip from "table(1)" to not "table(2)" out
${FwCMD} add 1110 nat 1 ip from "table(1)" to not "table(2)" out
${FwCMD} add 1120 skipto 1500 ip from any to any
#iz ineta
${FwCMD} add 1200 nat 2 ip from not "table(1)" to me in
${FwCMD} add 1210 queue 2 ip from any to "table(1)" in
${FwCMD} add 1220 skipto 1500 ip from any to any
${FwCMD} add 1500 allow ip from any to any via ${Lan}
${FwCMD} add 1530 allow ip from any to me via ${Lan}
${FwCMD} add 1500 allow ip from "table(1)" to any via ${Lan}
${FwCMD} add 1530 allow ip from any to "table(1)" via ${Lan}
${FwCMD} add deny log ip from any to any via ${Lan}