mirror of https://gitee.com/openkylin/linux.git
net/ipv6/route.c: packets originating on device match lo
Fix to allow IPv6 packets originating locally to match rules with the "iff" set to "lo". This allows IPv6 rule matching work the same as it does for IPv4. From the iproute2 man page: iif NAME select the incoming device to match. If the interface is loop‐ back, the rule only matches packets originating from this host. This means that you may create separate routing tables for for‐ warded and local packets and, hence, completely segregate them. Signed-off-by: David McCullough <david_mccullough@mcafee.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
91fa0cbc0c
commit
4dc27d1cf3
|
@ -937,6 +937,8 @@ struct dst_entry * ip6_route_output(struct net *net, const struct sock *sk,
|
|||
{
|
||||
int flags = 0;
|
||||
|
||||
fl6->flowi6_iif = net->loopback_dev->ifindex;
|
||||
|
||||
if ((sk && sk->sk_bound_dev_if) || rt6_need_strict(&fl6->daddr))
|
||||
flags |= RT6_LOOKUP_F_IFACE;
|
||||
|
||||
|
|
Loading…
Reference in New Issue