· kaynak Hacker News – Front Page (hnrss.org)
Tailscale, tailcat'ı yayınladı: kontrol düzlemi ve hesap gerektirmeyen, WireGuard üzerinde çalışan netcat
Tailscale, makinalar arasında veri aktarımını şirket kendi WireGuard, NAT traversal ve DERP altyapısı üzerinden gerçekleştiren, hesap, kontrol düzlemi veya root erişimi gerektirmeyen açık kaynak bir Go aracı olan tailcat'ı yayınladı.

tailcat nedir
Tailscale, tailcat adlı açık kaynak bir Go paketini ve komut satırı aracını yayınladı; bu araç iki makineyi şirketin veri düzlemi — WireGuard şifrelemesi, NAT traversal ve DERP relay yedekleme katmanı — üzerinden bağlarken, normalde bunu çevreleyen koordinasyon katmanını devre dışı bırakıyor. Hacker News ana sayfasına çıkan bir Tailscale blog yazısına göre araç netcat gibi davranıyor; tek fark, byte'ların Tailscale'in transport katmanı olan magicsock üzerinden seyahat etmesi.
Dışlanan şeyler asıl mesele. Yazı, tailcat'in ihtiyaç duymadıklarını listeliyor: IP adresleri, hesaplar ve oturum açma, bir kontrol düzlemi, kullanıcılar ve yöneticiler, idari kontroller ile işletim sistemine root veya yönetici erişimi. Kendi derper relay sunucunuzu çalıştırdığınız sürece Tailscale şirketi olarak ona da bir bağımlılık yok.
Nasıl çalışıyor
Bir tailcat dinleyicisi, geçici ya da adlandırılmış ve yeniden kullanılan bir anahtar çifti üreterek başlıyor ve bir DERP sunucusu seçiyor — sizin belirttiğiniz ya da bant genişliği sınırlı, otomatik seçilen Tailscape işletimindeki bir relay. Ardından ortak anahtarı ve relay önyükleme bilgisini kodlayan kısa bir dizgi olan bir tailcat adresi türetiyor. Bu dizgiyi karşı tarafa bant dışında, doğrudan ya da bir hostname'e bağlı bir DNS TXT kaydı üzerinden elden geçiriyorsunuz.
İstemci tarafı bunun aynası: kendi anahtarını seçiyor, adreste belirtilen relay'e bağlanıyor ve protokolün MEOW adını verdiği bir mesajla sunucunun ortak anahtarına kendini tanıtıyor. Sunucu bu anahtarı kabul ederse — isteğe bağlı olarak izin verilen bir anahtar kümesine kilitlenebilir — yanıt veriyor ve iki taraf bağlanıyor.
Gerçek veri, WireGuard üzerinde çalışan gömülü bir userspace TCP stack'i üzerinden akıyor. Ortak anahtarlardan türetilen sentetik IPv6 adresleri hat üzerinde mevcut ama kullanıcıya hiçbir zaman gösterilmiyor; ana işletim sistemi TCP katmanına hiç katılmıyor, yalnızca UDP WireGuard paketlerini ya da relay'e giden TCP bağlantılarını görüyor. TUN cihazları, yönlendirme tablosu değişiklikleri ya da başka ağ yeniden yapılandırmaları yaşanmıyor.
magicsock katmanı NAT traversal'ı hallettiği için eşler önce doğrudan bir UDP yolu kurmayı deniyor; yalnızca her iki taraf da port eşlemesi yapılamayan sert NAT'ların arkasındaysa DERP üzerinden relay'e düşülüyor. Yazıda belirtildiği üzere Tailscale'in kendi relay'leri hız sınırına tabi, çünkü bant genişliği şirkete para mal ediyor; kendi relay'inizi çalıştırmak hem sınırı hem de Tailscale'e son bağı ortadan kaldırıyor.
Varsayılan sunucu modunda tailcat, aldığı her şeyi netcat tarzında stdout'a aktarıyor. İstemci modunda ise geçici bir yerel portta bir SOCKS sunucusu açabiliyor ve tailcat'ten habersiz programların tüneli şeffaf biçimde kullanabilmesi için onu kullanacak şekilde yapılandırılmış bir alt süreç — örneğin curl — başlatabiliyor.
Tailscale neden bunu geliştirdi
Yazının yazarı, tailcat'ın ilk olarak Eylül 2023'te on saatlik bir uçuş sırasında yazıldığını ve dahili bir merak olarak görüldüğünü, ancak daha sonra bazı müşterilerin Tailscale'in barındırdığı yedek relay'lerle birlikte kopyalar aldığını belirtiyor.
Yenilenen ilgi yapay zeka ajanlarına bağlı. Yazar, sandbox içindeki ajanlara güvenilmeyen iç içe sanal makineler ve uzak donanımlarla birlikte tailcat verilmesini şöyle anlatıyor: her nesli kapsayan bir Raspberry Pi filosu, Tailscale'i EC2'nin UEFI ortamına taşıma çalışması sırasında kullanılan bir EC2 instance'ı ve tekrarlı Hyper-V hata ayıklaması için bir Windows host. Tailscale'e göre araç, çok farklı iki makinedeki iki shell'i hızlıca bağlamanız gerektiğinde parlıyor — bir dosya kopyası, bir port forward, bir SSH arası — özellikle de taraflardan biri güvenilmeyen ya da geçiciyse ve sistem yapılandırmasına dokunmak istenmiyorsa.
Yazı ayrıca, düğümler arasında netcat tarzı paylaşımın Taildrop'un 2021'de yayına girdiğinde gelen ilk talepler arasında olduğunu anımsıyor ve tailcat benzeri bir özelliğin ana istemciye de yol bulabileceğini söylüyor. Tailscale bunun gibi bir aracın zaten bir şekilde var olacağı konusunda açık sözlü; insanların veri düzlemini kullanmasını, geliştirmesini ve ona karşı hata bildirmesini tercih ettiklerini, çünkü bu işin daha geniş ürüne geri beslendiğini belirtiyor.
Neden önemli
Tailcat, Tailscale'in açık kaynak parçalarını — veri düzlemi, DERP sunucusu ve Linux ile Android istemcileri — kapalı kalan kontrol düzleminden net biçimde ayırıyor. Daha önce ortak bir IP üzerinde saf WireGuard ile hesaplar ve ACL'lerle dolu tam bir mesh ağ arasında seçim yapan mühendisler artık ortada bir seçenek buluyor: paylaşılan bir adres dizgisinden öte bir altyapı gerektirmeyen, şifreli, NAT aşan, relay destekli byte boruları.
Ajan boyutu belki daha da önemli. Otonom, sandbox içindeki koda firewall düzenlemeleri ya da port forward'lar yerine kısıtlı bir bağlantı ilkel sistemi vermek birçok ekibin yöneldiği bir kalıp ve Tailscale fiilen bu kullanımı davet ediyor. Bahis şu görünüyor: veri düzleminin — ona bağlı bir kontrol düzlemi olmasa bile — daha geniş benimsenmesi, sonunda sattıkları ürüne yarar sağlayacak.
- #tailscale
- #wireguard
- #networking
- #open-source
- #vpn