dmachard / go-netutils

network utilities in Golang

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

go-netutils

Network utilities in Golang

  • TCP assembly stream for dns packets
  • Generic IP defrag function
  • Generate BPF filter: (ip4 || ip6) && (tcp || udp) && port == int
  • Get EBPF program to inject in kernel (XDP DNS filter)
  • Easy config for TLS
  • String IPv4/v6 CIDR parser to net.IPMask

Build eBPF bytecode

Install prerequisites

sudo apt install llvm clang
sudo apt-get install gcc-multilib

Update libpbf library and generate vmlinux.h

cd ebpf/headers
./update.sh

Compiles a C source file into eBPF bytecode

cd xdp/
go generate .

Running tests

$ go test -cover -v

Examples

String CIDR parser

v4Mask, err = netutils.ParseCIDRMask("10.0.0.0/8")
if err != nil {
   fmt.Println(err)
}
// v4Mask == net.CIDRMask(8, 32)

About

network utilities in Golang

License:MIT License


Languages

Language:Go 93.0%Language:C 6.0%Language:Shell 1.0%