[prev in list] [next in list] [prev in thread] [next in thread]
List: openbsd-tech
Subject: pflow PF_OUT use WIRE ips
From: Kapetanakis Giannis <bilias () edu ! physics ! uoc ! gr>
Date: 2018-01-30 13:34:43
Message-ID: 2d9f9407-b86d-9c6b-efba-98f7788a7d31 () edu ! physics ! uoc ! gr
[Download RAW message or body]
Hi,
A problem with our flows and nat-to on the $ext_if is that it exports the original \
(private) IP address and not the new-public IP after the translation.
We already have the information about the private IP from the flow on the $int_if.
Similar problem with rdr-to and PF_OUT.
This diff changes st->key to use PF_SK_WIRE for PF_OUT and export what you see in \
tcpdump.
Tested with PF_IN/PF_OUT and normal, nat-to, rdr-to connections,
although there is problem only with PF_OUT which used PF_SK_STACK.
Did not test IPv6.
regards,
Giannis
ps. I'll make an attempt to add NEL extension record types to hold NAT information in \
IPFIX from https://tools.ietf.org/html/draft-ietf-behave-ipfix-nat-logging-13
nfdump already supports this info so it will be good to be able to export it.
Index: if_pflow.c
===================================================================
RCS file: /cvs/src/sys/net/if_pflow.c,v
retrieving revision 1.86
diff -u -p -r1.86 if_pflow.c
--- if_pflow.c 9 Jan 2018 15:24:24 -0000 1.86
+++ if_pflow.c 30 Jan 2018 13:10:46 -0000
@@ -786,7 +786,7 @@ export_pflow(struct pf_state *st)
struct pflow_softc *sc = NULL;
struct pf_state_key *sk;
- sk = st->key[st->direction == PF_IN ? PF_SK_WIRE : PF_SK_STACK];
+ sk = st->key[PF_SK_WIRE];
SLIST_FOREACH(sc, &pflowif_list, sc_next) {
switch (sc->sc_version) {
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic