Thread (12 messages) flat view 12 messages, 3 authors, 2017-03-21

Re: [PATCH net] bridge: ebtables: fix reception of frames DNAT-ed to bridge device

From: Florian Westphal <fw@strlen.de>
Date: 2017-03-15 10:26:44
Also in: bridge, lkml, netfilter-devel

Linus Lüssing [off-list ref] wrote:
When trying to redirect bridged frames to the bridge device itself
via the ebtables nat-prerouting chain and the dnat target then this
currently fails:

The ethernet destination of the frame is dnat'ed to the MAC address of
the bridge itself just fine and the correctly altered frame can even
be captured via a tcpdump on br0 (with or without promisc mode).

However, the IP code drops it in the beginning of ip_input.c/ip_rcv()
as the dnat target did not update the skb->pkt_type.
Right, thats the reason why ebtables also has ebt_redirect target
which does this pkt_type fixup.
-		if (dst->is_local)
+		if (dst->is_local) {
+			/* fix up potential DNAT mess */
+			skb->pkt_type = PACKET_HOST;
+
 			return br_pass_frame_up(skb);
+		}
I don't mind this change though (i.e. I don't see how this would
bite us later).
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help