İçeriğe geç
Sahadan
TeknikOrta9 dk okuma

MikroTik ZeroTier: CGNAT Arkasından Kurulumsuz Uzak Erişim

MikroTik ZeroTier ile CGNAT arkasından port açmadan uzak erişim: paket kurulumu, network join, controller onayı, routing ve WireGuard/Tailscale karşılaştırması.

Erdem Özyurt

Kısa cevap: operatörünüz size gerçek bir public IP vermiyorsa (CGNAT), port yönlendirme ile uzak erişim matematiksel olarak imkânsızdır; paket size hiç ulaşmaz. Çözüm, bağlantıyı içeriden dışarıya kurduran bir overlay ağdır ve MikroTik’in resmi ZeroTier paketi bunu router üzerinde, sunucu kiralamadan, port açmadan yapar. Bu yazıda CGNAT’ta olup olmadığınızı nasıl anlayacağınızı, ZeroTier kurulumunu, uzak LAN’a routing’i ve WireGuard/Tailscale ile ne zaman hangisini seçeceğinizi anlatıyorum.

CGNAT nedir, port açmak neden çalışmaz?

CGNAT (Carrier-Grade NAT), operatörün tek bir public IP’yi yüzlerce aboneye paylaştırmasıdır. Sizin router’ınız public IP’yi hiç görmez; operatörün NAT cihazının arkasında özel bir adres alır. Dışarıdan gelen bağlantı isteği operatörün NAT’ında ölür, sizin router’ınıza asla ulaşmaz. Bu yüzden dst-nat ile port yönlendirme kuralınız kusursuz olsa bile çalışmaz: sorun sizde değil, paketin size hiç gelmemesinde.

CGNAT’ta olup olmadığınızı iki dakikada teşhis edin:

/ip address print where interface=pppoe-out1
# WAN adresiniz 100.64.0.0/10 icindeyse (100.64.x.x - 100.127.x.x) kesin CGNAT

/ip cloud set ddns-enabled=yes
/ip cloud print
# public-address alani ile WAN adresinizi karsilastirin

Karar net: WAN adresi ile /ip cloud çıktısındaki public-address aynıysa gerçek IP’niz var, WireGuard ile klasik uzak erişim kurabilirsiniz. Farklıysa CGNAT arkasındasınız; operatörden statik IP satın almadığınız sürece bu yazının konusu olan overlay yaklaşımı tek pratik yoldur.

Not: 100.64.0.0/10 bloğu RFC 6598 ile tam bu iş için ayrılmıştır; bu aralığı WAN’da görmek CGNAT’ın resmi imzasıdır. Bazı operatörler 10.x veya 172.16-31.x da kullanır; bu yüzden asıl test adres karşılaştırmasıdır.

ZeroTier neden CGNAT’ı aşar?

ZeroTier bağlantıyı ters yönden kurar: router’ınız dışarıya, ZeroTier’in koordinasyon sunucularına UDP ile kendini tanıtır, iki uç birbirini bu sayede bulur ve NAT delme (hole punching) ile çoğu zaman doğrudan tünel kurulur. Dinlenen bir port yoktur, gelen bağlantı beklenmez; CGNAT’ın engellediği şey zaten hiç yapılmaz. Doğrudan yol kurulamayan inatçı ağlarda trafik ZeroTier’in relay sunucularından dolaşır: bağlantı yine çalışır ama gecikme artar.

Varsayılan olarak UDP 9993 portu kullanılır ve tüm trafik uçtan uca şifrelidir. Ağ üyeliğini yöneten controller ise varsayılan senaryoda my.zerotier.com’dur; SaaS bağımlılığı istemeyenler için RouterOS’un kendi üzerinde controller barındırabildiğini aşağıda not ettim.

ZeroTier paketi hangi cihazlara, nasıl kurulur?

Resmi zerotier paketi yalnız ARM ve ARM64 mimarilerinde vardır; MIPSBE/MMIPS (eski hEX, hAP lite gibi) ve CHR desteklenmez. Yani hAP ac2, hAP ax2/ax3, RB4011, RB5009, L009 gibi güncel cihazlar kapsam içindedir. Önce mimarinizi doğrulayın:

/system resource print
# architecture-name: arm veya arm64 olmali

Cihaz alma aşamasındaysanız model seçimi rehberinde mimari konusuna değinmiştim; ZeroTier planlıyorsanız ARM64 tercih edin, 32-bit ARM çalışır ama şifreleme performansı belirgin düşüktür.

Kurulumun iki yolu var:

RouterOS 7.18 ve üzeri (kolay yol): WinBox’ta System > Packages > Check For Updates deyin, listede zerotier paketini işaretleyin, Apply Changes ile router paketi kendisi indirip yeniden başlatarak kurar.

Manuel yol (tüm 7.x): mikrotik.com/download sayfasından, RouterOS sürümünüzle birebir aynı sürümdeki “Extra packages” zip’ini mimarinize göre indirin, içinden zerotier-*.npk dosyasını Files’a yükleyin ve router’ı yeniden başlatın:

/system reboot
# acilista paket kurulur; /log print ile "installed zerotier" kaydini gorun

Sürüm eşleşmesi kritik: 7.19 router’a 7.16 paketi kurulmaz, log’a sessizce hata düşer.

Network join ve controller onayı nasıl yapılır?

Akış üç adımdır: my.zerotier.com’da ücretsiz hesap açıp bir network oluşturursunuz (16 haneli Network ID alırsınız), router’ı bu ağa katarsınız, panelden üyeliği onaylarsınız. Onay adımı atlanırsa arayüz ACCESS_DENIED durumunda takılı kalır; sahada en sık gördüğüm takılma noktası budur.

/zerotier enable zt1
# paketle gelen varsayilan instance'i ac

/zerotier interface add network=1d71939404912b40 instance=zt1
# kendi 16 haneli Network ID'nizi yazin

/zerotier interface print
# status: ACCESS_DENIED gorursaniz panelden onay bekliyor demektir

Şimdi my.zerotier.com’da network sayfasını açın, Members bölümünde router’ın 10 haneli node adresi belirir; Auth kutusunu işaretleyin. Birkaç saniye içinde status: OK olur ve router ağın verdiği yönetilen IP’yi alır (allow-managed varsayılan olarak açıktır). Telefon ve bilgisayarınıza da ZeroTier istemcisini kurup aynı Network ID ile katılın, onların da Auth kutusunu işaretlemeyi unutmayın.

Bağlantı kalitesini her zaman peer tablosundan okuyun:

/zerotier peer print
# path sutununda karsi ucun adresi gorunuyorsa baglanti DIRECT'tir;
# yalniz relay gorunuyorsa trafik roleden dolasiyordur, gecikme artar

SaaS istemeyenlere not: /zerotier controller menüsüyle ağın beyni tamamen router üzerinde barındırılabilir (ip-range, routes, private=yes ve controller/member/set 0 authorized=yes ile üye onayı). Küçük kurulumlar için my.zerotier.com daha pratik, veri egemenliği isteyenler için self-hosted controller meşru bir yoldur.

Uzak LAN’a erişim: routing nasıl kurulur?

Router’a ZeroTier IP’siyle erişmek işin yarısıdır; asıl hedef genelde arkasındaki 192.168.88.0/24 gibi bir LAN’dır. Bunun için controller tarafında bir managed route, MikroTik tarafında iki firewall kuralı gerekir. İstemciler bu route’u otomatik alır, ekstra istemci ayarı gerekmez.

1) Managed route (my.zerotier.com): Network sayfasında Managed Routes bölümüne LAN subnet’inizi, gateway olarak router’ın ZeroTier IP’sini girin. Örnek: 192.168.88.0/24 via 172.28.15.101.

2) Firewall izinleri (MikroTik):

/ip firewall filter add chain=input in-interface=zerotier1 action=accept \
  place-before=0 comment="zerotier: router yonetimi (winbox/ssh)"
# ZeroTier uzerinden routera erisim izni

/ip firewall filter add chain=forward in-interface=zerotier1 action=accept \
  place-before=0 comment="zerotier: LAN erisimi"
# ZeroTier'den gelen trafigin LAN'a gecis izni

place-before=0 kuralları listenin başına koyar; drop kurallarınızın altında kalırlarsa çalışmazlar. Erişimi tüm LAN yerine tek sunucuya daraltmak isterseniz forward kuralına dst-address=192.168.88.10 ekleyin: overlay ağ kurmak, iç ağın tamamını her üyeye açmak zorunda olduğunuz anlamına gelmez.

İnce bir nokta: bu kurgu, MikroTik’in LAN cihazlarının varsayılan ağ geçidi olduğu normal senaryoda ek NAT gerektirmez; dönüş paketleri zaten router üzerinden ZeroTier’e akar. LAN’da başka bir gateway varsa src-address=<zerotier-subnet> için masquerade eklemeniz gerekir, yoksa istekler gider ama cevaplar dönmez.

ZeroTier mi, WireGuard mı, Tailscale mı?

Kısa karar: en az bir ucun gerçek public IP’si varsa WireGuard, iki taraf da CGNAT’ta ve cihaz ARM ise ZeroTier kazanır. Tailscale mükemmel bir üründür ama RouterOS’ta resmi paketi yoktur; router üzerinde koşturmak container gerektirir.

Kriter ZeroTier WireGuard Tailscale
RouterOS desteği Resmi paket (arm/arm64) Yerleşik, tüm mimariler Resmi paket yok; container yolu
CGNAT arkasında Çalışır (NAT delme + relay) Tek başına çalışmaz; erişilebilir bir uç veya VPS hub şart Çalışır (DERP relay)
Dış bağımlılık my.zerotier.com veya self-hosted controller Yok Tailscale SaaS (+kimlik sağlayıcı)
Performans İyi; relay’e düşerse gecikme artar En yüksek, en sade Container ek yükü
Kurulum eforu ~15 dk, tek panel İki uçta anahtar/peer yönetimi Container paketi + ARM64 + harici depolama

Karar kutusu:

  • Statik veya gerçek dinamik public IP’niz var: WireGuard kurun, overlay katmanına hiç girmeyin. Protokol karşılaştırması için saha testi yazım da var.
  • İki uç da CGNAT’ta, cihazlar ARM/ARM64: ZeroTier bu yazıdaki kurgudur; en düşük eforlu çözüm.
  • CGNAT’tasınız ama cihaz MIPSBE (paket yok): Bir VPS’e WireGuard hub kurup her iki ucu oraya bağlamak klasik ve sağlam alternatiftir; maliyeti küçük bir sunucu kirasıdır.
  • Tailscale ekosistemine bağlıysanız (SSO, ACL, mevcut tailnet): RouterOS container ile mümkün ama paket bakımı size kalır; router’da ZeroTier + uç cihazlarda Tailscale karışımı çoğu zaman daha az dert çıkarır.

Kontrol listesi (yayına almadan önce)

  1. WAN adresi ile /ip cloud public-address karşılaştırıldı, CGNAT teşhisi kesinleşti mi?
  2. architecture-name arm/arm64 mi, paket RouterOS sürümüyle birebir eşleşiyor mu?
  3. /zerotier interface print çıktısında status OK mi (ACCESS_DENIED değil)?
  4. Managed route panelde tanımlı, firewall input/forward kuralları drop’ların üstünde mi?
  5. /zerotier peer print DIRECT bağlantı gösteriyor mu; relay’de kaldıysa UDP 9993 çıkışı açık mı?
  6. Forward kuralı gerçekten gereken hedeflere mi daraltıldı, yoksa tüm LAN mı açık?

CGNAT arkasındaki şubeleri tek overlay ağda toplamak, mevcut WireGuard altyapınızla hibrit kurmak veya hangi yolun size uyduğuna birlikte karar vermek isterseniz VPN kurulum hizmetime göz atabilir, filo geneli yapılandırma için MikroTik destek hizmetim üzerinden ulaşabilirsiniz.

#mikrotik#routeros#zerotier#cgnat#vpn#uzak-erisim
Paylaş:𝕏 TwitterLinkedIn

Sıkça Sorulan Sorular

MikroTik'te CGNAT arkasında olduğumu nasıl anlarım?

WAN arayüzünüzdeki adresi kontrol edin: 100.64.0.0/10 aralığındaysa (100.64.x.x ile 100.127.x.x arası) kesin CGNAT'tasınız. Adres 10.x veya 172.16-31.x gibi görünüyorsa da şüphelenin: /ip cloud ile öğrendiğiniz public adres WAN adresinizden farklıysa operatör sizi NAT arkasına almış demektir ve dışarıdan port açamazsınız.

ZeroTier hangi MikroTik cihazlarında çalışır?

Resmi zerotier paketi yalnız ARM ve ARM64 mimarilerinde var; hAP ac2, hAP ax serisi, RB4011, RB5009 gibi güncel cihazlar destekler. hAP lite, hEX (eski MIPSBE/MMIPS modeller) ve CHR desteklemez. Cihazınızın mimarisini /system resource print çıktısındaki architecture-name alanından görebilirsiniz.

ZeroTier bağlantısı neden yavaş, nasıl hızlandırırım?

/zerotier peer print çıktısına bakın: path sütununda karşı uçla DIRECT bağlantı yerine relay üzerinden akış varsa trafik ZeroTier'in kök sunucularından dolaşıyordur ve gecikme artar. UDP trafiğini tamamen kısıtlayan ağlarda bu kaçınılmazdır; mümkünse UDP 9993 çıkışına izin verin, çoğu CGNAT'ta NAT delme kendiliğinden DIRECT bağlantı kurar.

ZeroTier üzerinden bağlanıyorum ama routerın arkasındaki LAN'a erişemiyorum, neden?

Üç şeyi sırayla kontrol edin: my.zerotier.com'da LAN subnet'iniz için managed route tanımlı mı (ör. 192.168.88.0/24 via routerın ZeroTier IP'si), MikroTik firewall'da zerotier1 arayüzünden gelen input ve forward trafiğine izin var mı, istemci tarafında managed route'lar kabul ediliyor mu. Sahada en sık eksik olan managed route tanımıdır.

Tailscale MikroTik'te çalışır mı?

Resmi Tailscale paketi yok; RouterOS'un container özelliğiyle çalıştırmak mümkün ama container paketi, ARM64 cihaz ve harici depolama ister, güncellemesi de size kalır. Router üzerinde overlay ağ istiyorsanız pratik yol resmi paketi olan ZeroTier'dir; Tailscale'i bilgisayar ve telefonlarda kullanmak ayrı bir tercih olarak zaten serbesttir.

Yazan: Erdem Özyurt

Bilişim Danışmanı · ISP Altyapı · Siber Güvenlik

Kablo döşemekten kod yazmaya, ağ tasarımından web geliştirmeye; Layer 1'den Layer 7'ye bütünlük içinde çalışıyorum.

Hakkımda daha fazla →