Alt ağlar her zaman bitişik midir? [çift]


25

Alt ağ maskelerinin arkasındaki temel önceliği anlıyorum 255.255.255.0. Ancak gördüğüm tüm alt ağ örnekleri (soldan sağa) bitişik 1'ler (HI bitleri) olmuştur. Örneğin, 255.255.0.0( /16) aşağıdaki oktetlere çevirir:

11111111 . 11111111 . 00000000 . 00000000

I inanıyoruz , bu bit o gereken alt ağ bütün mesele derived ana kimliği ve uygun cihaz ID'lerinin aralıkları için, bitişik. Ama merak ettim, hiç bir alt ağ maskesi 255.17.255.0, ya da:

11111111 . 00010001 . 11111111 . 00000000
  • Bu hiç olur mu? Yoksa alt ağların bitişik 1s olmadan var olması imkansız mı? Öyleyse neden?
  • Aksi halde, bunu yapmak mümkün ise, neden (bazı somut örnekler)?

@MSalters Sadece sizin bildiğiniz gibi, otomatik yorum artık "Olası yineleniyor ..." olarak değiştirildi, böylece yorumu artık manuel olarak girmenize gerek kalmadı. ;-)
Chris Jester-Young

Kısa cevap: evet, haklısın.
Ahtapot

Yanıtlar:


18

Bölüm 3.1 RFC classless arası alan yönlendirme izin maskeleri gösterir. Uçların, yönlendirmenin düzgün çalışması için bitişik olması gerekir.

Ayrıca mantıksal olarak düşünürken garip rastgele ağ maskelerine sahip olmak gerçekten mantıklı olmaz.


28

Evet, bunu düşünmenin kolay yolu alt ağ maskelerinin başlangıçta her zaman 1 olmasıdır. Bir alt ağ boyutu göstergesinin ikili gösterimin başlangıcında 1 değeri yoksa, o zaman alt ağ boyutu göstergesinin modern standartları kullanarak uygun bir “alt ağ maskesi” olmadığını söyleyebilirim.

RFC 1219 , önceki RFC 950'nin bitişik olmayan bitlere izin verdiğini belirtir. Aslında, RFC 950 sayfa 15 (bölüm 3) açıkça “bitişik olmayan alt ağ bitlerini gösteren” bir örneğe sahiptir. Ancak, bu alt ağları CIDR notasyonuna dönüştürmenin bir yolu yoktur. en azından RFC 1884 sayfa 7'den itibaren , bölüm 2.4) 'deki ilk cümle, bu nedenle bitişik olmayan bitler IPv6 ağları için hiçbir zaman geniş çapta desteklenmedi RFC 1219'un yöntemi, “alt ağ bitleri (maske = 1) en önemli bit çalışmasından atandığını belirtir en azından doğru ". ( Sami'nin cevabında belirtilen RFC 4632 bölüm 3.1 , CIDR gösterimini tartışan resmi bir standarda işaret eder.)

RFC 1878 sayfa 2 , haricindeki tüm IPv4 alt ağları için standart “alt ağ maskesi” gösterimini gösterir /0.

Bununla birlikte, Sami'nin cevabını biraz ele alacağım, “neden” i inceleyerek (sorunun istediği gibi somut bir örnekle) ...

Bazı profesyonel sınıf Cisco ekipmanları, bitleri tersine çeviren “joker maskesi” olarak adlandırılan bir şeyi destekler. Yani normal bir alt ağ denilen bir şey ile temsil edilebilir 00000000.00000000.00000000.11111111.

Cisco'nun joker karakter maskeleriyle, ilk önce tüm sıfırların gitmesi gereken bir kural yoktu. Böylece kullanabilirsin 00000000.00000000.00000000.11111110.

Bu, tüm çift numaralı IP adreslerini içeren bir grup oluşturma ile sonuçlanacaktır.

Bunu bilmek gerçekten önemliydi, çünkü Cisco'nun eğitimi bunu kapsamıştı ve Cisco'nun profesyonel sertifikaları için inceleme süreci böyle bir şey sorabilirdi.

Ancak, çoğunlukla yararsız olduğunu düşünüyorum. Çift numaralı adresleri veya tek numaralı adresleri kullanarak bir ağı ikiye bölmek yerine, ağı yarı yarıya büyük normal alt ağlar oluşturarak düşük numaralı adresleri ve yüksek numaralı adresleri kullanarak yarıya bölebilirsiniz.

Bitişik olmayan bitlere sahip joker karakterler çok kullanışlı değildi ve çalışması daha zor olabilirdi. Alt ağ maskesi bitinin 1'e ayarlandığı nokta, bit'in bir aygıtın hangi alt ağda olduğunu belirlemeye yardımcı olduğunu söylemesidir. Bu bitlerin, adresin başında yalnızca güzel bir şekilde gruplandırmak yerine, adres boyunca yayılması için zorunlu bir neden yoktur. . Sonuç, bu tür maskeleri desteklemenin çok fazla faydası olmayan ilave bir karmaşıklık olduğuydu.

Cisco sonunda geleneksel olmayan alt ağ maskelerinin bir anlamı olmadığını kabul etti, çünkü sonunda “joker maskeleri” için destek bıraktılar. Eski Pix güvenlik duvarları “joker maskeleri” destekliyor, ancak daha yeni ASA birimleri bunun yerine standart “alt ağ maskelerini” kullanıyor .

Maskede bitişik olmayan “alt ağ bitleri” olan bir ağ bile kurmaya çalışmam, çünkü birçok yazılım yeni eğilimleri / standartları izler ve böyle bir ağ tasarımını reddeder. Eski yazılımı kullanıyor olsam bile, muhtemelen ağımın yeniden tasarlanmasına gerek kalmadan daha yeni yazılımı kullanabilmek için kolayca değiştirilebilmesini isterdim. Yani, bitişik "alt ağ bitleri", gitmek için tek yoldur.

Bir testle ilgili soru sorulursa, tüm 1'lerin adresin başında olması gerektiğini söylerken kendimi güvende hissederim. Aklı başında test yapanların, öğrencilerin çoğunluğunun bu gün ve yaşta öğrenmesini istediği şey budur.


+1 - Sonunda tüm 1'ler olmadan kullanılan joker karakter maskelerini tek gördüğüm zaman yanlış girilen maskeler.
Mark Henderson,

2

RFC 950 , bölüm 2.2’de şöyle diyor:

 To support subnets, it is necessary to store one more 32-bit
  quantity, called my_ip_mask.  This is a bit-mask with bits set in
  the fields corresponding to the IP network number, and additional
  bits set corresponding to the subnet number field.

 The code then becomes:

   IF bitwise_and(dg.ip_dest, my_ip_mask)
                               = bitwise_and(my_ip_addr, my_ip_mask)
         THEN
             send_dg_locally(dg, dg.ip_dest)
         ELSE
             send_dg_locally(dg,
                    gateway_to(bitwise_and(dg.ip_dest, my_ip_mask)))

bu yüzden teklif, bitişik bitleri umursamayan basit bir işlemle ilgiliydi.

1985 yılında CPU ve bellek çok daha sınırlıydı, bu yüzden daha karmaşık olan işlemler zamana uymayacaktı.

Bölüm 3'te daha da belirginleşir:

ve ağda 3 bitlik bir alt ağ alanı kullanımdadır (01011000), yani adres maskesi 255.255.255.88'dir.

Ancak, bu RFC'ler eski görünmektedir. Örneğin, Windows 7 SP1'de, böyle bir alt ağ maskesi ayarlamak mümkün değildir:

Windows 7'de bitişik alt ağ maskesi gerekli

Windows XP SP2'de bile, bu artık mümkün değildi:

Alt ağ maskesi Windows XP SP2

Ancak Windows 98, ReactOS klonu "garip" ağ maskesinin ayarlanmasına izin verir:

ReactOS alt ağ maskesi


1

@Sami Kuhmonen'in cevabına katılıyorum:

RFC'deki bölüm 3.1, sınıfsız alanlar arası yönlendirmede izin verilen maskeleri gösterir. Uçların, yönlendirmenin düzgün çalışması için bitişik olması gerekir. Ayrıca mantıksal olarak düşünürken garip rastgele ağ maskelerine sahip olmak gerçekten mantıklı olmaz.

Bununla birlikte, arzu edilmese veya izin alınmasa bile, ardışık olmayan 1'lerin bir alt ağ maskesini tanımlamak hala mümkündür. Bunun arkasındaki neden:
Ağ kimliği ve ana bilgisayar kimliği, ikili işlemler AND ve XOR kullanılarak IP adresi ve alt ağ maskesinden hesaplanır. Her şey anlamsız.

Bunu yıllar önce Win 2000'de test ettim, işe yarıyor. Her iki bilgisayarın da 255.160.0.0 maskesi vardı. Yönlendiricisiz bir LAN'daydılar, bu nedenle yönlendiricinin davranışını anlayamıyorum (normalde yönlendiricinin maskesini yalnızca reddedecek olan web arayüzünde ayarlayabilirsiniz).
Ayrıca, böyle bir 'geçersiz' alt ağ maskesini ağ ayarlarının ilgili alanına giremezsiniz; GUI almayı reddediyor. Ancak doğrudan kayıt defterinde değiştirerek hile yapabilirsiniz. Ardından, değişikliklerin etkin olması için NIC'yi yeniden başlatın veya devre dışı bırakın.
Tüm bunların amacı: uhm, muhtemelen hiçbiri.


Paylaşım için teşekkürler, ancak bu bağımsız bir cevap olarak nitelenmiyor. Sami Kuhmonen'in cevabı üzerine bir yorum olmalı.
agtoever 7

2
Yorum yapmak için çok uzun bir süre ... Ayrıca cevap olarak işaretlenmesini beklemiyorum.
Tobias Knauss

@ agtoever: Daha fazla ayrıntı düzenledikten ve ekledikten sonra, şimdi bunun tek başına bir cevap olarak nitelendirildiğini düşünüyorum, çünkü diğer yanıtların bir parçası olmayan fazla bilgiye sahip.
Tobias Knauss

"Bir uygulama üzerinde çalışıyor" olsa da iyi bir cevap değil . Ve sadece "bir işletim sisteminde çalışmaz" değil, hayır, belli bir bilgisayarı (önemli ölçüde) bir ağ ile test ettiniz. Bu, Windows 2000'deki alt ağ yönlendirme kodunun gerçekten işe yarayıp yaramadığını ve tam olarak ağ kimliğinin gerekli olduğu yerde doğrulamadığınızı gösterir. İki bitişik olmayan 255.160.0.0ağ arasında geçiş yapabilir misiniz ?
MSalters

@ MSalters Bir uygulamada çalışır, hala çalışıyor demektir. Olası tüm konfigürasyon işletim sistemleri için konuştuğumu iddia etmedim. Ayrıca, paketlerin bir bilgisayardan diğerine nasıl ulaştığını düşünüyorsunuz? Bilgisayar rotayı bilmek zorunda. Bu nedenle, hedef bilgisayarın aynı alt ağda mı (doğrudan paketi gönder) veya uzak mı olduğunu (bir rota için yapılandırılmış ağ geçidini sorguladığını) hesaplaması gerekir. // Hayır, böyle bir yönlendirme yapabileceğimi sanmıyorum, çünkü bu alt ağ maskelerinin kullanılması gerekmiyordu. İşe yaradığını, farklı alt ağlar olmadan çalıştığını gösterdim. Belki bu da çalışır, kim bilir ...
Tobias Knauss
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.