İlkten sona bir IP aralığını tam VPN rotalarına dönüştürün
İlk ve son adres arasındaki aralık nadiren tek bir öneke sığar. Aralığı tam CIDR bloklarına dönüştürün ki rota aralık dışındaki hedefleri yakalamasın.
Biri size bir ilk ve bir son adres verip VPN rotası ister. Cazip hamle iki ucu da içeren en kısa öneki seçmektir ve bu hamle kimsenin istemediği hedefleri sessizce ekler. Bir CIDR bloğunun boyutu her zaman ikinin kuvvetidir ve başlangıç adresi buna hizalıdır, bu yüzden keyfi bir aralık genellikle birden fazla gerektirir. Aralığı dolaşın, tam olarak bölün, sonra hemen dışındaki adresleri denetleyin.
Önekten değil aralıktan başlayın
Başka bir şey yazmadan önce ilk adresi ve son adresi yazın. Çift, gereksinimin kendisidir; önek onun yalnızca olası bir ifadesidir ve bazen yanlış olandır. İki sayıyı denetlemek de bir maskeden çok daha kolaydır.
Hizalı bir aralık tek bloğa çöker. Hizalı olmayan bir aralık birkaç bloğa ayrılır ve bu ayrıştırma yaklaşık değil tamdır. Yapmamanız gereken şey dışa doğru yuvarlayıp buna yeterince yakın demektir, çünkü fazladan adresler rotanın taşıdığı politikayı alır.
Hatanın iki yönü de önemlidir. Tünele giden bir rota için fazladan adresler VPN’e çekilir. Atlatma istisnası için fazladan adresler onu atlar. Sonuçların hiçbiri yalnızca kurduğunuz öneki gösteren bir rota tablosunda görünmez.
Birinci durum: aralık tesadüfen hizalı
198.51.100.64 ile 198.51.100.127 arasını alın. İlk adres 64 adreslik bir sınıra hizalıdır ve aralık tam olarak 64 adrestir, bu yüzden tek bir /26 onu artık kalmadan tanımlar.
Bu kolay durumdur ve onu tanımak değerlidir, çünkü gereksinimin muhtemelen zaten öneklerle düşünen biri tarafından yazıldığı anlamına gelir. Denetimin kısa olduğu anlamına da gelir: boyutun ikinin kuvveti, başlangıcın da o boyutun katı olduğunu doğrulayın.
Belgeleme aralıkları iyi örneklerdir tam da kimse onlara sahip olmadığı için. Bu adresleri gerçek bir tünele kurmayın ve size verilen aralığın yalnızca sıra dışı göründüğü için belgeleme alanı olduğunu varsaymayın.
İkinci durum: hizalı değil, o yüzden bölün
Şimdi 198.51.100.100 ile 198.51.100.107 arasını alın. Bunlar sekiz adrestir, yani ikinin kuvvetidir, ancak 100 sekizin katı değildir. O boyutta tek bir blok orada başlayamaz, bu yüzden aralık birden fazla blokla kaplanmalıdır.
Tam kapsama iki /30 bloğudur: 198.51.100.100/30, 100 ile 103 arasını kapsar ve 198.51.100.104/30, 104 ile 107 arasını kapsar. Toplam sekiz adres, aralık dışında hiçbir şey yok ve ayrıştırma belirli bir aralık için benzersizdir.
python3 -c "from ipaddress import ip_address, summarize_address_range as s; print(*s(ip_address('198.51.100.100'), ip_address('198.51.100.107')), sep='\n')"
Standart kütüphane işlevi aritmetiği sizin için yapar ve ipaddress belgeleri ne döndürdüğünü tanımlar. Yapmadığı şey bir ağ geçidi seçmek, adreslerin kime ait olduğuna karar vermek veya arkalarındaki herhangi bir hizmete erişim vermektir.
Daha geniş önekin neyi yakalayacağını ölçün
Bir kısayolu kabul etmeden önce maliyetini hesaplayın. 198.51.100.96’da başlayan bir /28, 96 ile 111 arasını kapsar, yani sekiz yerine on altı adres. Fazladan sekiz, 96 ile 99 ve 108 ile 111 arasındadır ve her biri rotayı devralırdı.
python3 -c "from ipaddress import ip_network as n; w=set(n('198.51.100.96/28')); t=set(n('198.51.100.100/30'))|set(n('198.51.100.104/30')); print(len(w), len(t), sorted(w-t))"
Sekiz fazla hedef, bir değişiklik talebine yazabileceğiniz somut bir sayıdır. Kısayolun kabul edilebilir olup olmadığına karar veren sayı da budur ve bu aritmetik değil politika sorusudur.
Aritmetiği ve keşfi ayrı tutun. Ağ operatörünün sağladığı aralık tam olarak dönüştürülür. Değişen bir hizmetten gelen tek bir DNS yanıtı o hizmetin tam veya kalıcı aralığını ortaya koymaz ve ilgisiz adlar bir adresi paylaşabilir.
Tam kümeyi kurun ve kenarları doğrulayın
Ortaya çıkan her öneki VPN yapılandırmasının sahibine verin ve desteklenen mekanizmayla kurmalarına izin verin. Gereksinim iki girdi gerektiriyorsa, bir formu kısaltmak için birini genişletmek yerine iki girdi tutun.
sudo ip route add 198.51.100.100/30 via 10.90.0.1 dev tun0 sudo ip route add 198.51.100.104/30 via 10.90.0.1 dev tun0 ip route get 198.51.100.101 ip route get 198.51.100.97
Son iki komut insanların atladığı komutlardır. İlk iç adres yeni rotayı izlemeli, aralığın hemen dışındaki adres izlememelidir. İkisi de aynı yoldan gidiyorsa aralık, gereksinim ile yapılandırma arasında bir yerde genişletilmiştir.
İlk adresi, son adresi ve bunları ifade eden önekleri kaydedin. Kuralı bir sonraki inceleyen kişi, aritmetiği yeniden yapmadan gereksinimi yapılandırmayla karşılaştırabilir ve tam rota ile rahat rota arasındaki fark görünür kalır.