2018年2月12日 星期一

vCD95,設定,vSLB、X-Forwarded-For(IIS+http)

當user經過SLB後
連線將被導到Web Server
因為都是經過SLB去分散流量
這時Web Server的Log會記錄的,都會是 SLB的VIP
所以Log內的user Source IP都會是同一個IP
有些想要利用Web Server內Log的管理者
將無法識別user從何而來,進而將無從分析客戶群

一、了解 X-Forwarded-For
二、定義名詞
三、在SLB的設定
四、在VM的設定(Windows + IIS)
五、功能驗證

一、了解 X-Forwarded-For
要處理這個況狀
就是要使用X-Forwarded-For
幾乎不論是各家的硬體SLB廠商或是軟體式的SLB
都會有此功能

但使用此功能
在SLB端需額外設定外,大部分的設定動作
都會在Web Server端

在IIS中
有個紀錄連線的功能
紀錄者來源連線的很多資訊
如: 客戶端的Browser、作業系統、從何連結過來、來源IP....等等

當然
也可以外加你所想要的資訊

但是
這個欄位資訊,要如何定義,且由誰提供
再由誰接這個資訊放到log的哪個欄位
定義>>由SLB去定義
提供>>由SLB提供
誰接>>IIS接
欄位>>IIS去設定

從架構上
SLB會是最靠近user端的
他會有第一手的user的資訊
他會將一些資訊再轉給底下的RIP

二、定義名詞
但在討論這個部分前
我們先理解一下要看懂這個Lab前
該先瞭解的名詞用語,這樣才會有個mapping

user:
真正的service使用者

RIP:
真正在提服務的Server(如: 各個http Service 的Server)

VIP:
user會先連到此IP

SLB:
主要就是將VIP轉導到RIP
(若有多個RIP則可選則分散的演算機制,此Lab暫不討論)

從雲端網路規劃的架構上來看
因為都會有個Private IP去 NAT Public IP的特性
因此在架構上
可以分為 外部的SLB 和 內部的 SLB
可以簡單的理解為
外部的SLB
VIP的RIPs所帶的IP都為Public IP
內部的SLB
VIP的RIPs所帶的IP都為Private IP
此Lab以內部的SLB為主

三、在SLB的設定
先看一下NAT的設定
這樣比較好了解這個Lab到底在做些什麼~
IP NAT:
192.168.100.201 < > 113.196.227.201 >>RIP(黑色框)
192.168.100.203 < > 113.196.227.203 >>VIP(藍色框)

RIP集區pool-1
僅為測試使用,所以設定集區內只有1台RIP
白話文就是當透過VIP進來的連線,也都只會導向唯一1台的RIP上
此RIP為Private IP
VM1_vNIC1: 192.168.100.201

VIP的部分為192.168.100.203
此VIP底下選擇的是集區是pool-1











所使用的SLB Service Port
為HTTP,即為: 80 port

由以上的圖
帶各位了解此Lab的SLB設定
其實,不論SLB的介面如何
各家的SLB大同小異,這些都是基本功能
也是基本的概念

四、在VM的設定(Windows + IIS)
接下來的設定
就都會在 Web Server端了
我測試的OS為Windows 2008 R2 Server
預設的IIS為7.0版本
但在預設的IIS 7.0版本中,並沒有"進階的紀錄"的功能
需要透過另外下載的方式來安裝

下載以下元件

IIS Advanced Logging - 64 位元

https://www.microsoft.com/zh-tw/download/details.aspx?id=7211

儲存

儲存到自己的電腦上吧

執行

安裝
就無腦一直安裝就好

完成

請重啟你的IIS
以及重新開啟 伺服器管理員

在 Advanced Logging 圖示上
按下滑鼠右鍵,選擇【開啟功能】

選擇右邊的【啟用Advanced Logging】

選擇【編輯紀錄欄位】

新增欄位

輸入以下資訊
欄位識別碼: ClientSourceIP
類別: Default
來源類型: 要求標頭
來源名稱: X-Forwarded-For

確定

選擇【編輯紀錄定義】

拉到下方,選擇【選取欄位】

找到【ClientSoutceIP】,並將他 勾選

套用

重新啟動 IIS,就完成囉

五、功能驗證
隨便開個瀏覽器
去連這個VIP
此台模擬客戶端的Public IP為180.217.143.91

查看log檔案
右邊 【檢視紀錄檔】

用文字檔
開啟這個log檔案

有沒有看到
這個log檔案,有紀錄到真正客戶端的來源IP囉
180.217.143.91

沒有留言:

張貼留言