作者 主題: freebsd 上有哪套可以用來作網域名稱轉服務主機  (閱讀 6741 次)

0 會員 與 1 訪客 正在閱讀本文。

mizma2k

  • 可愛的小學生
  • *
  • 文章數: 2
    • 檢視個人資料
freebsd上有數個 nat/firewall 的ports,請問可以利用哪套來依 domain name 轉服務主機呢?
我知道ip可行,但是目前是對外1個固ip,內部有數台主機分別扛不同 domain name,使用的服務以httpd、ftpd、mail為主。
付張圖來解釋好了。
這個環境與一般常見的 server load balance 略有不同,一般是server pool 可以一起負載同一個服務,而這裡是依照從哪的domain name進到NAT,再由NAT將該request轉到負責該domain name主機上。

2008.12.26 17:42 update
已知的有 ipfw,ipfilter,pf(這套最厲害了),而利用 pf 所做出來的 pfSense可以作到 Inbound/Outbound load balance(真糟我怎麼自問自答啊!?)。
以 pf 為例:(節錄片段)
ext_if = "em0"
web_servers = "{ 192.168.10.20, 192.168.10.21 }"
rdr on $ext_if proto tcp from any to any port 80 -> $web_servers round-robin sticky-address
看過的例子都是用 ip,不知道有沒可以直接用網域名稱的?
« 上次編輯: 2008-12-26 17:58 由 mizma2k »

johnpupu

  • 憂鬱的高中生
  • ***
  • 文章數: 194
    • 檢視個人資料
用natd 來轉port ?

hoyo

  • 榮譽博士
  • 俺是博士!
  • *****
  • 文章數: 4051
  • 性別: 男
  • 有需要的時候,學習就不會分階段。
    • 檢視個人資料
    • 樂咖黑電腦學習網
這個不是 DNS 的功能嗎?
受人與魚,不如授人與漁
上海自來水來自海上;倫敦好奇人奇好敦倫

johnpupu

  • 憂鬱的高中生
  • ***
  • 文章數: 194
    • 檢視個人資料
他機器擋在內部
dns 應該是不能轉

sitediy

  • 活潑的大學生
  • ***
  • 文章數: 426
    • 檢視個人資料
natd   recompile kernel

哪套??

mizma2k

  • 可愛的小學生
  • *
  • 文章數: 2
    • 檢視個人資料
natd   recompile kernel
哪套??
I know I have to recompile kernel,我想問的是,有無方法作到利用 domain name 來redirect service。

johnpupu

  • 憂鬱的高中生
  • ***
  • 文章數: 194
    • 檢視個人資料
我想你可能可以試試pf
不過我不確定他可以做到你要的
或許你可以試試 再和大家分享

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5396
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
這個與 NAT 完全沒關係吧. 因為 NAT 是處理 ip based 的東西, 不會管到 name based 上頭的東西.

http 比較簡單, 用 apache 或 squid 來做 proxy 就可以.
mail 全部在 NAT 那台收下來再轉送.
ftp 應該完全做不到 (協定上頭完全不會指名是連到那個 domain 上頭, 無法使用 name based 的 virtualhost 方式).

johnpupu

  • 憂鬱的高中生
  • ***
  • 文章數: 194
    • 檢視個人資料
我之前有用很笨的做法....
一個就是 nat 那台BIND 很多ip
然後 透過 每個ip 的 port 來轉 到後端機器

而twu2 大說的
httpd 的部份 你也可以設 virtual host
然後前面擋一台haproxy 透過 haproxy 去分流導到你後端的機器...


mephi

  • 憂鬱的高中生
  • ***
  • 文章數: 102
    • 檢視個人資料
這個DNS自己就可以搞定啦

假設你對外的ip是1.2.3.4, 內部切成四個網段:
domain 111.aaa.com 192.168.1.x/24
domain 222.aaa.com 192.168.2.x/24
domain 333.aaa.com 192.168.3.x/24
domain 444.aaa.com 192.168.4.x/24

那只要你把DNS掛在NAT上, 下面管轄111 222 333 444 四個zone
記得nat 內部網卡要把alias搞好就可以了
NAT 外部ip: 1.2.3.4
NAT 內部ip 192.168.0.254 alias 192.168.1.254 192.168.2.254 192.168.3.254 192.168.4.254
至於內部各zone要不要再設DNS 就看個人喜好了

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5396
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
樓上的要不要自己去試看看呢?
你的 DNS 對外查的結果都是那個外部 IP, 那你的 NAT 要怎麼知道連進來到這個 IP 的封包, 要往後頭那個內部 IP 送呢?