Skip to content

v1.0.2

Latest

Choose a tag to compare

@ICKelin ICKelin released this 25 Jan 13:24
· 1 commit to main since this release

Rustun v1.0.2 Release Notes

πŸŽ‰ Overview

Rustun v1.0.2 introduces CIDR mapping for network conflict resolution, Linux NAT support, client name display improvements, and several bug fixes.

✨ New Features

πŸ”„ CIDR Mapping (Network Conflict Resolution)

Resolve network conflicts when multiple clients have overlapping CIDR ranges using CIDR mapping.

  • How it works: Map conflicting CIDRs to unique virtual CIDRs that other clients see
  • Implementation: Uses iptables NETMAP on Linux clients for automatic IP translation
  • Configuration: Add cider_mapping field in routes.json to map virtual CIDRs to real CIDRs
  • Example: Map 192.168.11.0/24 (virtual) β†’ 192.168.10.0/24 (real) to resolve conflicts

Requirements:

  • Linux only (uses iptables NETMAP)
  • Kernel support for NETMAP target (Linux 2.6.32+)

🐧 Linux NAT Support (--masq Option)

Enable MASQUERADE and SNAT for VPN traffic on Linux clients.

  • MASQUERADE: Allows VPN clients to access external networks
  • SNAT: Makes packets from local CIDRs appear as coming from virtual IP
  • Usage: Add --masq flag when starting the client
  • Requirements: Requires iptables command (checked at startup)
  • Cleanup: Automatic cleanup of iptables rules on program exit

πŸ‘€ Client Name Display

Improved client identification and display in the VPN network.

  • Protocol Enhancement: Client name included in HandshakeReply and KeepAlive frames
  • HTTP API: Peer information now includes client names instead of just identities
  • Better UX: More user-friendly identification in network management interfaces

πŸ› Bug Fixes

  • Fixed P2P peers deadlock: Resolved deadlock issue in P2P peer management
  • Improved error handling: Better error messages for missing iptables command

πŸ“š Documentation Updates

  • Demo Environment: Added official demo server information and quick start guide
  • CIDR Mapping: Added configuration documentation for CIDR mapping feature
  • MASQUERADE: Added documentation for --masq option and requirements
  • README Improvements: Updated architecture diagrams and feature descriptions

πŸ“ Configuration Changes

New Field in routes.json

{
  "cluster": "production",
  "identity": "client-1",
  "private_ip": "10.0.1.1",
  "mask": "255.255.255.0",
  "gateway": "10.0.1.254",
  "ciders": ["192.168.11.0/24"],
  "cider_mapping": {
    "192.168.11.0/24": "192.168.10.0/24"
  }
}
  • cider_mapping: Optional field for CIDR mapping (Linux only)
  • Maps virtual CIDRs (in ciders) to real network CIDRs

πŸ“¦ Download

  • GitHub Releases: v1.0.2
  • Pre-built binaries: Available for Linux, macOS, and Windows

πŸ™ Acknowledgments

Thanks to all contributors and users who provided feedback and testing for this release.


Full Changelog: v1.0.1...v1.0.2