В общем на данный момент ситуцция такая сложилась: Имею машину с FreeBSD 6.2, с тремя интерфейсами (подробности ниже в конфиге). Один интерфейс - ADSL модем, второй - городская локалка, третий - моя рабочая машинка под виндой. Требуется: выпустить в интернет свой комп и пару компов из локалки, и пустить свой комп в локалку. А также дать доступ отовсюду к фтп и вэб-серверу на одной машине со шлюзом (но это пока не главное). Поднято 2 ната - 8668 наружу и 8778 внутрь. В принципе всё работает, но есть некоторые проблемы: Во-первых, у клиента интернет периодически подвисает на некоторое время, потом опять начинает работать, но происходит это довольно часто! Хотя я сам сижу в инете с рабочего компа через тот же НАТ, что и клиент, но у меня всё работает без проблем. Могу предположить что проблема в pipe, через который сидит клиент, или хз... Может быть нужно добавить какие-нибудь очереди, задержки и т.п., или просто divert переставить в другое место? (конфиг см. ниже) И во-вторых, вопрос, как выпустить в инет клиента из другой подсети? (в конфиге он обозначен 192.168.2.2) Изначально у ВСЕХ пользователей локалки такие настройки: IP 192.168.Х.У маска 255.255.255.0 шлюз 192.168.Х.254, и прописан статич. маршрут в остальные подсети: 192.168.0.0 mask 255.255.0.0 192.168.Х.254 (где Х-номер подсети) При этом юзер из другой подсети не может прописать маршрут в инет через мой шлюз, т.к. его винда начинает ругаться, что мол шлюз находится вне его подсети.... Мы же пробовали с клиентом настраивать его так: IP 192.168.2.2 маска 255.255.0.0 шлюз 192.168.1.5 (мой шлюз), и кроме статич. маршрута в остальные подсети: 192.168.0.0 mask 255.255.0.0 192.168.2.254 дописали ещё один: 0.0.0.0 mask 0.0.0.0 192.168.1.5 (в интернет через мой шлюз) При этом вся локалка у клиента работает замечательно, мой шлюз пингуется, но ipfw show даже не показывает его активности, например правило 600 (см. конфиг выше) - молчит.... Так в чём же может быть проблема? Вот мой конфиг на данный момент, и заодно подскажите, что тут можно ещё подправить:###Variables ipfw="/sbin/ipfw -q" iif="rl0" #In interface oif="rl1" #Out interface mif="rl2" #Home network interface iip="192.168.1.5" #In IP oip="10.0.0.3" #Out IP mip="10.0.1.1" #Home network IP ournet="192.168.0.0/16" #Our local network mynet="10.0.1.0/24" #My host network myhost="10.0.1.2" #My host loopback="lo0" #Local interface uprefix="192.168" #Users prefix ###------------------------------------------------- ###Clear rules ${ipfw} -f flush ${ipfw} -f pipe flush ${ipfw} -f queue flush ###------------------------------------------------- ###Clients ${ipfw} -f table 1 flush ${ipfw} table 1 add ${uprefix}.1.1 ${ipfw} table 1 add ${uprefix}.2.2 ###------------------------------------------------- ${ipfw} add 100 check-state ###------------------------------------------------- ###Далее идут все reject и deny: ###Block netbios via out interface ###Antiscanner/antihacker и т.п. ..... ###............................................. ###------------------------------------------------- ###Server rules ${ipfw} add 500 allow ip from any to any via ${loopback} ${ipfw} add 510 deny log ip from any to 127.0.0.0/8 ${ipfw} add 520 deny log ip from 127.0.0.0/8 to any ${ipfw} add 530 allow tcp from any to me 21,22,80,65530-65535 ${ipfw} add 540 allow tcp from me to any 21,80,65530-65535 keep-state ${ipfw} add 550 allow udp from me to any domain keep-state ###------------------------------------------------- ###Dummynet: ${ipfw} pipe 1 config bw 64Kbit/s ${ipfw} add 600 pipe 1 ip from ${uprefix}.1.1 to any out via ${oif} ${ipfw} add 610 pipe 1 ip from any to ${uprefix}.1.1 out recv ${oif} xmit ${iif} ${ipfw} add 600 pipe 1 ip from ${uprefix}.2.2 to any out via ${oif} ${ipfw} add 610 pipe 1 ip from any to ${uprefix}.2.2 out recv ${oif} xmit ${iif} ###------------------------------------------------- ###NAT ${ipfw} add 700 deny log ip from any to not ${oip} in via ${oif} ${ipfw} add 710 divert 8668 ip from ${myhost} to any out via ${oif} ${ipfw} add 710 divert 8668 ip from table\(1\) to any out via ${oif} ${ipfw} add 720 divert 8668 ip from any to ${oip} in via ${oif} #Out for my host: ${ipfw} add 730 allow ip from ${myhost} to any in via ${mif} ${ipfw} add 740 allow ip from ${oip} to any out via ${oif} ${ipfw} add 750 allow ip from any to ${myhost} in via ${oif} ${ipfw} add 760 allow ip from any to ${myhost} out via ${mif} #Out for clients: ${ipfw} add 730 allow ip from table\(1\) to any in via ${iif} #From oip to internet - allowed by rule 740 in line 63 ${ipfw} add 750 allow ip from any to table\(1\) in via ${oif} ${ipfw} add 760 allow ip from any to table\(1\) out via ${iif} #In for my host: ${ipfw} add 700 deny log ip from any to ${mynet} in via ${iif} ${ipfw} add 710 divert 8778 ip from ${myhost} to any out via ${iif} ${ipfw} add 720 divert 8778 ip from ${ournet} to ${iip} in via ${iif} #From my host to our net via mif - allowed (to all) by rule 730 in line ${ipfw} add 740 allow ip from ${iip} to ${ournet} out via ${iif} ${ipfw} add 750 allow ip from ${ournet} to ${myhost} in via ${iif} #ip from our net to my host out via mif - allowed by rule 760 in line 66 ###------------------------------------------------- ###ICMP ${ipfw} add 800 allow icmp from any to me #ICMP from me to any - allowed by rules 740 in lines 64,77 ###------------------------------------------------- ${ipfw} add 65534 deny log ip from any to any
|