İki LAN, bir WireGuard hub'ı 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 elde edersiniz. Aşağıdaki plan, özel iki sahalı bir tasarımı bu sırayla ele alıyor. Kasıtlı olarak IPv6 internet erişimi sunmuyor.

Önekin ne için olduğuna karar verin

fd00::/8 aralığından benzersiz yerel bir önek, amaç sahalar arasında özel erişilebilirlik olduğunda doğal seçimdir. Hangi internet servis sağlayıcısının her konuma hizmet verdiğinden bağımsız olarak kararlı kalır ve genel yönlendirme tablosuna duyurulmaz; bu nedenle dahili numaralandırmanızı internete sızdıramaz.

Aynı özellik aynı zamanda sınırlamadır. Bir ULA genel bir dönüş yolu sunmaz, çünkü hiçbir üst akış onu ağ geçidinize yönlendirmeyi bilmez. Gereksinim IPv6 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 boyutuyla ayrı bir tasarım kararıdır.

Her dağıtımın /48 gerektirdiğini varsaymayın. RFC 6177 tek bir zorunlu uç saha boyutundan 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 bölün

Aşağıdaki örnek fd7c:2e91:4a00::/48 kullanıyor ve tablo, her bloğun hangi sahaya ait olduğuna 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 sahalar için boş bırakır.

Tünel adresleri bir yönetim havuzudur, bağlantı üzeri 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 gerekmediği yerde çalışmaz. Rolleri ayrık tutun ve kuruluşun adres planına kaydedin ki sonraki bir saha bir bloğu yeniden kullanmasın.

Her yönlendiriciye bir tünel adresi verin

Her yönlendiriciye bir /128 atayın ve çalışan hub'ın 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 öneki yerine AllowedIPs içinde ifade edilir.

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

Alt ağ sahipliğini AllowedIPs içine koyun

Hub'ın A sahası 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 ifadesidir. O eş bölümündeki başka hiçbir şeyin sahayı tanımlaması gerekmez.

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

B sahası için eş girdisi eşleşen çifti sahiplenir ve burada simetri kısalıktan daha önemlidir. İki satırı birlikte okuyun ve sahiplik ayrımı 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 sahanın 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 saha yalnızca hub eşi üzerinden erişilebilen hedeflere ihtiyaç duyar: A sahası hub adresini, B sahasının tünel adresini ve B'nin LAN'ını listeler; B sahası 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 sahanın 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 aynı zamanda rotalar 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

Hub'da ve her iki saha 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 hub, 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

A sahasındaki bir ana bilgisayardan B sahasındaki bir ana bilgisayara ve ardından ters yönde test edin. Hub'ın 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 sahalar arası trafik için geçerliliğini korur.

Əlaqəli məqalələr