Displaying 2 results from an estimated 2 matches for "dnat_took_place".
2006 Jul 15
3
vif/network-bridge and SNAT ?
...us may
have made the same stupid mistake.
It''s not really a problem. I have more real IP addresses I can use, but
they are in short supply.
The bitch seems to come from br_nf_pre_routing_finish() in
net/bridge/br_netfilter.c (linux source)... and follows these
conditions...
if (dnat_took_place(skb)) {
<snip>
if (ip_route_input(skb, iph->daddr, iph->saddr, iph->tos,
<snip>
if (!ip_route_output_key(&rt, &fl)) {
<snip>
if (((struct dst_entry *)rt)->dev == dev ||...
2007 Apr 18
4
[Bridge] [PATCH/RFC] Let {ip, arp}tables "see" bridged VLAN tagged {I, AR}P packets
..., VLAN_HLEN);
+ skb->nh.raw += VLAN_HLEN;
+ }
skb->dst->output(skb);
return 0;
}
@@ -155,6 +172,7 @@ static int br_nf_pre_routing_finish(stru
skb->pkt_type = PACKET_OTHERHOST;
nf_bridge->mask ^= BRNF_PKT_TYPE;
}
+ nf_bridge->mask ^= BRNF_NF_BRIDGE_PREROUTING;
if (dnat_took_place(skb)) {
if (ip_route_input(skb, iph->daddr, iph->saddr, iph->tos,
@@ -186,6 +204,11 @@ bridged_dnat:
nf_bridge->mask |= BRNF_BRIDGED_DNAT;
skb->dev = nf_bridge->physindev;
clear_cb(skb);
+ if (skb->protocol ==
+ __constant_htons(ETH_P_8021Q)) {
+...