Skip to content

v0.1.3

Compare
Choose a tag to compare
@github-actions github-actions released this 19 Nov 17:49
· 24 commits to main since this release
ccb32a3

edit: Due to rust-lang/rust#115010 which triggers an error on Rust 1.80, it's required to build einat v0.1.3 with Rust >= 1.81. (fixed with 9e7bb8d which is not included in v0.1.3)

Highlights

  • Fix a bug that might cause silent packet drop, which has been observed on PPPoE interface for large packets.
  • Use pure-rust Aya loader by default, einat now has zero native dependency except libc on target platform.
    This should make einat be built more easily especially for cross-compilation.
  • Allow attaching eBPF programs with new TCX interface, aya loader only.
  • Allow do SNAT for specified internal network only
# do SNAT for internal packets with source of 192.168.1.0/24 only
einat -i extern0 --hairpin-if intern0 lo --internal 192.168.1.0/24

🚀 Features

  • Add pure-Rust aya loading backend support
  • Add config option to toggle TCX interface usage
  • Allow do NAT for specified internal network only
  • Add CLI options for snat_internals and bpf_loader

🐛 Bug Fixes

  • Workaround an unroll failure
  • (ebpf) Always pull first header bytes
  • Split EINAT_BPF_CFLAGS args

Improve

  • Increase log level of libbpf netlink error to DEBUG
  • Describe NAT44 enabling more specifically
  • Log eBPF loader used
  • Enable bpf_fib_lookup_external by default on kernel>=6.7