AWS VPC’de Subnetting

vpc-subnetting

CIDR nedir?

CIDR (Classless Inter-Domain Routing), IP adreslerinin daha esnek bir şekilde tahsis edilmesini ve yönetilmesini sağlayan bir yöntemdir. Geleneksel sınıflı IP adresleme yöntemlerinin (Class A, B, C) yerine kullanılmaktadır. Ağ adresini ve bu ağdaki kullanılabilir host/cihaz sayısını belirtmek için bir notasyon kullanılır. Bu notasyon genellikle bir IP adresi, ardından “/” işareti ve bir bit sayısı (örneğin, 192.168.0.0/24) şeklinde ifade edilir. Bit sayısı, ağ maskesinin kaç bit olduğunu gösterir. Bu, ağın ne kadar büyük olduğunu, yani kaç tane cihazın bu ağda barındırılabileceğini belirler.

Örneğin 192.168.0.0/24

  • Bu örnekte, 192.168.0.0 ağ başlangıç adresidir.
  • “/24” kısmı, ağ maskesinin ilk 24 bitinin sabit olduğunu ve son 8 bitin host adresleri için kullanılabileceğini gösterir.
  • Bu durumda, ağda 2^8 = 256 adet kullanılabilir IP adresi vardır -> 192.168.0.1’den 192.168.0.254’e kadar olan aralığı belirtir.

Örneğin 10.0.0.0/16

  • Burada 10.0.0.0, ağ başlangıç adresidir.
  • “/16” notasyonu, ilk 16 bitin ağ adresi için sabit olduğunu ve kalan 16 bitin host adresleri için kullanılabileceğini belirtir.
  • Bu ağda 2^16 = 65,536 adet kullanılabilir IP adresi bulunmaktadır.

Örneğin 172.16.0.0/12

  • 172.16.0.0, ağ başlangıç adresini temsil eder.
  • “/12” ile ilk 12 bit sabitken, kalan 20 bit host adresleri için ayrılmıştır.
  • Bu ağda 2^20 = 1,048,576 adet kullanılabilir IP adresi vardır.

gibi.

Oluşan CIDR bloğunda, örneğin yukardaki 192.168.0.0/24 örneğinde, başlangıç adresinin 192.168.0.0 olduğunu ve kullanılabilir adres aralığının 192.168.0.1’den 192.168.0.254’e kadar olduğunu belirtmiştik. 192.168.0.0 adresi kullanılamaz çünkü network adresidir. 192.168.0.255 adresi de kullanılamaz çünkü bu da broadcast adresidir. Bu iki adres host adresi olarak kullanılamaz, sadece belirtilen aralıktaki adresler host adresi olarak kullanılabilir

IP adreslerinin daha verimli kullanılmasını sağlar ve internet üzerindeki IP adresi tükenme sorununa bir çözüm sunar. Daha küçük veya daha büyük ağ segmentlerinin oluşturulmasına olanak tanıyarak ağ yönetimini kolaylaştırır.

VPC oluşturmak, IPv4 veya IPv6 CIDR bloğu gerektirmektedir. VPC için maksimum ve minimum CIDR blok sayısı /16’dan /28’e kadardır. /16 blokta 65536 host barınabilirken /28’de 11 host barınabilir. VPC’de network ve broadcast adresleri host adresi olarak kullanılamaz. Yukarıdaki örnekleri kendiniz de şuradan test edebilirsiniz.

AWS, ilk 3 host adresini farklı subnetler için saklayacaktır. İlk adresi VPC Router için, ikincisini AWS DNS için, üçüncüyü de gelecekte kullanım için kendisi işgal edecektir.

Subnet mantığı

VPC içerisinde subnetler oluşturmak, instancelarınızı kullandığı networkler arasında mantıksal bölümlemeler oluşturmanızı sağlar. Böylelikle:

  • Kaynaklarınızı mantıksal olarak bölümlendirmiş olursunuz
  • Güvenlik seviyesi artar
  • Public ve private subnetler oluşturabilirsiniz
  • Subnetleri birbiriyle haberleştirebilirsiniz

veritabanlarınız için bir subnet, web servisleriniz için farklı bir subnet ile çalışmak hem daha akla yatkın olacaktır, hem de çalışma ortamınız için daha güvenli bir ortam sağlayacaktır.

Subnet oluşturma işlemi CIDR kullanılarak gerçekleştirilmektedir. Büyük bir CIDR bloğunun daha küçük CIDR bloklarına bölünmesi sürecidir. Bu işlem, IP adreslerinin daha etkin kullanımını sağlar ve ağ yönetimini kolaylaştırır.

Subnetleri private ve public şeklinde oluşturabilirsiniz. Public subnet ile kaynaklarınızın internete erişimini yönetebilirsiniz. Private subnetler de direkt olarak internete bağlı olmayacağı için kaynaklarınız daha güvenli bir ortamda işlemlerini sürdürüyor olacaktır.

Subnetler arasındaki iletişim routing tablosunda belirlenen kurallara göre gerçekleşecektir. Her bir subnet yanlızca tek bir routing tablosuyla ilişkilendirilebilir; birden fazla subnet aynı route tablosuyla ilişkilendirilebilir. VPC ilk oluşturulduğunda implicit olarak “Main Route Table” isminde bir route table oluşturulur ve subnetler varsayılan olarak bu route table ile ilişkilendirilir, daha sonrasında route table’ı kendiniz değiştirebilirsiniz. Route tablosunda Target kısmını “local” olarak işaretlemek, VPC altındaki tüm subnetlerin birbirleriyle etkileşime girmelerine olanak tanıyacaktır.

Bir subnet sadece tek bir AZ içerisinde çalışabilir olacaktır. Aynı subnetten bir tane daha oluşturup high availability kullanımı için ayırabilirsiniz.

Bir public subnette yer alan instance’ların internete erişimi olması için VPC’nin bir internet gateway ile ilişkilendirilmiş olması gerekmektedir. Ayrıca subnet, internet gatewayi hedef alan bir route’a sahip olmalıdır. Her bir subnet, internete açılabilmek için ayrı ayrı internet gateway’e sahip olmalıdır. Subnetlere otomatik IP ataması varsayılan olarak deaktiftir.

Flow logları yardımıyla subnetinizde gerçekleşen tüm trafiği izleyebilir ve CloudWatch ile entegrasyonunu sağlayıp logları filtreleyebilir hâle getirebilirsiniz.

Kaynak: AWS Networking & Content Delivery