-
Notifications
You must be signed in to change notification settings - Fork 11
Description
Hi NasNet Team,
Firstly, thanks so much for the incredible work you’ve generously done to help your fellow Iranians have a chance to stay connected to the free world. Truly appreciated 🙏
I’m a bit of a noob with all this, but I had a few suggestions that might help enhance and improve the Neighbor-Link setup.
Routing Enhancements via CIDR Lists
Regarding the routing section in MikroTik, instead of having a long list of individual IPv4 addresses to route through the local ISP, what if you use a [CIDR] IP list instead?It’s much more efficient, easier to manage, and can also cover IPv6 addresses.
You can even set up a weekly auto-updater script to fetch the latest IP list automatically, which makes it more secure, efficient, and reliable.
👉 Source: https://www.iwik.org/ipcountry
IPv4: https://www.iwik.org/ipcountry/IR.cidr
IPv6: https://www.iwik.org/ipcountry/IR.ipv6
🛠 Example GeoIP Auto-Updater Script:
/system scheduler
add name=update_geoip interval=7d on-event="/tool fetch url=https://www.iwik.org/ipcountry/IR.cidr dst-path=IR.rsc; /import file-name=IR.rsc;"
DNS Setup (Encrypted DNS)
I noticed the current script is using traditional unencrypted DNS (Do53). Since there’s no DoH (DNS over HTTPS) or DoT (DNS over TLS) configured, DNS queries are vulnerable — they can be intercepted, logged, or spoofed.
Starting from RouterOS 7.6, MikroTik supports DoH natively, but there are some limitations , Only one global DoH server can be set (e.g., Cloudflare, No per-zone or split-routing DNS support, It doesn’t affect clients using their own DoH (like Chrome, Firefox, or Android)
While this is okay for basic encryption, it’s not ideal for advanced setups like Split tunneling, FRN, DOM, or full VPN routing.
Better Approach for Advanced Privacy to fully secure all DNS traffic (and prevent DNS leaks, especially over Starlink), it’s better to use a DoH resolver like dnscrypt-proxy or cloudflared directly on your VPS, and Run WireGuard or Xray on your VPS Forward all DNS queries through the VPN tunnel MikroTik or your client devices send DNS → through VPN → VPS encrypts and forwards them via DoH to Cloudflare, Google, or another secure DNS provider.
Benefits of This Setup would be No DNS leaks — even over Starlink or public networks , All DNS traffic is encrypted end-to-end, Your DNS queries stay hidden from Starlink, ISPs, governments, or any local snoopers, Zone-level separation and future-proof DNS control.
Recommended Hybrid Setup (Best of Both Worlds)
Your current setup is already really solid, WireGuard, mangle rules, and IP-based segmentation are doing a great job at keeping things private and under control. But I’ve been thinking… we could take this a step further and really lock things down in a way that’s basically bulletproof.
The Problem
Even with those geo IP CIDR lists for Iran, China, etc., there’s still a risk: some domains might NOT be covered by the IP ranges. They can slip through unnoticed, and if any of that traffic goes through Starlink, there’s a chance of getting flagged or detected, especially with how aggressive some detection systems are now.
Sure, the VPN tunnel hides the real Starlink IP, but what happens if the tunnel drops or if DNS requests leak outside the tunnel? That’s where the real exposure happens.
I’ve been thinking, what if we take the current setup and push it even further with a more advanced, layered approach? Something that cleanly separates local and international traffic, locks down DNS leaks, and keeps everything airtight, especially for privacy and anti-censorship.
Here’s what the full setup could look like:
🔧 VPS Side (Privacy Core)
A VPS that supports both IPv4 and IPv6
Install Xray-core using:
vless + reality + xtls-rprx-vision
Enable DoH DNS (e.g. Cloudflare’s https://1.1.1.1/dns-query)
Use GeoIP + GeoSite routing to handle domestic vs. international domains
Enable IPv6 + uTLS fingerprinting to mimic real browser behavior
Also run a WireGuard server on the same VPS for MikroTik to connect to
📡 MikroTik Setup (Dual-WAN Routing)
ether1 = Starlink
ether2 = Local ISP
Enable IPv6 if it’s not already on
Create separate routing tables for each ISP (Starlink and Local)
Apply GeoIP blocklists (IR, CN, RU, etc.) to make sure their traffic never goes over Starlink
Use mangle rules to tag and route traffic cleanly
All international traffic → tunneled through the VPS using WireGuard
🛡 Firewall & Safety Nets
Add a kill switch: If the VPN tunnel drops, block all Starlink traffic
Prevent leaks: .ir, .cn, .ru traffic is always routed locally, never via Starlink
Block all DNS requests outside the tunnel
Enforce DoH/DoT only (completely drop any port 53 traffic to prevent leaks)
🔁 NAT Rules
Enable masquerade to make sure everything routes correctly
Keep logs minimal for privacy and performance
I apologize if my message was too long or if some parts didn’t make total sense. I’m no expert (far from it), but I’m diving into all of this because, well… necessity breeds motivation, right? With the current situation in the country, I have a strong feeling things are only going to get worse when it comes to internet freedom. People are being squeezed out of any real choice and sooner or later, they’ll be forced to rely on whatever works, even if it’s risky. Right now, like it or not, Starlink might be the most reliable option left — even with all the danger and red flags around it.
Looking forward to hearing your thoughts
and hey, thanks in advance