在設定虛擬主機的內(LAN)/外(WAN) Mapping時,
不知道各位有沒有發現,Cyberoam會在LAN to LAN的規則中,自動建立對應的loopback規則?
這些系統自動建立的loopback規則有什麼作用?
如果少了它,又會有什麼影響?
順子將以如下的環境範例做個簡單的解說。
↑內部192.168.1.101主機mapping一個外部IP 123.123.123.2做虛擬主機,對外服務。
在缺少loopback規則的情況下,內部LAN電腦連結虛擬主機的外部IP會怎樣?
- 當內部LAN區域電腦192.168.1.7連結虛擬主機的外部IP 123.123.123.2時,
因為Cyberoam中已建有Virtual Host Mapping Table,它知道虛擬主機123.123.123.2其實就是LAN端主機192.168.1.101,
所以流量不會往WAN送,直接往LAN端送給192.168.1.101。
- 但是當服務主機192.168.1.101要回傳訊息時,它會發現來源端IP 192.168.1.7跟自己相同網段,
所以封包不會經由Cyberoam回傳,而是直接送給同屬LAN的192.168.1.7。
- 這樣的流程有什麼問題?
對發起端192.168.1.7的電腦而言,我明明是要連到123.123.123.2這個外部IP,
結果卻是由內部IP 192.168.1.101產生回應,要跟我發生曖昧的關係?
這太詭異了吧?
所以發起端192.168.1.7拒絕了來自192.168.1.101的回應訊息,
造成服務連結失敗...
由Cyberoam的角度來看,這是一種不對稱路由,
在預設條件下,不對稱路由也會被Cyberoam封鎖,無法完成交談。
在有loopback規則的情況下,內部LAN電腦連結虛擬主機的外部IP又會如何運作?
Cyberoam自動建立的loopback規則,主要是修正上述回應IP不一致的問題,
讓同樣區域的電腦連到虛擬主機的外部IP時,先將發起端IP進行NAT包裝,再連到外部IP,以解決此IP不一致的問題;
同時也沒有不對稱路由的情形發生。
以下我們來看看它的運作流程。
- 當內部LAN區域電腦192.168.1.7連結虛擬主機的外部IP 123.123.123.2時,
由於目的區域為LAN,透過loopback規則進行NAT封裝後,會以Cyberoam的LAN介面IP 192.168.1.254,連向虛擬主機123.123.123.2,
也就是內部的192.168.1.101。
- 服務主機192.168.1.101要回傳訊息時,由於是192.168.1.254向其發起連線,
所以服務主機會回傳給192.168.1.254,進入Cyberoam。
此時Cyberoam會把來源IP 192.168.1.101轉為虛擬主機IP 123.123.123.2。
- Cyberoam轉換來源端IP後,會進行NAT Table查詢,發現發起端IP為192.168.1.7。
- 然後再把回應訊息轉接給真正的發起端IP 192.168.1.7。
最後在發起端192.168.1.7看到的結果是,
連到123.123.123.2這個外部虛擬主機IP,訊息也成功的由123.123.123.2回傳,
兩者一致,服務連結成功∼
由以上的解說,各位應該可以發現,這個Cyberoam自動建立的loopback規則,
就是為了解決虛擬主機建立後,內部IP連到虛擬主機的外部IP,所發生的回應IP不匹配的問題。
那如果環境再複雜一點,
Cyberoam中,同時有LAN、WAN及DMZ三個類型的區域,並在DMZ區建立虛擬主機時,
又會發生什麼狀況呢?
首先,Cyberoam會自動建立DMZ to DMZ的loopback規則,所以DMZ to外部虛擬IP不會有回應IP不一致的問題。
但是,LAN端電腦在連向DMZ區虛擬主機的外部IP時,就會出現回應IP不一致的狀況了!
連結外部IP 123.123.123.2,卻是由DMZ區IP 192.168.1.101進行回應?
解決方法
必需在Cyberoam上手動建立LAN to DMZ的loopback規則,
讓LAN端IP能以NAT後的IP,向虛擬主機的外部連結,這樣才能解決回應IP不一致的問題。
♥順子老婆的網拍,請多關照∼
If you don't like something, change it.
If you can't change it, change your attitude.
Don't complain!
|