Bizim payımız bunun ikinci yarısında yatıyor: Biz Geonode olarak proxy satışı yapıyoruz. Gerçek şu ki, alt ağ çeşitliliği gerçek bir kalite göstergesidir ve havuz büyüklüğü çoğunlukla pazarlama amaçlı bir rakamdır — ve bu, bizim sektörümüz de dahil olmak üzere tüm sektörün aleyhine işliyor, çünkü "150 milyon IP" ifadesini bir açılış sayfasına yazmak, "adreslerimiz, ihtiyacınız olan ülkelerde N farklı /24 aralığını kapsıyor" ifadesini yazmaktan çok daha kolaydır. Bu makaleden tek bir şey çıkaracaksanız, o da bir sağlayıcıya sormanız gereken soru olsun: kaç adres olduğu değil, bunların nasıl dağıldığı. Bu, yanıtlanması daha zor ama daha yararlı bir sorudur.
Temel Fikir
Her IP adresi aynı anda iki işlev görür. Adresin bir kısmı, bilgisayarın hangi ağda olduğunu belirtir; geri kalan kısmı ise o ağdaki hangi bilgisayar olduğunu belirtir.
192.168.10.42
└──────┘ └─┘
network host
Bu ayrımın nerede yapıldığı sabit değildir. Bu, alt ağ maskesi veya eşdeğer olarak CIDR gösterimindeki önek uzunluğu ile tanımlanır. Ağ kısmı, alt ağ kimliği'dir — bazen ağ adresi veya ağ önek olarak da adlandırılır — ve bu alt ağdaki her makine için aynıdır.
Yönlendiriciler buna önem verir çünkü bu sayede toplu kararlar alabilirler. Bir yönlendiricinin her adres için ayrı bir kurala ihtiyacı yoktur; her ağ için bir kurala ihtiyacı vardır. Bu toplama işlemi, internetin yönlendirme tablolarının yönetilebilir boyutta olmasının tek nedenidir.
CIDR Notasyonu: Aslında Nasıl Yazılır?
Günümüzde bu ayrım açıkça belirtilmektedir. RFC 4632 bu biçimi şu şekilde tanımlamaktadır:
Bir önek, geleneksel IPv4 adresi veya ağ numarası gibi 4 oktetlik bir sayı olarak gösterilir; ardından "/" (çizgi) karakteri gelir ve bunu, anlamlı bit sayısını belirten 0 ile 32 arasındaki bir ondalık değer izler.
Dolayısıyla 192.168.99.0/24, ilk 24 bitin ağ olduğunu ve kalan 8 bitin ana bilgisayarları tanımladığını ifade eder. RFC, eski sınıf sisteminden yapılan eşlemeyi de vermektedir: maske 255.255.0.0 olan eski "Sınıf B" ağı 172.16.0.0, 172.16.0.0/16 şeklindedir; eski "Sınıf C" ağı 192.168.99.0 ise 192.168.99.0/24 şeklindedir.
RFC'nin ifadesiyle, eski sabit sınıflara kıyasla avantaj şudur: "Açık önek uzunluklarına sahip sınıfsız öneklerin kullanılması, adres alanı bloklarının gerçek ihtiyaçlara göre çok daha esnek bir şekilde eşleştirilmesini sağlar. Eskiden yalnızca üç ağ boyutu varken, artık bir ile 2^32 arasındaki herhangi bir ikinin kuvveti büyüklüğündeki son sistem adresi bloğunu tanımlamak üzere önekler tanımlanabilir."
| Önek | Maske | Adresler | Kullanılabilir ana bilgisayarlar |
|---|---|---|---|
| /24 | 255.255.255.0 | 256 | 254 |
| /25 | 255.255.255.128 | 128 | 126 |
| /26 | 255.255.255.192 | 64 | 62 |
| /27 | 255.255.255.224 | 32 | 30 |
| /28 | 255.255.255.240 | 16 | 14 |
| /30 | 255.255.255.252 | 4 | 2 |
| /32 | 255.255.255.255 | 1 | 1 |
Her sıradan alt ağda iki adres, ana bilgisayarlar için kullanılamaz: ilki alt ağ kimliğinin kendisidir, sonuncusu ise yayın adresidir. Bu nedenle bir /24'te 256 yerine 254 adres bulunur.
Önek numarası ne kadar küçükse, blok o kadar büyüktür. Bir /8 devasa boyuttadır — RFC'de, IANA'nın Bölgesel İnternet Kayıt Kuruluşlarına (RIR'ler) "2^24 adreslik bitişik, bit hizalı bloklar (diğer adıyla /8 önekleri)" olarak tahsis ettiği ve RIR'lerin bunları daha sonra alt bölümlere ayırdığı belirtilmektedir.
Alt Ağ Kimliği Nasıl Hesaplanır?
Teknik cevap: Adres ile maskenin bit bazında AND işlemi.
192.168.10.42/24
için:
address 11000000.10101000.00001010.00101010
mask 11111111.11111111.11111111.00000000
AND 11000000.10101000.00001010.00000000
= 192.168.10.0
Alt ağ kimliği 192.168.10.0
, yayın adresi 192.168.10.255
ve kullanılabilir ana bilgisayarlar .1
ile .254
arasında yer alır.
Bir oktet sınırına denk gelmeyen bir önekte hesaplama o kadar açık değildir. 192.168.10.42/26
için maske 255.255.255.192
olduğundan, son oktet 2 ağ biti ve 6 ana bilgisayar biti olarak bölünür. Bu da 0, 64, 128 ve 192 sınırlarında, her biri 64 adreslik dört alt ağ oluşturur. 42, ilk bloğa düştüğü için alt ağ kimliği 192.168.10.0
ve yayın adresi 192.168.10.63
olur.
Uygulamada, bunu bir araca bırakalım:
ipcalc 192.168.10.42/26
Ya da Python'da:
import ipaddress
net = ipaddress.ip_network('192.168.10.42/26', strict=False)
print(net.network_address) # 192.168.10.0
print(net.broadcast_address) # 192.168.10.63
print(net.num_addresses) # 64
strict=False
'i önemlidir: bu, kütüphaneye bir ana bilgisayar adresi verdiğinizi ve adresin bir ağ olduğunu belirtmek yerine, içinde bulunduğu ağı istediğinizi bildirir.
Özel Adres Aralıkları ve Neden Her Yerde Karşılaştığınız
Üç adres aralığı, genel internette asla görünmez. RFC 1918 bu aralıkları ayırmıştır:
10.0.0.0 - 10.255.255.255 (10/8 prefix)
172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
RFC, bunları "24 bitlik blok", "20 bitlik blok" ve "16 bitlik blok" olarak tanımlar ve bunları kullanan bir kuruluşun "IANA veya bir İnternet kayıt kuruluşuyla herhangi bir koordinasyona gerek kalmadan bunu yapabileceğini" belirtir.
Bilmeniz gereken pratik sonuçlar:
Bu adresler internet üzerinden yönlendirilemez. Dünyadaki her ev yönlendiricisi 192.168.x.x adresleri dağıtır ve bunların hiçbiri çakışmaz, çünkü hiçbiri binanın dışına çıkmaz.
Bunlardan birini "harici IP" olarak döndüren bir proxy, yanlış yapılandırılmıştır. Bir arama hizmeti 10.x veya 192.168.x adresi bildiriyorsa, yoldaki bir şey genel bir adres yerine dahili bir adres bildiriyor demektir.
Bu adresler, NO_PROXY yapılandırması açısından önemlidir. Özel adres aralıklarını proxy işleminden hariç tutmak standart bir uygulamadır ve bu konuda hata yapmak, dahili hizmetlerin gizemli bir şekilde harici bir proxy üzerinden yönlendirilmesinin yaygın bir nedenidir.
Alt Ağlar Proxy'ler İçin Neden Önemlidir?
İşte burada bir ağ kavramı, bir satın alma kararına dönüşüyor.
Engelleme, alt ağ düzeyinde gerçekleşir. Bir site, bir adresin sorun teşkil ettiğine karar verdiğinde, tek bir adresi engellemek genellikle anlamsızdır; çünkü operatörün aynı blokta 253 adres daha vardır. Bu nedenle pratik çözüm, aralığı engellemektir — genellikle /24, bazen daha geniş aralıklar. Bu, standart bir savunma uygulamasıdır ve sitenin bakış açısından tamamen mantıklıdır.
Sizin için sonuç: Proxy havuzunuz birkaç alt ağ içindeki çok sayıda adresten oluşuyorsa, çok küçük bir havuz gibi davranır. 203.0.113.0/24'taki elli adres, engelleme açısından elli adrese değil, tek bir adrese daha yakındır. Tek bir yanlış hesaplanmış istek oranıyla hepsini kullanamaz hale getirebilirsiniz.
İşte bu yüzden havuz boyutu yetersiz bir ölçüttür. "10 milyon IP" size dağılım hakkında hiçbir şey söylemez. Dört bin farklı /24'e yayılmış on bin adreslik bir havuz, birkaç yüze yoğunlaşmış bir milyonluk bir havuzdan daha dayanıklıdır. Ardışık adresler, bir sağlayıcı için edinmesi ucuzdur ve tam da önemli olan şekilde birbiriyle ilişkilidir.
Veri merkezi ve konut adresleri bu açıdan yapısal olarak farklılık gösterir. Veri merkezi adresleri, barındırma sağlayıcılarına bitişik bloklar halinde tahsis edilir; bu nedenle hem ucuzdur hem de toplu olarak tanımlanması ve engellenmesi kolaydır — bir site, birkaç kural ile bir barındırma sağlayıcısının tahsis ettiği tüm adresleri engelleyebilir. Konut adresleri ise tüketici ISS’lerinden gelir, birçok bloğa dağılmış, dinamik olarak atanmış ve sıradan kullanıcılarla karışık haldedir. Bu dağılım, ekstra ödediğiniz ücretin önemli bir kısmını oluşturur.
Alt ağ çeşitliliği de adresleri nasıl dönüşümlü kullanmanız gerektiğini etkiler. Tek bir /24 içindeki adresleri dönüşümlü kullanmak, gerçek anlamda bir dönüşüm sayılmaz. Sağlayıcınız blokları görebilmenizi sağlıyorsa, isteklerinizi sırayla değil, bloklar arasında dağıtın.
Bir Havuzdaki Alt Ağ Çeşitliliğini Kontrol Etme
Karar vermeden önce, deneme aşamasında bunu yapmanızda fayda var.
Çıkış adreslerinden bir örnek toplayın ve farklı /24'leri sayın:
for i in $(seq 1 200); do
curl -s -x "$PROXY" https://api.ipify.org
echo
done | sort -u > ips.txt
wc -l < ips.txt # distinct addresses
cut -d. -f1-3 ips.txt | sort -u | wc -l # distinct /24 blocks
Önemli olan oran budur. Yüz seksen /24'te iki yüz benzersiz adres, iyi dağıtılmış bir havuzdur. Altı /24'te iki yüz adres ise göründüğünden çok daha küçük bir havuzdur.
Daha genel bir bakış için bunu /16'lara genişletin:
cut -d. -f1-2 ips.txt | sort -u | wc -l
Mümkünse otonom sistem numaralarını da kontrol edin; çünkü tek bir operatöre ait birçok /24'e yayılmış bir havuz, alt ağ sayısının gösterdiğinden daha az çeşitlilik gösterir. Bir adres örneğinde whois
komutunu çalıştırarak bunu öğrenebilirsiniz.
Bunu toplu olarak değil, ülke bazında yapın. Küresel olarak mükemmel çeşitliliğe sahip bir havuz, aslında ihtiyacınız olan tek bir konumda yoğunlaşmış olabilir — ve toplu rakamlar bunu tamamen gizler; bu da proxy'leri test etmenin neden önemli olduğu başlıklı yazımızda anlattığımız sessiz arıza sorunuyla aynıdır.
Alt Ağın Üstünde: ASN’ler, WHOIS ve Geofeeds
Alt ağlar hiyerarşinin bir kademesidir ve bunların üstündeki kademeler de bir adresin nasıl değerlendirildiği açısından aynı derecede önemlidir.
Bölgesel kayıt kuruluşları, alt kademelere tahsisat yapar. RFC 4632 bu zinciri şöyle açıklar: IANA, Bölgesel İnternet Kayıt Kuruluşlarına (RIR) /8 blokları tahsis eder ve RIR’ler de “buna karşılık, daha küçük adres bloklarını tahsis eder veya atar”. Dolayısıyla her bir genel adres, iç içe geçmiş bir tahsis kümesinin içinde yer alır ve her seviye kamuya açık bir kayıttır.
WHOIS, bir bloğun kime ait olduğunu gösterir. Bir adres sorgulandığında, adresin ait olduğu tahsis, kuruluş, ülke ve genellikle bir irtibat kişisi bilgisi döndürülür. Bir adresin bir barındırma sağlayıcısına mı yoksa bir tüketici ISS'sine mi ait olduğunu herkes bu şekilde belirler — bu bir çıkarım değil, bir aramadır:
whois 203.0.113.10 | grep -iE 'netname|orgname|country|cidr'
Otonom Sistem Numaraları (ASN), blokları operatöre göre gruplandırır. Bir AS, tek bir yönlendirme politikası altındaki önekler kümesidir ve tek bir operatör, tek bir ASN altında yüzlerce ayrı bloğu duyurabilir. Veri merkezi trafiği için toptan engellemenin genellikle gerçekleştiği seviye budur: bir site, barındırma sağlayıcısının /24'lerini tek tek listelemez, ASN'yi engeller.
Havuz değerlendirmesi açısından pratik sonuç, /24 çeşitliliğinin gerekli olduğu ancak tek başına yeterli olmadığıdır. Tek bir barındırma ASN'si altında bulunan dört yüz farklı /24, tek bir kural ile engellenebilir. Bir örneğin ASN dağılımını kontrol etmek, alt ağ sayımıyla birlikte yapılmaya değer ikinci ve daha genel bir testtir:
for ip in $(head -50 ips.txt); do
whois "$ip" | grep -iom1 'AS[0-9]\+'
done | sort | uniq -c | sort -rn
Geofeed'ler, konum verilerinin düzeltilmesini sağlar. Ağ operatörleri, RFC 8805'te standartlaştırılmış şekilde öneklerini konumlara eşleyen, makine tarafından okunabilir bir dosya yayınlayabilir ve coğrafi konum sağlayıcıları bu dosyaları işler. Bu, aksi takdirde sağlayıcının yetersizliği gibi görünen bir olguyu açıklar: iki coğrafi konum veritabanının aynı adres konusunda uyuşmaması; çünkü biri en son coğrafi besleme güncellemesini almış, diğeri ise almamıştır. Coğrafi konum belirleme adres bazında değil önek bazında olduğundan, bir düzeltme yapıldığında tüm alt ağın konumu bir anda değişir.
İtibar her iki yönde de devredilir. Bir adres, /24'ünden, daha büyük tahsisinden ve ASN'sinden miras alır. Aynı zamanda buna katkıda bulunur. Bu nedenle, paylaşımlı bir konut havuzundaki kurallara uyan bir kullanıcı, saatler önce başka birinin davranışından etkilenebilir ve "proxy çalışmayı durdurdu" durumunun çoğu zaman kullanıcının yaptığı bir şeyden kaynaklanmaması da bu yüzden olur.
Bir havuzu değerlendiren herkes için ortaya çıkan kontrol listesi kısadır: bir örneklemdeki farklı /24'leri sayın, farklı ASN'leri sayın, konut havuzu için ödeme yapıyorsanız WHOIS kayıtlarının barındırma şirketlerinden ziyade tüketici ISS'lerine benzediğini kontrol edin ve tüm bunları toplu olarak değil, ülke bazında tekrarlayın.
IPv6, Aritmetiği Değiştiriyor
Kısaca, çünkü bu konu giderek daha fazla önem kazanıyor.
IPv6, önek uzunluğu 128'e kadar olan aynı CIDR notasyonunu kullanır. Geleneksel tahsisler çok daha büyüktür: tek bir uç site genellikle bir /48 veya /56 alır ve tek bir ağ segmenti geleneksel olarak bir /64'tür — bu da tüm IPv4 internetinden daha fazla adres içerir.
İtibar ile ilgili her şey için iki sonuç ortaya çıkar:
Anlamlı birim tek bir adres değil, /64'tür. Tek bir abone tüm /64'ü kontrol ettiği için, tek bir IPv6 adresini engellemek hiçbir işe yaramaz. IPv6'yı akıllıca kullanan siteler, itibarı /64 veya daha geniş birimlerde izler.
Çok sayıda adresin olması tek başına bir anlam ifade etmez. Çok sayıda IPv6 adresi sunduğunu belirten bir sağlayıcı, aslında tek bir /64'ü tanıtıyor olabilir. Asıl önemli olan soru, adres havuzunun kaç farklı /64'ü veya daha iyisi /48'i kapsadığıdır.
Sık Sorulan Sorular
Alt ağ kimliği nedir?
IP adresinin, tek tek ana bilgisayarları değil, ağı tanımlayan kısmıdır. Adrese alt ağ maskesi uygulanarak elde edilir ve o alt ağdaki tüm makineler bunu paylaşır. CIDR gösteriminde, 192.168.10.0/24 örneğinde olduğu gibi önek uzunluğu ile yazılır.
Bir IP adresinden alt ağ kimliğini nasıl hesaplarım?
Adres ile alt ağ maskesi arasında bit bazında AND işlemi gerçekleştirin. 192.168.10.42/24 adresi için maske 255.255.255.0 olduğundan, sonuç 192.168.10.0 olur. Oktet hizalı olmayan önekler için bir araç kullanın — ipcalc veya Python'un ipaddress.ip_network(addr, strict=False) komutunu kullanabilirsiniz.
IP adresinde /24 ne anlama gelir?
İlk 24 bitin ağ önekini oluşturduğu ve 8 bitin ise ana bilgisayarlara ayrıldığı anlamına gelir. Bir /24, 256 adres içerir; bunlardan 254'ü kullanılabilir, çünkü ilki alt ağ kimliği, sonuncusu ise yayın adresidir. Bu, 255.255.255.0 maskesine karşılık gelir.
Web siteleri neden alt ağların tamamını engeller?
Çünkü operatör aynı bloktaki diğer 253 adresi kontrol ediyorsa, tek bir adresi engellemenin pek bir faydası olmaz. Aralığı engellemek etkili bir önlemdir ve standart bir uygulamadır. İşte bu nedenle, yoğun proxy havuzları, adres sayılarının gösterdiği kadar büyük havuzlar gibi davranmazlar.
Bir proxy havuzu kaç alt ağı kapsamalıdır?
Bunun için tek bir sayı yoktur, ancak önemli olan orandır: birkaç yüz çıkış adresinden örnek alın ve farklı /24'leri sayın. Adreslere göre blokların oranının yüksek olması, gerçek çeşitliliği gösterir. Toplam olarak değil, ülke bazında ölçün; çünkü bir havuz küresel olarak çeşitlilik gösterirken, tam da ihtiyacınız olan yerde yoğunlaşmış olabilir.
Alt ağ çeşitliliği, havuz boyutundan daha mı önemlidir?
Engellemelere karşı dayanıklılık açısından, evet. Aynı /24 aralığındaki adresler birbiriyle ilişkilidir — tek bir blok hepsini devre dışı bırakabilir. Arka arkaya gelen adresler, bir sağlayıcı için edinmesi en ucuz adres türüdür; bu nedenle, çeşitliliği zayıf olan büyük bir havuz, tanıtımı kolay olsa da göründüğünden daha az kullanışlıdır.
Özel IP aralıkları nelerdir?
10.0.0.0/8, 172.16.0.0/12 ve 192.168.0.0/16; bunlar RFC 1918 tarafından dahili kullanım için ayrılmıştır ve hiçbir zaman genel internette yönlendirilmez. Herhangi bir kuruluş, koordinasyona gerek kalmaksızın bunları kullanabilir. Bir proxy, bunlardan birini harici adresiniz olarak bildiriyorsa, yapılandırmada bir sorun vardır.
Alt ağ oluşturma, IPv6'da farklı mı çalışır?
Notasyon aynıdır, ancak ölçek farklıdır. Uç noktalar genellikle bir /48 veya /56 alır ve tek bir segment bir /64'tür; bu, tüm IPv4 internetinden daha büyüktür. Bir abone tüm bir /64'ü kontrol ettiği için, itibar ve engelleme işlemleri /64 veya daha kaba bir ölçekte gerçekleştirilir — bu nedenle ham IPv6 adres sayılarının bir anlamı neredeyse yoktur.
Sonuç
Alt ağ kimliği, bir IP adresinin ağ kısmını ifade eder ve ağ maskesi ya da CIDR önek uzunluğu ile belirlenir. Bu basit bir kavramdır ve arkasındaki matematiksel işlem, tek satırlık bir komut dosyasıyla gerçekleştirebileceğiniz bit bazlı AND işlemidir.
Bunu bir ağ kursu dışında anlamaya değer kılan şey, internetin alt ağları birimler olarak ele almasıdır. Yönlendiriciler bunlara göre toplama yapar, kayıt kuruluşları bunlara göre tahsis eder ve — ticari açıdan önemli olan kısım — siteler bunlara göre engelleme yapar. Bir adres nadiren tamamen kendi özelliklerine göre değerlendirilir; komşularının itibarını da miras alır.
Dolayısıyla, satın almak üzere adresleri değerlendirirken, iyi bir havuzu dolgulu olandan ayıran unsur sayıdan ziyade dağılımdır. Birkaç yüz çıkış noktasını örnekleyin, farklı /24'leri sayın, bunu ülke bazında yapın ve bu oranı sağlayıcılar arasında karşılaştırın. Bu işlem on dakika sürer; satıcıların ana sayfalarında göstermedikleri bir rakamdır ve havuzun nasıl davranacağını, manşetteki rakamdan çok daha iyi öngörür.
