İki LAN, bir WireGuard merkezi ve üç ayrı soruyu yanıtlaması gereken bir IPv6 adres planı: hangi önek, her yönlendiriciye hangi adres ait ve hangi eş hangi alt ağa sahip. Bunlardan biri yanlış olursa el sıkışan ama hiçbir şeyi yönlendirmeyen bir tünel oluşur. Aşağıdaki plan, özel iki siteli tasarımı bu sırayla ele alır. Kasıtlı olarak IPv6 internet erişimi sunmaz.

Önekin ne için olduğuna karar verin

Amaç siteler arasında özel erişilebilirlik olduğunda fd00::/8 aralığından benzersiz yerel bir önek doğal seçimdir. Her konuma hangi İnternet servis sağlayıcısının hizmet ettiğinden bağımsız olarak kararlı kalır ve genel yönlendirme tablosunda duyurulmaz, bu nedenle dahili numaralandırmanızı internete sızdıramaz.

Aynı özellik sınırlamadır. Bir ULA hiçbir genel dönüş yolu vermez, çünkü hiçbir üst sağlayıcı bunun ağ geçidinize yönlendirilmesi gerektiğini bilmez. Gereksinim IPv6 üzerinden internet çıkışını içeriyorsa ihtiyacınız olan şey onu size yönlendiren bir sağlayıcıdan alınan tahsis ve bu, kendi önek boyutuna sahip ayrı bir tasarım kararıdır.

Her dağıtımın /48 gerektirdiğini varsaymayın. RFC 6177 uç site için tek bir zorunlu boyuttan uzaklaştı ve doğru boyut, işleteceğiniz ağ sayısına bağlıdır. ULA'yı, başka bir kuruluşun da kullanabileceği bir önek uydurmak yerine RFC 4193 yordamıyla üretin. Sonucu herhangi bir cihaz yapılandırılmadan önce adres planına yazın, çünkü kimsenin kaydetmediği bir önek, birinin yeniden kullanacağı bir önektir.

Öneki rollere ayırın

Aşağıdaki örnek fd7c:2e91:4a00::/48 kullanır ve tablo, her bloğun siteye göre değil nereye yazıldığına göre düzenlenmiştir. Değerleri örnek olarak kabul edin ve herhangi bir şey dağıtmadan önce kendi değerlerinizi üretin.

Where it is writtenWhat appears thereBlock usedWhat it establishes
Hub wg0.conf, interface addressA single host address on the tunnelfd7c:2e91:4a00:ff00::1/128The hub's own tunnel identity
Hub wg0.conf, Site A peerTwo ranges in one AllowedIPs line::2/128 and :10::/64That A owns its tunnel address and its LAN
Hub wg0.conf, Site B peerTwo ranges in one AllowedIPs line::3/128 and :20::/64That B owns its tunnel address and its LAN
Site A wg0.conf, interface addressA single host address on the tunnelfd7c:2e91:4a00:ff00::2/128A's identity as the hub sees it
Site B wg0.conf, interface addressA single host address on the tunnelfd7c:2e91:4a00:ff00::3/128B's identity as the hub sees it

LAN blokları /64'tür çünkü sıradan SLAAC 64 bitlik bir arayüz tanımlayıcısı bekler. Bir LAN'ı daha küçük bir bloğa bölmek çoğu ana bilgisayarda bu varsayımı bozar ve özel bir planda işletme maliyeti adres tasarrufuna değmez. Her iki LAN bloğu da /48'in ortasından gelir ve düşük aralığı sonraki siteler için boş bırakır.

Tünel adresleri yönetimsel bir havuzdur, bağlantı üzerinde bir ağ değildir. Her arayüz bundan tek bir /128 alır, böylece hiçbir ana bilgisayar tünelde ortak bir alt ağ varsaymaz ve komşu keşfi gerekmedikçe çalışmaz. Rolleri ayrık tutun ve kuruluşun adres planına kaydedin, böylece sonraki bir site bir bloğu yeniden kullanmaz.

Her yönlendiriciye bir tünel adresi verin

Her yönlendiriciye bir /128 atayın ve çalışan merkezin mevcut anahtarlarını ve uç noktalarını koruyun. Aşağıdaki üç değer yalnızca ana bilgisayar bölümünde farklıdır.

Hub:    Address = fd7c:2e91:4a00:ff00::1/128
Site A: Address = fd7c:2e91:4a00:ff00::2/128
Site B: Address = fd7c:2e91:4a00:ff00::3/128

Bu /128, o arayüze atanan tek adresi tanımlar. Eşin kaç hedefi yönlendirebileceği hakkında hiçbir şey söylemez, çünkü erişilebilirlik arayüz önekinde değil AllowedIPs içinde ifade edilir.

Her site yönlendiricisi ayrıca kendi LAN bloğunda bir adrese ve onu dağıtmanın bir yoluna ihtiyaç duyar, genellikle SLAAC için yönlendirici duyuruları. WireGuard bu duyuruları sizin için göndermez ve iki LAN'ı köprülemez. Site yönlendiricisi her iki yönde de bir yönlendiricidir.

Alt ağ sahipliğini AllowedIPs içine koyun

Merkezin Site A için eş girdisi, A'nın tünel adresine ve A'nın LAN'ına sahiptir ve bu eşleşme tüm sahiplik beyanıdır. O eş bölümünde başka hiçbir şeyin siteyi tanımlaması gerekmez.

AllowedIPs = fd7c:2e91:4a00:ff00::2/128, fd7c:2e91:4a00:10::/64

Site B'nin eş girdisi eşleşen çifte sahiptir ve burada simetri kısalıktan daha önemlidir. İki satırı birlikte okuyun, sahiplik bölünmesi bir bakışta görünür hale gelir.

AllowedIPs = fd7c:2e91:4a00:ff00::3/128, fd7c:2e91:4a00:20::/64

Bunlar iki ayrı eş bölümüdür, tek bir eş için yarışan iki liste değil. WireGuard AllowedIPs'i iki yönde kullanır: giden bir hedef için eşi seçer ve kaynağı, onu çözen eşe atanan aralıkla eşleşmeyen gelen paketi reddeder. /48'in tamamını iki eşe vermek bu ikinci denetimi devre dışı bırakır ve hangi sitenin hangi bloğa sahip olduğunu belirsizleştirir. Bu ayrım, yanlış bir kaynak adresini sessizce kabul edilmek yerine görünür kılan şeydir.

Her site yalnızca kendi merkez eşi üzerinden erişilebilen hedeflere ihtiyaç duyar: Site A merkezin adresini, Site B'nin tünel adresini ve B'nin LAN'ını listeler, Site B ise karşılıklı kümeyi listeler. Listeler bilerek asimetriktir, çünkü her yönlendirici topolojinin farklı bir tarafını görür. İkisini de diğer sitenin yapılandırmasından değil adres planından yazın; eski bir aralık yeniden numaralandırmayı böyle atlatır.

wg-quick ile bu aralıklar rotalar da oluşturur. systemd-networkd veya elle kurulumla eşdeğer rotaları kendiniz ekleyin; aksi halde tünel, çekirdeğin içine hiç göndermediği paketleri taşır.

Yönlendirmeyi tamamlayın ve iki yönü de test edin

Merkezde ve iki site yönlendiricisinde IPv6 yönlendirmeyi etkinleştirin ve yönlendirme ilkesinde gereken siteler arası hizmetlere izin verin. ICMPv6 Packet Too Big iletilerini kullanılabilir tutun, çünkü bunları düşürmek yol MTU keşfini bozar ve uygulama arızası gibi görünen büyük aktarım takılmalarına yol açar. Güvenlik duvarı izni olmadan yönlendiren bir merkez, paketi yönlendirme ile tünel arasında düşürür. Bu arıza modunu bilmeye değer, çünkü tünel ayakta kalır ve yalnızca bazı akışlar ölür.

sysctl net.ipv6.conf.all.forwarding
ip -6 route
ping -6 -c 3 fd7c:2e91:4a00:20::1

Site A'daki bir ana bilgisayardan Site B'deki bir ana bilgisayara ve ardından ters yönde test edin. Merkezin tünel adresine yapılan bir ping yalnızca ilk atlamayı dener ve LAN rotaları yanlış olsa bile geçer. Planı kanıtlayan, ana bilgisayardan ana bilgisayara akıştır.

Dış WireGuard bağlantısı, iç trafik IPv6 iken IPv4 üzerinden çalışabilir ve bu bağımsızlık geçiş sırasında yararlıdır. Genel IPv6 çıkışı sonradan eklenirse sağlayıcı tahsisini, kaynak adres seçimini ve dönüş yönlendirmesini yeni bir tasarım adımı olarak yeniden ele alın; yukarıdaki özel plan siteler arası trafik için geçerliliğini korur.

İlgili makaleler