Skip to content

Releases: hack3ric/mimic

v0.7.0

07 Mar 09:27
v0.7.0
Compare
Choose a tag to compare
  • (breaking) Add window probe mechanism
    • Now Mimic's fake TCP connection will never reach peer's full window size and cause link breakdown by connection-tracking firewalls
    • Connection between 0.7.x and 0.6.x (or lower) will suffer from excess packet drop due to the latter's small window size and inability to reply window update on peer's request.
  • Add COMPAT_LINUX_6_1 option and enable in Debian 12 (bookworm) build
    • Now it will disable TCP MSS reading as window scale reading has been added and will cause Linux 6.1 eBPF verifier to fail due to large program size (unable to analyze loops and branches properly)
  • Debian: disable build hack on trixie and later, since kernel packages added BPF and BTF bits

v0.6.4

19 Feb 07:39
v0.6.4
a431da5
Compare
Choose a tag to compare
  • Add support for interfaces without L2, e.g. PPP or TUN by specifying --link-type=none
  • Debian: fix install on non-systemd systems via dh_installsysusers
  • mimic-dkms: promote lz4, xz-utils to Depends as they are used in official kernels
  • Use bubblewrap for kernel module build hack, fixing issues with Linux 6.13 on Debian
  • Various bug fixes

v0.6.3

15 Jan 07:03
7e26b4a
Compare
Choose a tag to compare
  • Add libxdp support via dlopen(3)
  • Add --max-window flag for disabling variable window mechanism (mainly for debugging purposes)
  • Add --xdp-mode={skb,native} option for forcing XDP attach mode
    • Some VMs may encounter errors when loading Mimic, similar to that of #11. Use --xdp-mode=skb to work around them.
    • Some Intel NICs have XDP native mode for offloading XDP programs in drivers (e1000e, igb, igc, etc.), but may sometimes experience sudden connection breaks that last for minutes. --xdp-mode=skb may help by disabling offload.
  • Allow IP free bind to enable scenarios like #7.
  • Various bug fixes

v0.6.2

23 Nov 16:33
29c7e19
Compare
Choose a tag to compare

This is a minor release with Debian packaging fixes, in line with Debian upstream packaging effort.

Major changes in v0.6.0 include:

  • Do not depend on bpf_xdp_get_buff_len for payload length; this could be larger than the actual packet length, and the real length should be retrieved from packet headers
  • Add kprobe checksum hacks, along with previous kfunc implementation
  • Enable XDP fragments support
  • RST is now sent to peers when Mimic is shutting down
  • Allow domain names in filters; they are only resolved when Mimic starts, and only resolved IPs are stored
  • Allow fixed or pseudo-random padding in packets

v0.6.1

23 Nov 10:06
03a4c4f
Compare
Choose a tag to compare

This is a minor release with Debian packaging fixes, in line with Debian upstream packaging effort.

Major changes in v0.6.0 include:

  • Do not depend on bpf_xdp_get_buff_len for payload length; this could be larger than the actual packet length, and the real length should be retrieved from packet headers
  • Add kprobe checksum hacks, along with previous kfunc implementation
  • Enable XDP fragments support
  • RST is now sent to peers when Mimic is shutting down
  • Allow domain names in filters; they are only resolved when Mimic starts, and only resolved IPs are stored
  • Allow fixed or pseudo-random padding in packets

v0.6.0

02 Nov 14:16
1e7d5d7
Compare
Choose a tag to compare

This version supports alternative kprobe method for checksum hacks, domain resolution support, packet padding and more!

  • Do not depend on bpf_xdp_get_buff_len for payload length; this could be larger than the actual packet length, and the real length should be retrieved from packet headers
  • Add kprobe checksum hacks, along with previous kfunc implementation
  • Enable XDP fragments support
  • RST is now sent to peers when Mimic is shutting down
  • Allow domain names in filters; they are only resolved when Mimic starts, and only resolved IPs are stored
  • Allow fixed or pseudo-random padding in packets

Full Changelog: v0.5.0...v0.6.0

v0.5.0

05 Aug 12:49
v0.5.0
df9b16c
Compare
Choose a tag to compare

This version consists mostly of new test environments, major fixes and internal changes. Some notable are:

  • Track TCP window size and send window change packets to prevent conntrack failure
  • (distro packages) Tries to extract vmlinux from boot image if vmlinux is not available in module build directory
  • Add passive mode, i.e. "do not initiate handshake", enabled by setting handshake interval to 0

Full Changelog: v0.4.2...v0.5.0

v0.4.2

24 May 13:39
a3a811c
Compare
Choose a tag to compare
  • Fix systemd service file, adding missing [Install] section
  • Fix version display in Mimic CLI

Changes in v0.4.x include:

  • Variable congestion window to better mimic real TCP
  • Notify supervisor when Mimic is ready (currently only systemd)
  • Drop json-c dependency, lock file now uses key=value pair
  • Add handshake and keepalive mechanism, as well as its settings, both global and filter-specific
  • Add mimic(1) manpage
  • Better logging UX, including full TCP traffic trace

v0.4.1

24 May 06:56
6dc4578
Compare
Choose a tag to compare
  • Fix configuration file parsing
  • Make trace output more visible on certain terminals

Changes in v0.4.x include:

  • Variable congestion window to better mimic real TCP
  • Notify supervisor when Mimic is ready (currently only systemd)
  • Drop json-c dependency, lock file now uses key=value pair
  • Add handshake and keepalive mechanism, as well as its settings, both global and filter-specific
  • Add mimic(1) manpage
  • Better logging UX, including full TCP traffic trace

v0.4.0

23 May 16:11
c0c638d
Compare
Choose a tag to compare
  • Variable congestion window to better mimic real TCP
  • Notify supervisor when Mimic is ready (currently only systemd)
  • Drop json-c dependency, lock file now uses key=value pair
  • Add handshake and keepalive mechanism, as well as its settings, both global and filter-specific
  • Add mimic(1) manpage
  • Better logging UX, including full TCP traffic trace