顯示文章

這裡允許您檢視這個會員的所有文章。請注意, 您只能看見您有權限閱讀的文章。


文章 - adersun

頁: 1 [2]
31
多謝各位的指導....
我後來的做法是用類似 DMZ 的做法....
在 gateway 上多加一片網路卡 eth2
eth2 接到 squid 機器, squid 設成 10.0.0.1
所有 192.168.0.0/24 port 80 request to eth1 redirect 到 eth2 的 10.0.0.1 port 8080
eth0 也是 10.0.0.0/24 的 gateway forward 出去!!
現在已經 ok 了, 運作相當好....!!

多謝各位大大指教, 讓我對網路的觀念又更進一步....

萬分感謝!!

32
引述: "twu2"

怎麼一下是 192.xxx 一下是 10.xxx...
PREROUTING 的 chain 之前是空的嗎 ?

語法看起來沒錯, 作法看起來也沒錯.
我們以前有做過類似的作法, 應該是可行的.

利用 telnet, tcpdump 試一下, 看看 squid 的 log 有沒有收到吧.


1. sorry, 實際上是 192.xxx .... 之前只是因為 10.xxx 打起來比較快  :wink:
2. squid log 確實有收到, 但都是 fail log. 用 netstat 看也看的到 squid 在 sync... 所以不知道到底哪裡出錯....
PREROUTING 的 chain 我有寫 drop 的規則, 擋掉一些 port (smb, ldap, mysql....以及 1024~65535 的 port. ) 但我已把 port 80 及 8080 的規則拿掉了, 所以應該不會是這個問題, 而且那些 chain 是寫在 eth0 上, eth1 的 chain 是空的.
3. 我想現在的問題大概是出在 iptables 的寫法, squid 大概沒問題.....
以前的是 cisco router, 所以 Linux gateway 方面一直沒機會玩, 所以是新手....

感謝您的回答及幫忙!!

引述: "zman"

實務上REDIRECT的做法

1.靠CISCO ROUTER的 WCCP來運作(效能較差)
2.靠L4 SWITCH來運作(效能好)
3.靠防火牆來運作(硬體式的效能好)
4.靠你的LINUX/BSD NAT的功力來運作

以HTTP TRANSPARENT CACHE來說
一般在你的GATEWAY上要作的事就是讓NAT指令中
所有的來源到任何目的之封包只要TCP PORT 為 80
就把它轉向到TCP PORT 3128的SQUID來接手
SQUID的設定原則上就是你寫的部分
只要SQUID接手後不用擔心它知不知道怎麼收送的問題
倒是花點時間去了解CACHE的空間規劃問題比較實際


我以前有做過類似的做法 ( 前公司 ) 是用 Cisco router 作 redirect, 用WCCP 也只是用在當 proxy down 時, client 還是可以 pass through router 網路還是可以通, 所以其實效能還好.
cache 空間規劃方面到不必擔心, 之前因為不必擔心 client 出不去的問題而試過很多種組合, 現在用的是 128x128 4個2G partition, 分兩個7200rpm disk, 512Mb ram, 所以效能應該還好.....
小弟現在是別無選擇.....我目前沒有高價位的 Cisco router & L4 switch, 更沒有天價的硬體防火牆, Linux 的功力也不高(修行中..., 只是K 了一些 documents 而已..., 大家都知道有證照並不一定功力高, 以我的 case 就是這樣....低手...見笑了...BSD 是七八年前在學校玩的, 那就更不用提了...) 所以只能發問請教各位高手...

這兒長久以來是我學習 Linux 的好地方, 看人發問看人回答看到各位的經驗談....因為功力不夠, 所以只能在一旁觀看, 進而提昇一些對於 Linux 的能力...遇到問題也是自己先 try 先找 document man page, 在這兒先搜尋先前的文章, 從來也沒有發問過, 這次發問是因為真的試不出來又急迫, 而squid 網站上的 documents 只有寫到 squid & gateway 在同一個機器上的 transparent proxy 方案, 所以可以請各位大大多幫忙嗎??

謝謝!!

33
引述: "twu2"
1. gateway 那台機器的 PREROUTING 要把 10.0.0.5 那台機器排除. 否則 all -> 10.0.0.5 -> gateway -> 10.0.0.5 ... 這樣應該出不去.
2. squid 的 ftp proxy 並不能真正取代 ftp 的功能. 全部轉過去可能有點問題.

如果真的不行, 先把 squid 裝在 gateway 那台吧.


1. 我試過這樣寫 :

iptables -t nat -A PREROUTING -p tcp -i eth1 -s ! 192.168.0.100 --dport 80 -j DNAT --to-destination 192.168.0.100:8080
還是不行, 不知是不是語法錯誤?? 請教各位先輩該要如何寫呢 ??

2. 謝謝指教, 我今天多 K 了一下 squid-cche.org 的 documents, 果然如您說...

3. 因為有種種因素, 無法將 squid 機器放在 gateway 機器上.... 因為小弟長出國出差, 小不在時無人可照顧 Linux 機器, 如果 gateway 當機那就@#X@&* (因曾經有過經驗是台電突然斷電, 造成 ext3 file system 出問題, 然後我人在國外電話中又講不清楚....)
所以小地想了一個笨方法 : 作一張光是 gateway 的磁片, 如果當機, 只要有人可以放進磁片重新開機就是一台光作 router 的機器了.... 至少大家都可以用網路....

感謝大家幫忙......

多謝!!

34
請問各位大大....

今天一台 linux gateway :
eth0 => 123.123.234.12 真實 IP 對外
eth1 => 10.0.0.1

現另有一 linux 機器 run tranparent squid proxy
eth0 => 10.0.0.5

請問在 linux gateway 上 iptables 規則要怎樣寫才達到 :

10.0.0.0/24 內部網路的所有機器要聯外的 www, ftp port 全部redirect 到10.0.0.5 的 transparent proxy ?

BTW : proxy port 8080 ...squid 全部設定工作正常(在 IE 設 proxy option 工作正常)....
squid 也這樣設了:
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

試過在作 gateway 的那台機器上:
iptables -t nat -A PREROUTING -p tcp -i eth1 -s 10.0.0.0/24 --dport 80 -j DNAT --to-destination 10.0.0.5:8080

不成功!!
在 run squid 的那台機器上是否需要設定些什麼呢 ??

gateway 的 iptables forward 正常....
 
一直試不出來, 請各位幫忙!!! 快被老闆 K 了..... 當初是我建議用 Linux 不用 Sun 的.........

謝謝!!

頁: 1 [2]