08-17-2010 11:20 AM
Hi All,
I have a pair of CSS 11500 content services switches fronting our IIS web servers farm. On these IIS servers the IIS logs are enabled for our websites. However, when I analyze the IIS logs the client IP is always the IP address of the load balancer, and not the real client IP.
Can anyone help me configure the content switch to send the real IP, or is there some other method which will allow IIS to log the real client IP?
Any advice/pointers would be much appreciated.
Thanks,
Pradeep
Solved! Go to Solution.
08-18-2010 04:14 PM
Before changing the equipment, you should check if you have any "group" in your config.
If your servers are using the CSS as default gateway, those groups could be safely removed and the CSS will stop changing the client ip address.
Gilles.
08-19-2010 01:38 PM
If you really have no group command with "add destination service" then the client traffic will go to the server with the client ip as the source. The service won't get any other traffic with the css address except for the keepalive
keepalive Agents1-Prodkeepalive
type http
port 80
method get
ip address y.y.y.y
uri "/CSservice/KeepAlive.html"
retryperiod 20
maxfailure 1
frequency 60
active
this keepalive request will get to the server with the circuit ip of the CSS as the source.
08-17-2010 11:38 AM
This is most likely due to having source groups with add destination services configured (each service in each content rule is added to a source group as add destination service). This is done when the topology is such that the server's default gateway is not the CSS and/or the server's return traffic does not pass back through the CSS to be natted. A source group with the services added as destination services will nat the client's source IP to the group's VIP when that service is selected from a LB decision; this forces the server's response to pass through the CSS. So, the topology needs to be re-examined if you require the client's source IP to be maintained. The server's response must go through the CSS either by setting the server's default gateway as the CSS or using PBR on a Cat switch.
On the ACE we have the ability to insert an http header such as x-forwarded-for with the client ip then with an isapi filter on the IIS server you can log client ip's rather than the source ip.
08-18-2010 09:46 AM
Hi,
Thanks for the response. We do have all our servers configured to use the CSS as their default gateway. I also have the services defined for each server 93 total) and then I have added those three services to my content rule.
You mention the ACE and the ability "to insert an http header such as x-forwarded-for with the client ip then with an isapi filter on the IIS server". Could you please elaborate and let me know where I can obtain those tools/filter?
Thanks Again,
Pradeep
08-18-2010 10:14 AM
HI There,
Just as a side note, you will also need a parameter map to insert the ip in every packet, otherwise you get the server guys moaning that the forwarding aint working
08-18-2010 04:14 PM
Before changing the equipment, you should check if you have any "group" in your config.
If your servers are using the CSS as default gateway, those groups could be safely removed and the CSS will stop changing the client ip address.
Gilles.
08-19-2010 05:31 AM
If the servers use the css as default gateway , nake sure you don't have a group with "add destination service" for the services involved in this load balance flow. Then the CSS will deliver the traffic to the server with the client ip as the source address.
code example for the filter (which will compile with visual studio) can be found at
You can find an IIS7 plug in at
google isapi x-forwarded it is a very popular topic.
08-19-2010 01:16 PM
Hi,
Thank you both for the suggestions. I do not have any group command related to these three servers. What I have are one service rule for the sorry server, 3 Service rules, 3 keepalive rules and then the content rule as follows:
service Agents-ProdSorry
ip address z.z.z.z
port 80
protocol tcp
redundant-index 72
active
keepalive Agents1-Prodkeepalive
type http
port 80
method get
ip address y.y.y.y
uri "/CSservice/KeepAlive.html"
retryperiod 20
maxfailure 1
frequency 60
active
service Agents1-Prod
ip address y.y.y.y
protocol tcp
keepalive type named Agents1-Prodkeepalive
redundant-index 49
active
content Agents-Prod
vip address x.x.x.x
protocol tcp
port 80
balance weightedrr
add service Agents1-Prod
add service Agents2-Prod
add service Agents3-Prod
primarySorryServer Agents-ProdSorry
redundant-index 64
advanced-balance sticky-srcip
sticky-inact-timeout 20
active
Clearly it sounds like it should work, but I must be doing something else incorrectly.
Thanks,
Pradeep
08-19-2010 01:38 PM
If you really have no group command with "add destination service" then the client traffic will go to the server with the client ip as the source. The service won't get any other traffic with the css address except for the keepalive
keepalive Agents1-Prodkeepalive
type http
port 80
method get
ip address y.y.y.y
uri "/CSservice/KeepAlive.html"
retryperiod 20
maxfailure 1
frequency 60
active
this keepalive request will get to the server with the circuit ip of the CSS as the source.
08-20-2010 08:16 AM
That was it. I was just looking at the keepalive requests in the log and assumed everything else would alos have the CSS's address. It is keeping up the real client IP.
Thank you very much for the knowledge and the pointer.
Thanks,
Pradeep
10-26-2010 11:14 PM
I am facing the same problem.
Could you please help me too...
I have a webserver configured on the content switch & now when I check the IIS logs, all the IP addresses are of the content switch instead of the client machines.
I am attaching my configure for you to review
CSS-GLOBAL# sh runn
!Generated on 10/26/2010 23:14:04
!Active version: sg0810106
configure
!*************************** GLOBAL ***************************
dns primary 172.21.1.13
dns secondary 192.168.0.50
ssl associate rsakey eglobal eglobal.pem
ssl associate cert eglobal-selfsigned eglobal.selfsigned.pem
ssl associate rsakey glopedia glopedia.pem
ssl associate cert glopedia glopedia.selfsigned.pem
ssl associate cert eglobal-versign e-global-verisign.pem
ssl associate cert glopedia-verisign glopedia-verisign.pem
ssl associate cert EGlobal-Web EGlobal-Web.pem
ssl associate cert EGlobal-Web-Chain EGlobal-Web.pem
ssl associate cert Glopedia-Web-Chain Glopedia-Web.pem
ftp-record conf 172.16.143.43 shahim des-password 1bnc2hnduhmgjend /
ip route 0.0.0.0 0.0.0.0 172.21.21.1 1
ip route 172.21.1.0 255.255.255.0 172.21.21.4 1
ip route 172.16.0.0 255.255.0.0 172.21.21.4 1
ip route 192.168.0.0 255.255.255.0 172.21.21.4 1
!************************* INTERFACE *************************
interface e1
description "To Global Switch Foundary"
!************************** CIRCUIT **************************
circuit VLAN1
ip address 172.21.21.49 255.255.255.0
!*********************** SSL PROXY LIST ***********************
ssl-proxy-list SSL-Proxy-List
ssl-server 51
ssl-server 51 rsakey eglobal
ssl-server 51 vip address 172.21.21.51
ssl-server 51 cipher rsa-with-rc4-128-md5 172.21.21.51 80 weight 10
ssl-server 51 cipher rsa-with-rc4-128-sha 172.21.21.51 80 weight 8
ssl-server 51 cipher rsa-export-with-rc4-40-md5 172.21.21.51 80 weight 5
ssl-server 50
ssl-server 50 rsakey glopedia
ssl-server 50 vip address 172.21.21.50
ssl-server 50 cipher rsa-with-rc4-128-md5 172.21.21.50 80 weight 10
ssl-server 50 cipher rsa-with-rc4-128-sha 172.21.21.50 80 weight 8
ssl-server 50 cipher rsa-export-with-rc4-40-md5 172.21.21.50 80 weight 5
ssl-server 50 urlrewrite 1 *
ssl-server 51 urlrewrite 1 *
ssl-server 51 rsacert EGlobal-Web-Chain
ssl-server 50 rsacert Glopedia-Web-Chain
active
!************************** SERVICE **************************
service E-Global-https
ip address 172.21.21.32
port 80
protocol tcp
active
service Ghalia
port 81
protocol tcp
ip address 172.21.21.31
active
service GlobalInv
port 80
protocol tcp
ip address 172.21.21.31
active
service dms
ip address 172.21.1.115
port 80
protocol tcp
keepalive type http
active
service eglobal-http
port 80
protocol tcp
ip address 172.21.21.32
keepalive type http
active
service email
ip address 172.21.1.122
port 80
protocol tcp
keepalive type http
active
service email123
ip address 172.21.1.123
port 80
protocol tcp
keepalive type http
active
service glopedia
ip address 192.168.2.32
port 80
protocol tcp
active
service glopedia-expapps
ip address 192.168.2.32
port 4028
protocol tcp
active
service secure-transfer
type redirect
no prepend-http
ip address 172.21.21.32
keepalive type none
domain https://www.e-global.com.kw
active
service ssl-eglobal
type ssl-accel
keepalive type none
slot 2
add ssl-proxy-list SSL-Proxy-List
active
service workflow
ip address 172.21.21.44
port 80
protocol tcp
keepalive type http
active
!*************************** OWNER ***************************
owner EGlobal
content eglobal-http
vip address 172.21.21.51
no persistent
protocol tcp
port 80
url "/*"
add service eglobal-http
active
content eglobal-https
vip address 172.21.21.51
protocol tcp
port 443
add service ssl-eglobal
active
owner GhaliaWebSite
content Ghalia-http
vip address 172.21.21.53
add service Ghalia
protocol tcp
port 80
active
owner GlobalWebSite
content GlobalInv-http
vip address 172.21.21.52
add service GlobalInv
port 80
protocol tcp
advanced-balance sticky-srcip
active
owner Glopedia
content bpmweb
vip address 172.21.21.50
url "/workflow"
protocol tcp
port 80
redirect "/bpmweb"
active
content cyberdocs
vip address 172.21.21.50
add service dms
protocol tcp
port 80
url "/CyberDocs*"
active
content dms
vip address 172.21.21.50
url "/dms*"
redirect "/CyberDocs"
protocol tcp
port 80
active
content email
vip address 172.21.21.50
no persistent
url "/email"
protocol tcp
port 80
redirect "/owa"
active
content glopedia-expapps
vip address 172.21.21.50
add service glopedia-expapps
no persistent
port 4028
protocol tcp
active
content glopedia-http
vip address 172.21.21.50
add service glopedia
no persistent
protocol tcp
port 80
url "/*"
active
content glopedia-https
vip address 172.21.21.50
add service ssl-eglobal
protocol tcp
port 443
active
content owa
vip address 172.21.21.50
add service email123
protocol tcp
port 80
url "/owa*"
active
content workflow
vip address 172.21.21.50
add service workflow
no persistent
protocol tcp
port 80
url "/bpmweb*"
active
!*************************** GROUP ***************************
group Ghalia
vip address 172.21.21.53
add destination service Ghalia
active
group GlobalInv
vip address 172.21.21.52
add destination service GlobalInv
active
group dms
vip address 172.21.21.50
add destination service dms
add destination service email
add destination service workflow
add destination service glopedia
add destination service email123
add destination service glopedia-expapps
active
group eglobal
vip address 172.21.21.51
add destination service eglobal-http
active
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide