serveum Posted October 5, 2008 Posted October 5, 2008 Такая ситуация, есть сервак на freebsd, в нем 3 сетевухи(1-адсл, 2-локал провайдер с анлим ua-ix, 3-локалка с абонами) цель-скрипт который бы выкачивал с инета список ua-ix сетей и делал обновление в правила stg + роутинг + в ipfw для анлимных абонов тоже изменял(необходимо исключать сети, т.е. если абон работает на 512 кб/с анлим пакете, доступ к ua-ix нада чтоб был 100мбит). Эта задача реальна?
_Om_ Posted October 5, 2008 Posted October 5, 2008 запускаем по крону cat uaix #!/usr/bin/perl # Update UA-IX network. use LWP; $file="/etc/stargazer/rules"; open(FD,">$file") or die "Error open file"; my $ua=LWP::UserAgent->new(); $ua->agent("PerlUA/0.1"); my $url="http://colocall.net/ua/prefixes.txt"; my $document=$ua->request(HTTP::Request->new(GET => $url)); if ($document->is_success){ open(FD,">$file") or die "Error open file"; $uaix=($document->content); @uaix = split /\n/,$uaix; }else{ print ("Error get UA-IX list"); exit; } print (FD "ALL 192.168.2.0/24 DIR0\n"); ваша локал сеть foreach $ip (@uaix){ print (FD "ALL $ip DIR1\n"); Украина } print (FD "ALL 0.0.0.0/0 DIR2\n"); все остальное system ("/usr/bin/killall -1 stargazer");
serveum Posted October 5, 2008 Author Posted October 5, 2008 Спасибо, хочу попросить расписать хоть немного что какая команда делает, вдруг не заработает хоть буду понимать где нада исправить
serveum Posted October 5, 2008 Author Posted October 5, 2008 Вот мой скрипт на таблицу для фаервола, что необходимо изменить для того чтоб файл с инета обновлялся, например с сайта http://colocall.net/ua/prefixes.txt
serveum Posted October 5, 2008 Author Posted October 5, 2008 #!/bin/sh ipfw table 1 flush cat /usr/local/etc/uaix/ua-list.txt | while read T1; do ipfw table 1 add ${T1} done
serveum Posted October 6, 2008 Author Posted October 6, 2008 запускаем по крону cat uaix #!/usr/bin/perl # Update UA-IX network. use LWP; $file="/etc/stargazer/rules"; open(FD,">$file") or die "Error open file"; my $ua=LWP::UserAgent->new(); $ua->agent("PerlUA/0.1"); my $url="http://colocall.net/ua/prefixes.txt"; my $document=$ua->request(HTTP::Request->new(GET => $url)); if ($document->is_success){ open(FD,">$file") or die "Error open file"; $uaix=($document->content); @uaix = split /\n/,$uaix; }else{ print ("Error get UA-IX list"); exit; } print (FD "ALL 192.168.2.0/24 DIR0\n"); ваша локал сеть foreach $ip (@uaix){ print (FD "ALL $ip DIR1\n"); Украина } print (FD "ALL 0.0.0.0/0 DIR2\n"); все остальное system ("/usr/bin/killall -1 stargazer"); К сожалению не работает ваш скрипт, что только не пробовал менять у меня начинается скрипты с #!/bin/sh папка к правилам /usr/local/stargazer/etc/rules менял не помогло погите кто нить с идеями, только немножко расписав, уровень в программировании не велик
_Om_ Posted October 6, 2008 Posted October 6, 2008 Скрипт написан не на баше а на перле возможно что-то нехватает у вас
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now