當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去設定
儲存
儲存到自己的電腦上吧
執行
安裝
就無腦一直安裝就好
完成
請重啟你的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
從架構上
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
沒有留言:
張貼留言