Forum Discussion
ken_wolff_10732
Nimbostratus
Sep 20, 2006Snatted address replacement
Is there a way to retain the actual client address and replace the snatted address with the actual client address when responding back to the client? I need the snat, but want to tell the client the actual address (for it's logging funtion), not the snatted one.
For example:
Client request>> to External BigIP VLAN
Change to snatted address>> send out to domain controller
<<
Thanks, Ken
when CLIENT_ACCEPTED {
if { [IP::addr [IP::client_addr] equals xxx.xxx.xxx.yyy] } {
replace snatted address and substitute actual client address on return to client
}}
- hoolio
Cirrostratus
By default using SNAT forces the BIG-IP to replace the source IP address on requests it sends to the pool. The BIG-IP automatically undoes the translation when it responds back to the client to ensure the client accepts the response. - ken_wolff_10732
Nimbostratus
The client is doing an 802.1x (PEAP) authentication via radius servers to the domain controller. So the sequence is laptop request>Cisco Switch>BigIP>Radius>active directory. The problem comes in when the radius is not local (is not on the internal VLAN). The request has to be snatted to go to a remote radius. The radius log entry then shows a snatted address for the Cisco Switch i.e. a generic address instead of a specific address. This is a security issue. - JRahm
Admin
You could recraft the packet, inserting an attribute-value pair using the type 4 NAS-IP-Address attribute, with the value being the *real* IP of the switch. Note that your client NAS as defined on your radius server will be the source IP address of the packet, or your SNAT address. Reference rfc 2865 for additional options with radius attributes.
Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects