Bladeren bron

ipvs: Reject ipv6 link-local addresses for destinations

We can't use non-local link-local addresses for destinations, without
knowing the interface on which we can reach the address. Reject them for
now.

Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
Acked-by: Julius Volz <juliusv@google.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Sven Wegener 17 jaren geleden
bovenliggende
commit
3bfb92f407
1 gewijzigde bestanden met toevoegingen van 2 en 1 verwijderingen
  1. 2 1
      net/ipv4/ipvs/ip_vs_ctl.c

+ 2 - 1
net/ipv4/ipvs/ip_vs_ctl.c

@@ -838,7 +838,8 @@ ip_vs_new_dest(struct ip_vs_service *svc, struct ip_vs_dest_user_kern *udest,
 #ifdef CONFIG_IP_VS_IPV6
 #ifdef CONFIG_IP_VS_IPV6
 	if (svc->af == AF_INET6) {
 	if (svc->af == AF_INET6) {
 		atype = ipv6_addr_type(&udest->addr.in6);
 		atype = ipv6_addr_type(&udest->addr.in6);
-		if (!(atype & IPV6_ADDR_UNICAST) &&
+		if ((!(atype & IPV6_ADDR_UNICAST) ||
+			atype & IPV6_ADDR_LINKLOCAL) &&
 			!__ip_vs_addr_is_local_v6(&udest->addr.in6))
 			!__ip_vs_addr_is_local_v6(&udest->addr.in6))
 			return -EINVAL;
 			return -EINVAL;
 	} else
 	} else