Netplan ve FRR ile Ubuntu 24.04 Ağ Yapılandırma

Veri merkezlerinin ağ yapısı büyüdükçe kontrolsüzlük ciddi bir sorun haline gelir. Bir ağda yaşanan problem diğer ağlara yayılmamalıdır. Trafiğin hangi yolu izleyeceği net değilse sistem kararsız hale gelir. Bu durum genellikle küçük yapılandırma hatalarından kaynaklanır.

Bu rehberde Ubuntu 24.04 üzerinde daha kontrollü bir ağ yapısı oluşturacağız. Netplan ile temel ağ yapılandırmasını yapacağız. VRF ile ağları ayıracağız. FRR ile yönlendirmeyi yöneteceğiz.

Ağ Yapısının Temeli ve Katmanlı Yaklaşım

Ağ tasarımı bir sistemin temel taşıdır. Yanlış kurgulanan bir ağ yapısı, sistem büyüdükçe karmaşıklığı ve güvenlik açıklarını beraberinde getirir.

Katman 2 Yapısının Oluşturulması

Katman 2 seviyesinde amaç, fiziksel altyapıyı mantıksal ağ segmentlerine ayırmaktır. Bu senaryoda üç farklı VLAN grubu kullanılmaktadır:

VLAN 10/20/30: Mikroservisler ve konteynerler için ayrılmış iç ağ segmentleri.

VLAN 4001-4003: Gateway, Router ve ISP gibi dış bağlantılara hizmet eden uplink hatları.

Bu mimaride üç temel VLAN grubu yer alır. İlk grup yönetim trafiğini taşımak üzere ayrılmıştır. İkinci grup iç ağdaki konteyner trafiğini taşır. Üçüncü grup ise dış dünyaya açık servislerin çalıştığı alanı kapsar. Bu ayrım sayesinde bir ağda oluşan güvenlik açığı diğer ağları doğrudan etkilemez.durumda. İkinci grubumuz iç ağdaki konteyner trafiğini taşıyor. Üçüncü grubumuz ise dış dünyaya açık olan servisler için kullanılıyor. Bu ayrım sayesinde bir ağdaki güvenlik açığı diğerlerini doğrudan etkilemiyor.

Katman 3 Yapısının Kurgulanması

Standart Linux kurulumlarında ağ trafiği tek bir ana yönlendirme tablosu üzerinden yönetilir. VRF (Virtual Routing and Forwarding) kullanılarak sistem içerisinde bağımsız sanal yönlendiriciler tanımlanır. Güvenlik ihlalleri yalnızca ilgili VRF kapsamında kalır. Bu yaklaşım kernel seviyesinde tam izolasyon sağlar. Böylece aynı IP blokları farklı VRF’lerde çakışmadan kullanılabilir.

Neden Ayrı Sanal Makine Yerine VRF Kullanıyoruz?

Her ağ bölgesi için ayrı bir sanal makine kurmak mümkündür. Ancak tek bir sistem üzerinde VRF kullanmak kaynakların daha verimli kullanılmasını sağlar. Bu yaklaşım yönetim süreçlerini sadeleştirir. Aynı zamanda ağlar arasında çekirdek seviyesinde izolasyon sunar. Bu nedenle VRF tabanlı mimari daha doğru bir tercih olarak öne çıkar.

PUB VRF üzerindeki bir web sunucusu güvenlik ihlali yaşasa dahi, saldırganın iç ağdaki veritabanına ulaşması mümkün değildir. INT VRF ile PUB VRF arasında doğrudan routing bulunmaz. Ağlar kernel seviyesinde ayrılmıştır. Bu yapı saldırının yayılmasını engeller. Fiziksel bir firewall varmış gibi çalışır.

Netplan Yapılandırması

Ubuntu 24.04’te tüm ağ yapılandırması /etc/netplan/ dizini altındaki YAML dosyaları üzerinden gerçekleştirilir. Ağ ayarları artık tek merkezden ve deklaratif bir yapı ile yönetilir. Bu bölümde fiziksel ağ kartları tanımlanır. VLAN, bridge ve VRF yapıları birlikte kurgulanır. Tüm ağ mimarisi Netplan üzerinden bütüncül şekilde oluşturulur.

Netplan Dosyasını Oluşturalım

sudo nano /etc/netplan/01-netcfg.yaml

Fiziksel Kartları Tanımlayalım

Fiziksel kartlara doğrudan IP vermiyoruz. Bunları yalnızca VLAN taşıyıcısı olarak kullanıyoruz.

ethernets:
ens18: {} # Dış dünya (Gateway / Router)
ens19: {} # İç  (konteyner / VM trafiği)

VLAN Yapılarını Oluşturalım

vlans:
vlan10: { id: 10, link: ens19 }
vlan20: { id: 20, link: ens19 }
vlan30: { id: 30, link: ens19 }
vlan4001: { id: 4001, link: ens18 }
vlan4002: { id: 4002, link: ens18 }
vlan4003: { id: 4003, link: ens18 }

Bridge Yapılarının Oluşturulması

Bridge’ler, konteynerlerin ve sanal makinelerin bağlandığı mantıksal switch görevini üstlenir. Fiziksel anahtarların yaptığı işi yazılım katmanında gerçekleştirirler. Ağ trafiği bridge üzerinden ilgili VLAN’a yönlendirilir. Sanal sistemler bu yapı sayesinde ağ erişimi kazanır. Bridge yapıları ağ mimarisinin temel bileşenlerinden biridir.

bridges:
  br10:
    addresses: [10.10.0.1/24, "2001:DB8:1234:A000::1/64"]
    interfaces: [vlan10]

  br20:
    addresses: [10.11.0.1/24, "2001:DB8:1234:B000::1/64"]
    interfaces: [vlan20]

  br30:
    addresses: [10.9.0.1/24, "2001:DB8:1234:9000::1/64"]
    interfaces: [vlan30]

  br4002:
    addresses: ["FE80::4002:3/64"]
    interfaces: [vlan4002]

  br4003:
    addresses: ["FE80::4003:3/64"]
    interfaces: [vlan4003]

VRF Tanımı ve Bridge’lere Bağlama

vrfs:
  INT:
    table: 120
    interfaces: [br4002, br20]

  PUB:
    table: 130
    interfaces: [br4003, br30]

Bu noktadan sonra iç trafik INT VRF üzerinden akar. Dışa açık trafik PUB VRF tarafından yönetilir. Her VRF kendi yönlendirme tablosunu kullanır. Ortak routing söz konusu değildir. Bu sayede ağlar net biçimde ayrılır.

Yapılandırmayı Uygulama

sudo netplan apply

FRR Kullanarak Trafik Yönlendirme

Netplan ağ arayüzlerini ve bağlantıları tanımlar. FRR bu bağlantılar arasında trafiğin nasıl akacağını kontrol eder. Yönlendirme kararları FRR konfigürasyonu ile şekillenir. Ağ trafiği belirlenen politikalara göre ilerler. Sonuç olarak Ubuntu bir router gibi çalışır.

FRR Kurulumu

curl -s https://deb.frrouting.org/frr/keys.gpg | sudo tee /usr/share/keyrings/frrouting.gpg
echo deb '[signed-by=/usr/share/keyrings/frrouting.gpg]' https://deb.frrouting.org/frr $(lsb_release -s -c) frr-stable | sudo tee /etc/apt/sources.list.d/frr.list
sudo apt update
sudo apt install frr frr-pythontools

Servislerin Aktif Edilmesi

/etc/frr/daemons dosyasında ilgili protokolleri yes konumuna getirelim.

bgpd=yes
ospfd=yes
ospf6d=yes
staticd=yes

Burada ospf6d protokolü IPv6 yönlendirmesi için hayati önem taşır. IPv4 için ospfd yeterlidir ancak güncelde IPv6 her zaman önceliklidir.

FRR ile OSPF Yönlendirme Ayarları

FRR üzerinde yönlendirme ayarları Cisco benzeri vtysh arayüzü kullanılarak yapılır. Bu arayüz sayesinde yönlendirme protokolleri detaylı şekilde kontrol edilebilir. Her VRF için ayrı bir OSPF süreci çalıştırmak temel bir tasarım kuralıdır. Yönlendiricinin ağdaki diğer cihazlarla iletişim kurabilmesi için komşuluk oluşturması gerekir. Komşuluk tanımları arayüz bazlı olarak vtysh üzerinden yapılır.

ipv6 forwarding
!
vrf INT
 ipv6 route 2001:db8:1234:2000::/60 blackhole
exit-vrf
!
interface br20
 ipv6 ospf6 area 1
 ipv6 ospf6 network broadcast
 ipv6 ospf6 passive
exit
!
router ospf6 vrf INT
 ospf6 router-id 10.2.0.1
 redistribute static
 area 1 stub
exit

Sık Sorulan Sorular

Bu yapı hangi senaryoda kullanılmalı?

Bu mimari küçük ve tek ağdan oluşan sistemlerde gereksiz bir karmaşıklık oluşturur. Tek VLAN ve tek uplink kullanılan yapılarda ek bir fayda sağlamaz. Statik routing yeterliyse VRF kullanımı anlamını yitirir. DNS ve izleme servisleri için ek yapılandırma ihtiyacı doğar. Bu nedenle büyüme planı olmayan altyapılarda önerilmez.

VRF kullanmazsan ne bozulur?

VRF olmadan ağ trafiği tek bir routing tablosu üzerinden yönetilir. Bu yapı asimetrik yönlendirme sorunlarını ve geri dönüş problemlerini beraberinde getirir. Birden fazla uplink kullanıldığında trafik akışı kontrolsüz hale gelir. Güvenlik duvarı ve yönlendirme politikaları karmaşıklaşır. IP adres bloklarının tekrar kullanımı mümkün olmaz ve çekirdek seviyesinde gerçek izolasyon sağlanamaz.

Bu mimari hangi ölçekte mantıklı, nerede overkill?

Bu Yapının Önerildiği Ortamlar

Bu yapı belirli ölçeğin üzerindeki altyapılar için önerilir. Birden fazla VLAN ve uplink kullanılan sistemlerde ağ trafiğini düzenler. Çoklu müşteri barındıran veya farklı ağ bölgeleri içeren yapılarda izolasyon sağlar. IPv6 kullanılan ortamlarda yönlendirme problemlerini azaltır. Konteyner, mikroservis ve edge router senaryolarında esnek kullanım sunar. Dinamik yönlendirme planlanan yapılarda mimariyi güçlendirir.

Bu Yapının Uygun Olmadığı Ortamlar

Basit ağ yapılarında bu mimari gereksiz karmaşıklık yaratır. Tek uplink ve tek ağ kullanılan sistemlerde ek fayda sağlamaz. Geliştirme ve test ortamları için ağır bir yapı olarak kalır. Ağ ve yönlendirme bilgisi sınırlı ekiplerde hata riskini artırır.

Yorum yapın