動機

把netfilter最後的拼圖補上

netfilter conntrack

有了hook可以看ip以上的所有pkt,那也可以用來track!!

但不是track所有連線,只track有定義tuple的flow 所以conntrack只追trackable protocols

  • TCP/UDP, DCCP, SCTP, GRE
    • sip, dip, sport, dport, protocol
  • ICMP
    • ICMP type, ICMP code

會在下面的hook紀錄conntrack

為什麼要有unconfirm? netfilter可能會drop

NAT

能track就能做nat!! 作用在prerouting, local_in, local_output, post_routing

Masquerade? 一般: IP1變成IP2 Masquerade: IP1變成dev的IP

新的track framework?

只要能做出hook就能做出conntrack,所以也可以bpf做出一樣的效果

Ref

连接跟踪(conntrack):原理、应用及 Linux 内核实现