Merhaba ;
Arkadaslar birkaç gündür pf ile policy routing deniyorum. Bir test ortamım
var topoloji şöyle ;
Sunucu : openbsd 4.3 stable
1. int : adsl
2.int : leased line
3.int: : dmz (real subnet mevcut bu bacak için nat yapmıyorum )
4.int : internal 5 adet vlan tagged virtual interfaces ( vlan1.....vlan5)
Bu sunucu üzerinde pf, squid transparent ve ftp-proxy çalıştırıyorum.
Default gateway adsl modemi verdim.
Policy route yaptım vlan interfacelerden gelenleri adsl e dmz networkünü de
leased line a yönlendirdim.
Squid de tcp_outgoing_address dmz networkunu leased line subnetinden bir ip
ile eşleştirdim.
Bu şekilde iç networktekiler squid üzerinden internete çıkıyorlar çünkü
default gw adsl. Fakat dmz internete çıkamıyor ( https, dns çalışıyor )
çünkü squid beni adsl den gönderiyor. Squid den dmz için çıkan trafiğin
leased line yönlendirilmesini için birkaç deneme yaptım ama başaramadım.
Keza öyle aynı sorun ftp içinde geçerli. İç network ftp ye rahatlıkla
çıkıyor dmz yine gidemiyor. Sunucuya default gw girmeden sadece pf ile tüm
yönlendirmeleri yapmayı denedim. Bu seferde caching nameserverı route
edemedim. :)
Aşağıda yaptığım configleri yolluyorum;
pf.conf
-------
ll_if="sk0"
ll_ip="212.212.1.1"
ll_gw="212.212.1.2"
dmz_if="sk1"
dmz_net="100.100.100.0/24"
dmz_ip="100.100.100.1"
dsl_if="rl0"
dsl_ip="10.1.1.1"
dsl_gw="10.1.1.2"
dsl_vlan1_ip="10.1.1.10"
dsl_vlan2_ip="10.1.1.20"
dsl_vlan3_ip="10.1.1.30"
dsl_vlan4_ip="10.1.1.40"
dsl_vlan5_ip="10.1.1.50"
all_loc_if ="{ vlan1, vlan2, vlan3, vlan4, vlan5 }"
nat on $dsl_if from <all_net> to any -> $dsl_if
rdr pass on $all_loc_if proto tcp to port ftp -> $lo_ip port 8021
rdr pass on $dmz_if proto tcp to port ftp -> $lo_ip port 8021
rdr pass on $all_loc_if proto tcp to port www -> $lo_ip port 3128
rdr pass on $dmz_if proto tcp to port www -> $lo_ip port 3128
block in log all
block out log all
pass out log on $ll_if inet proto tcp from $ll_if to any flags S/SA modulate
state
pass out log on $ll_if inet proto udp from $ll_if to any keep state
pass out log on $ll_if inet proto icmp from $ll_if to any icmp-type echoreq
keep state
pass out log on $dsl_if inet proto tcp from $dsl_if to any flags S/SA
modulate state
pass out log on $dsl_if inet proto udp from $dsl_if to any keep state
pass out log on $dsl_if inet proto icmp from $dsl_if to any icmp-type
echoreq keep state
pass in log on $dmz_if route-to($ll_if $ll_gw) inet proto tcp from $dmz_net
to any port https flags S/SA keep state
pass in log on $dmz_if route-to($ll_if $ll_gw) inet proto udp from $dmz_net
to any port domain keep state
pass in log on $dmz_if route-to($ll_if $ll_gw) inet proto icmp from $dmz_net
to any icmp-type echoreq keep state
pass in log on $dmz_if inet proto tcp from $dmz_net to $lo_ip port ftp flags
S/SA keep state
pass in log on $dmz_if inet proto tcp from $dmz_net to $lo_ip port 3128
flags S/SA keep state
pass in log on vlan1 route-to($dsl_if $dsl_gw) inet proto tcp from $int_net
to any port https flags S/SA keep state
pass in log on vlan1 route-to($dsl_if $dsl_gw) inet proto udp from $int_net
to any port domain keep state
pass in log on vlan1 route-to($dsl_if $dsl_gw) inet proto icmp from $int_net
to any icmp-type echoreq keep state
pass in log on vlan1 inet proto tcp from $int_net to $lo_ip port ftp flags
S/SA keep state
pass in log on vlan1 inet proto tcp from $int_net to $lo_ip port 3128 flags
S/SA keep state
squid.conf
-----------
http_port 127.0.0.1:3128 transparent
acl dmz src 100.100.100.0/255.255.255.0
tcp_outgoing_address 212.212.1.1 dmz
Bu şekilde squid sorunumu nasıl çözebilirim.
Teşekkürler
Kolay gelsin
ismail
FreeBSD 6 kitabi: http://www.acikakademi.com/catalog/freebsd6
---------------------------------------------------------------------
Listeye soru sormadan once lutfen http://ipucu.enderunix.org sitesine bakiniz.
Cikmak icin, e-mail: [EMAIL PROTECTED]
Liste arsivi: http://news.gmane.org/gmane.org.user-groups.bsd.turkey