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


Cevap