Proxy realms and home_server_pool fallback not working

Alan DeKok aland at deployingradius.com
Mon Mar 7 15:04:43 CET 2016


On Mar 7, 2016, at 3:22 AM, Peter Lambrechtsen <peter at crypt.co.nz> wrote:
> Yes, I have figured that out. I'm now pinging all our downstream radius
> clients to see which respond to something sane when sent a Status, and then
> turning on Status server for them.

  Or just send Access-Request with a fake username "thisismejusttesting".  They'll respond with an Access-Reject, which is good enough to determine that they're alive.

> What could I do in Post-Proxy-Type?

  Anything you can do anywhere else.

  The fallback virtual server is just there for ease of use.  But... it complicates the proxy handling, as you've seen.  A simpler approach is to put all of the "unlang" handling into... unlang.  And not into the proxy code.

> As I can't call the virtual server,

  We'll fix that for 3.2.

> and
> Proxy-To-Realm doesn't proxy to a new destination nor does setting the
> control to accept.

  The home server pools should take care of fail-over to another home server.  But yes, once the whole pool has failed... you can't send the packet to a different destination.  That's what home server pools are for...

> There doesn't seem to be a way to turn a Reject from a
> failed proxy request back into an Accept.

  A failed proxy request is not really a reject... it's just a failed request.  And you can force it to be an Access-Accept via Post-Proxy-Type Fail:

post-proxy {
	...

	Post-Proxy-Type Fail-Authentication {
		update control {
			Response-Packet-Type := Access-Accept
		}

	}
	...
}

  We'll work on simplifying that for 3.2, also.

> Thanks for all your help on this, the fail-over with the second server
> being the virtual seems to work well, just means I am restricted to a
> single server and can't use load-balance. But having this config would be
> my ideal:
> 
> home_server_pool ProxyDestPool {
>        type = load-balance
>        home_server = ProxyDest1
>        home_server = ProxyDest2
>        home_server = ProxyDest3
>        fallback = cacheuser
> }

  That works for me.  When all home servers in a "load-balance" pool are down, it uses the fallback virtual server:

(0)   } # authorize = updated
Home server pool example.net failing over to fallback example.net
Proxying to virtual server example.net

  Alan DeKok.




More information about the Freeradius-Users mailing list