Giriş
Bir sunucuyu yöneten herkes için temel ağ anlayışı önemlidir. Hizmetleri çevrimiçi hale getirmeniz ve sorunsuz çalışmanız için gerekli olmakla kalmaz, aynı zamanda sorunları tanılama konusunda size fikir verir.
Bu listede bazı ortak ağ konseptlerine temel bir bakış sağlayacağız. Temel terminolojiyi, ortak protokolleri ve farklı ağ katmanlarının sorumluluklarını ve özelliklerini tartışacağız.
Bu liste işletim sistemi için önemli olmayabilir, ancak sunucunuzda ağ kullanan özellikleri ve hizmetleri kullanırken çok yardımcı olacaktır.
Network Sözlüğü
Ağları derinlemesine incelemeye başlamadan önce, bu kılavuz boyunca göreceğiniz bazı ortak terimleri ve ağ oluşturma ile ilgili diğer kılavuz ve bilgilerini tanımlamalıyız.
Bu terimler aşağıdaki gibidir:
- Bağlantı / Connection: Ağda, bağlantı, ağ üzerinden aktarılan ilgili bilgi parçalarını ifade eder. Bu genellikle, bir bağlantının veri aktarımından önce kurulduğunu (bir protokolde belirtilen prosedürleri izleyerek) kurulduğunu ve daha sonra veri aktarımının sonunda yapılandırıldığını gösterir.
- Paket / Packet: Bir paket, genel olarak konuşursak, ağ üzerinden aktarılan en temel birimdir. Bir ağ üzerinden iletişim kurarken, paketler verilerinizi (bir parça halinde) bir uç noktadan diğerine taşıyan zarflardır.
Paketler, kaynak ve hedef, zaman damgaları, ağ atlama noktaları vb. paket hakkında bilgi içeren bir başlık kısmına sahiptir. Bir paketin ana kısmı, aktarılmakta olan verileri içerir. Bazen gövde veya yükü de denir.
- Ağ Arabirimi / Network Interface: Bir ağ arabirimi, herhangi bir yazılım arabirimini ağ donanımına yönlendirebilir. Örneğin, bilgisayarınızda iki ağ kartı varsa, bunlarla ilişkili her ağ arayüzünü ayrı ayrı kontrol edebilir ve yapılandırabilirsiniz.
Bir ağ arayüzü fiziksel bir cihazla ilişkilendirilebilir veya sanal bir arayüzün temsili olabilir.
- LAN: LAN, “yerel alan ağı” anlamına gelir. Bir ağa ya da bir ağın, daha büyük internet tarafından halka açık olmayan bir kısmına atıfta bulunur. Bir ev veya ofis ağı bir LAN örneğidir.
- WAN: WAN “geniş alan ağı” anlamına gelir. Bir LAN’dan çok daha geniş bir ağ anlamına gelir. WAN genel olarak büyük, dağınık ağları tanımlamak için kullanılacak uygun terim olsa da, genellikle bir bütün olarak internet anlamına gelir.
Bir arayüzün WAN’a bağlı olduğu söylenirse, genellikle internet üzerinden erişilebilir olduğu varsayılır.
- Protokol / Protocol: Protokol, cihazların iletişim kurmak için kullanabilecekleri bir dili tanımlayan bir dizi kural ve standarttır. Ağ oluşturmada yaygın olarak kullanılan çok sayıda protokol vardır ve bunlar genellikle farklı katmanlarda uygulanır.
Bazı düşük seviyeli protokoller TCP, UDP, IP ve ICMP’dir. Bu alt protokollere dayanan bilinen bazı uygulama katmanı protokol örnekleri, HTTP (web içeriğine erişmek için), SSH, TLS / SSL ve FTP’dir.
- Bağlantı Noktası / Port: Bağlantı noktası, belirli bir yazılım parçasına bağlanabilen tek bir makinedeki adrestir. Fiziksel bir arayüz veya konum değildir, ancak sunucunuzun birden fazla uygulama kullanarak iletişim kurabilmesini sağlar.
- Güvenlik Duvarı / Firewall: Güvenlik duvarı, bir sunucuya giren veya çıkan trafiğe izin verilip verilmeyeceğine karar veren bir programdır. Bir güvenlik duvarı genellikle hangi portlarda hangi tür trafik için kabul edilebilir olduğu kuralları oluşturarak çalışır. Genellikle güvenlik duvarları, sunucudaki belirli bir uygulama tarafından kullanılmayan bağlantı noktalarını engeller.
- NAT: NAT, ağ adres çevirisi anlamına gelir. Yönlendirme sunucusuna gelen istekleri, LAN’da bildiği ilgili aygıtlara veya sunuculara çevirmenin bir yoludur. Bu genellikle fiziksel LAN’larda istekleri bir IP adresi üzerinden gerekli arka uç sunucularına yönlendirmenin bir yolu olarak uygulanır.
- VPN: VPN sanal özel ağın kısaltmasıdır. Gizliliği koruyarak, İnternet üzerinden ayrı LAN’ları bağlamanın bir yoludur. Bu, genellikle güvenlik nedeniyle, uzaktaki sistemleri yerel bir ağdaymış gibi bağlamanın bir aracı olarak kullanılır.
Karşılaşabileceğiniz başka birçok terim var ve bu liste çok ayrıntılı göze alamaz. İhtiyacımız olan diğer terimleri açıklayacağız. Bu noktada, gelecek konuları daha iyi tartışmamızı sağlayacak bazı temel, üst düzey kavramları anlamanız gerekir.
NetWork Katmanları / Network Layers
Ağ oluşturma genellikle topoloji açısından yatay bir şekilde tartışılırken, ana bilgisayarlar arasında uygulanması, bir bilgisayar veya ağ boyunca dikey bir şekilde düzenlenir.
Bunun anlamı, iletişimin daha kolay çalışması için birbiri üzerine inşa edilmiş çoklu teknolojiler ve protokoller olmasıdır. Her art arda, daha yüksek katman, ham verileri biraz daha fazla soyutlar ve uygulamalar ve kullanıcılar için kullanımı kolaylaştırır.
Ayrıca, bu tür trafikle ilgilenen protokolleri ve uygulamaları geliştirmek için zaman ve enerjiye yatırım yapmak zorunda kalmadan alt katmanları yeni yollardan yararlanmanıza olanak tanır.
Her katman düzeninden bahsetmek için kullandığımız dil, kullandığınız modele bağlı olarak büyük ölçüde değişir. Katmanları tartışmak için kullanılan modele bakılmaksızın, veri yolu aynıdır.
Veriler bir makineden gönderildiğinde yığının en üstünde başlar ve aşağıya doğru süzülür. En düşük seviyede, başka bir makineye gerçek iletim gerçekleşir. Bu noktada, veriler diğer bilgisayarın katmanları arasında geriye doğru hareket eder.
Her katman, bitişik katmandan aldığı verinin etrafına kendi “sargısını” ekleme kabiliyetine sahiptir; bu, ardından gelen katmanların, aktarıldığında verilerle ne yapılacağına karar vermesine yardımcı olur.
OSI Model
Tarihsel olarak, farklı ağ iletişimi katmanları hakkında konuşma yöntemlerinden biri OSI modelidir. OSI Açık Sistemler Bağlantısı anlamına gelir.
Bu model yedi ayrı katman tanımlar. Bu modeldeki katmanlar:
- Uygulama / Application: Uygulama katmanı, kullanıcıların ve kullanıcı uygulamalarının en sık etkileşimde bulundukları katmandır. Ağ iletişimi, kaynakların kullanılabilirliği, iletişim kurulacak ortaklar ve veri senkronizasyonu açısından tartışılır.
- Sunum / Presentation: Sunum katmanı kaynakları haritalamaktan ve bağlam oluşturmaktan sorumludur. Daha düşük seviyeli ağ verilerini, uygulamaların görmeyi beklediği verilere çevirmek için kullanılır.
- Oturum / Session: Oturum katmanı bir bağlantı işleyicisidir. Düğümler arasındaki bağlantıları kalıcı bir şekilde oluşturur, korur ve yok eder.
- Nakliye / Transport: Nakliye katmanı üstündeki katmanları güvenilir bir bağlantıya koymaktan sorumludur. Bu bağlamda, güvenilirlik, bağlantının diğer ucunda bozulmamış bir veri parçasının alındığını doğrulama yeteneğini ifade eder.
Bu katman, düşürülen veya bozulan bilgileri yeniden gönderebilir ve uzaktaki bilgisayarlara veri alındığını onaylayabilir.
- Ağ / Network: Ağ katmanı, ağdaki farklı düğümler arasında veri yönlendirmek için kullanılır. Hangi bilgisayara bilgi göndereceğini söyleyebilmek için adresleri kullanır. Bu katman aynı zamanda daha büyük mesajları diğer ucuna tekrar monte edilmek üzere daha küçük parçalara bölebilir.
- Veri Bağlantısı / Data Link: Bu katman, mevcut fiziksel bağlantıları kullanarak bir ağdaki farklı düğümler veya aygıtlar arasında güvenilir bağlantılar kurma ve sürdürme yöntemi olarak uygulanır.
- Fiziksel / Physical: Fiziksel katman, bağlantı kurmak için kullanılan gerçek fiziksel cihazların kullanılmasından sorumludur. Bu katman, fiziksel bağlantıları ve donanımın kendisini (Ethernet gibi) yöneten çıplak yazılımı içerir.
Gördüğünüz gibi, çıplak donanıma olan yakınlıklarına ve sağladıkları işlevselliğe bağlı olarak tartışılabilecek birçok farklı katman var.
TCP/IP Model
İnternet protokol paketi olarak bilinen TCP / IP modeli, daha basit ve yaygın olarak benimsenen bir başka katmanlama modelidir. Bazıları OSI modeliyle çakışan dört ayrı katmanı tanımlar:
- Uygulama / Application: Bu modelde, uygulama katmanı kullanıcı verileri oluşturmak ve uygulamalar arasında iletilmekten sorumludur. Uygulamalar uzak sistemlerde olabilir ve son kullanıcı için yerel olarak çalışıyor gibi görünmelidir.
İletişimin akranlar arasında gerçekleştiği söylenir. - Taşıma / Transport: Taşıma katmanı, işlemler arasındaki iletişimden sorumludur. Bu ağ seviyesi, farklı hizmetleri ele almak için portları kullanır. Kullanılan protokolün türüne bağlı olarak güvenilir olmayan veya güvenilir bağlantılar kurabilir.
- İnternet / Internet: İnternet katmanı, verileri bir ağdaki düğümden düğüme aktarmak için kullanılır. Bu katman, bağlantıların bitiş noktalarının farkındadır, ancak bir yerden diğerine gitmek için gereken gerçek bağlantı konusunda endişelenmez. IP adresleri, bu katmandaki uzak sistemlere adreslenebilir bir şekilde ulaşmanın bir yolu olarak tanımlanmaktadır.
- Link / Link: Link katmanı, internet katmanının adreslenebilir bir arayüz sunmasını sağlayan yerel ağın gerçek topolojisini uygular. Veri göndermek için komşu düğümler arasında bağlantılar kurar.
Gördüğünüz gibi, TCP / IP modeli, biraz daha soyut ve akışkan. Bu, uygulamayı kolaylaştırdı ve ağ katmanlarının kategorize edilmesinin baskın yolu olmasına izin verdi.
Arayüzler / Interfaces
Arabirimler, bilgisayarınız için ağ iletişimi noktalarıdır. Her arayüz fiziksel veya sanal bir ağ cihazı ile ilişkilidir.
Genellikle, sunucunuz sahip olduğunuz her Ethernet veya kablosuz internet kartı için yapılandırılabilir bir ağ arayüzüne sahip olacaktır.
Ek olarak, “geridöngü” veya localhost arabirimi olarak adlandırılan sanal bir ağ arabirimi de tanımlayacaktır. Bu, tek bir bilgisayardaki uygulamaları ve işlemleri diğer uygulamalara ve işlemlere bağlamak için bir arabirim olarak kullanılır. Bunu birçok araçta “lo” arayüzü olarak görebilirsiniz.
Yöneticiler çoğu zaman bir trafiği İnternet’e hizmet vermek üzere bir arayüzü ve bir LAN veya özel ağ için başka bir arabirimi yapılandırırlar.
DigitalOcean’da, özel ağ etkin olan veri merkezlerinde, VPS’nizde iki yerel ağ arabirimi (yerel arabirime ek olarak) bulunur. “Eth0” arayüzü internetten gelen trafiği idare edecek şekilde yapılandırılırken, “eth1” arayüzü özel ağ ile iletişim kurmak için çalışacaktır.
Protokoller / Protocols
Ağ oluşturma, üst üste birkaç farklı protokolü piggyback yaparak çalışır. Bu şekilde, bir veri parçası birbiri içine alınmış çoklu protokoller kullanılarak iletilebilir.
Karşılaşabileceğiniz bazı ortak protokoller hakkında konuşacağız ve farkı açıklamaya çalışacağız, aynı zamanda sürecin hangi kısmı ile ilgili olduklarına dair bir bağlam vereceğiz.
Daha düşük ağ katmanlarında uygulanan protokollerle başlayacağız ve daha yüksek soyutlamalı protokollere doğru ilerleyeceğiz.
Medya Erişim Kontrolü / Media Access COntrol
Medya erişim kontrolü, belirli cihazları ayırt etmek için kullanılan bir iletişim protokolüdür. Her cihazın, internetteki diğer cihazlardan farklı olan üretim sürecinde benzersiz bir MAC adresi alması gerekir.
MAC adresiyle donanım adresleme, üstteki yazılım çalışma sırasında bu cihazın adını değiştirse bile, bir aygıta benzersiz bir değerle başvurmanıza olanak tanır.
Medya erişim kontrolü, düzenli olarak etkileşimde bulunmanız muhtemel olan bağlantı katmanındaki tek protokollerden biridir.
IP
IP protokolü, internetin çalışmasına izin veren temel protokollerden biridir. IP adresleri her ağda benzersizdir ve makinelerin ağ üzerinde birbirlerini adreslemesine izin verir. IP / TCP modelinde internet katmanı üzerinde uygulanmaktadır.
Ağlar birbirine bağlanabilir, ancak ağ sınırlarını geçerken trafik yönlendirilmelidir. Bu protokol güvenilmez bir ağ ve aynı hedef için dinamik olarak değişebileceği birden fazla yol varsayar.
Protokolün birçok farklı uygulaması vardır. Günümüzde en yaygın uygulama IPv4’tür, ancak IPv6 mevcut IPv4 adreslerinin azlığı ve protokollerin yeteneklerindeki gelişmeler nedeniyle alternatif olarak popülerlik kazanmaktadır.
ICMP
ICMP internet kontrol mesajı protokolü anlamına gelir. Kullanılabilirliği veya hata koşullarını belirtmek için cihazlar arasında mesaj göndermek için kullanılır. Bu paketler, ping ve traceroute gibi çeşitli ağ tanılama araçlarında kullanılır.
Genellikle ICMP paketleri, farklı türde bir paket bir tür problemle karşılaştığında iletilir. Temel olarak, ağ iletişimi için bir geri bildirim mekanizması olarak kullanılırlar.
TCP
TCP, iletim kontrol protokolü anlamına gelir. IP / TCP modelinin taşıma katmanında uygulanır ve güvenilir bağlantılar kurmak için kullanılır.
TCP, verileri paketlere yerleştiren protokollerden biridir. Daha sonra bunları alt katlarda mevcut olan yöntemleri kullanarak bağlantının uzak ucuna aktarır. Diğer taraftan, hataları kontrol edebilir, bazı parçaların yeniden gönderilmesini isteyebilir ve bilgileri uygulama katmanına göndermek için tek bir mantıksal parçaya yeniden monte edebilir.
Protokol, üç yönlü el sıkışma denilen bir sistemi kullanarak veri aktarımından önce bir bağlantı kurar. Bu, iletişimin iki ucunun talebi kabul etmesinin ve veri güvenilirliğini sağlama yöntemi üzerinde anlaşmanın bir yoludur.
Veri gönderildikten sonra, benzer bir dörtlü el sıkışma kullanılarak bağlantı kopar.
TCP, WWW, FTP, SSH ve e-posta da dahil olmak üzere, internetteki en popüler kullanımların çoğu için tercih edilen protokoldür. Bugün bildiğimiz internetin TCP olmadan burada olmayacağını söylemek güvenlidir.
UDP
UDP, kullanıcı datagram protokolü anlamına gelir. TCP için popüler bir yardımcı protokoldür ve taşıma katmanında da uygulanır.
UDP ile TCP arasındaki temel fark, UDP’nin güvenilir olmayan veri aktarımı sağlamasıdır. Bağlantının diğer ucunda verinin alındığını doğrulamaz. Bu kötü bir şey gibi gelebilir ve birçok amaç için öyle. Ancak, bazı işlevler için de son derece önemlidir.
Verilerin alındığını ve yeniden gönderilmeye zorlandığını teyit etmek için gerekli olmadığından UDP, TCP’den çok daha hızlıdır. Uzak ana bilgisayarla bağlantı kurmaz, yalnızca bu ana bilgisayara verilerini atar ve kabul edilip edilmemesi önemli değildir.
Basit bir işlem olduğundan, ağ kaynaklarını sorgulamak gibi basit iletişimler için kullanışlıdır. Aynı zamanda bir durumu korumaz; bu da bir makineden gerçek zamanlı istemcilere veri aktarımı için mükemmeldir. Bu, VOIP, oyunlar ve gecikmeleri karşılayamayan diğer uygulamalar için idealdir.
HTTP
HTTP, köprü metni aktarım protokolünü ifade eder. Uygulama katmanında tanımlanan ve web üzerinden iletişimin temelini oluşturan bir protokoldür.
HTTP, uzaktaki sisteme ne istediğinizi söyleyen bir dizi işlevi tanımlar. Örneğin, GET, POST ve DELETE, istenen verilerle farklı bir şekilde etkileşime girer.
FTP
FTP, dosya aktarma protokolü anlamına gelir. Aynı zamanda uygulama katmanında bulunur ve tüm dosyaları bir ana bilgisayardan diğerine aktarmanın bir yolunu sağlar.
Doğası gereği güvensiz olduğu için, kamuya açık, yalnızca indirilebilen bir kaynak olarak uygulanmadığı sürece dışarıdan bakan herhangi bir ağ için önerilmez.
DNS
DNS, alan adı sisteminin kısaltmasıdır. İnternet kaynakları için insan dostu bir adlandırma mekanizması sağlamak için kullanılan bir uygulama katmanı protokolüdür. Bir etki alanı adını bir IP adresine bağlayan ve sitelere tarayıcınızdaki ada göre erişmenizi sağlayan şeydir.
SSH
SSH güvenli kabuk için duruyor. Uygulama katmanında uygulanan ve uzak bir sunucuyla güvenli bir şekilde iletişim kurmak için kullanılabilen şifreli bir protokoldür. Uçtan uca şifreleme ve her yerde bulunabilmesi nedeniyle bu protokol etrafında birçok ek teknoloji geliştirildi.
Kapsamadığımız ve eşit derecede önemli olan birçok protokol var. Bununla birlikte, bu size interneti ve ağları mümkün kılan bazı temel teknolojiler hakkında iyi bir genel bakış sunmalıdır.
Sonuç
Bu noktada, bazı temel ağ terminolojisine aşina olmanız ve farklı bileşenlerin birbirleriyle nasıl iletişim kurabildiklerini anlayabilmeniz gerekir.