[IPV4] LVS: Allow to send ICMP unreachable responses when real-servers are removed
this is a small patch by Janusz Krzysztofik to ip_route_output_slow() that allows VIP-less LVS linux director to generate packets originating >From VIP if sysctl_ip_nonlocal_bind is set. In a nutshell, the intention is for an LVS linux director to be able to send ICMP unreachable responses to end-users when real-servers are removed. http://archive.linuxvirtualserver.org/html/lvs-users/2007-01/msg00106.html Signed-off-by: Simon Horman <horms@verge.net.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
fa0b2d1d21
commit
2d771cd86d
@@ -2396,7 +2396,7 @@ static int ip_route_output_slow(struct rtable **rp, const struct flowi *oldflp)
|
|||||||
|
|
||||||
/* It is equivalent to inet_addr_type(saddr) == RTN_LOCAL */
|
/* It is equivalent to inet_addr_type(saddr) == RTN_LOCAL */
|
||||||
dev_out = ip_dev_find(oldflp->fl4_src);
|
dev_out = ip_dev_find(oldflp->fl4_src);
|
||||||
if (dev_out == NULL)
|
if ((dev_out == NULL) && !(sysctl_ip_nonlocal_bind))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
/* I removed check for oif == dev_out->oif here.
|
/* I removed check for oif == dev_out->oif here.
|
||||||
@@ -2407,7 +2407,7 @@ static int ip_route_output_slow(struct rtable **rp, const struct flowi *oldflp)
|
|||||||
of another iface. --ANK
|
of another iface. --ANK
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (oldflp->oif == 0
|
if (dev_out && oldflp->oif == 0
|
||||||
&& (MULTICAST(oldflp->fl4_dst) || oldflp->fl4_dst == htonl(0xFFFFFFFF))) {
|
&& (MULTICAST(oldflp->fl4_dst) || oldflp->fl4_dst == htonl(0xFFFFFFFF))) {
|
||||||
/* Special hack: user can direct multicasts
|
/* Special hack: user can direct multicasts
|
||||||
and limited broadcast via necessary interface
|
and limited broadcast via necessary interface
|
||||||
|
Reference in New Issue
Block a user