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_mappingfield inroutes.jsonto 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
--masqflag when starting the client - Requirements: Requires
iptablescommand (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
--masqoption 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