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 2’de yönlendirme mantığı yoktur. Trafik, tanımlı yapı üzerinden doğru kapıya aktarılır.

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.yamlFiziksel 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: {} # İç ağ (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 }*Bu ID’ler switch tarafındaki trunk yapılandırmasıyla birebir uyumlu olmalıdır.
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 applyFRR 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-pythontoolsServislerin Aktif Edilmesi
/etc/frr/daemons dosyasında ilgili protokolleri yes konumuna getirelim.
bgpd=yes
ospfd=yes
ospf6d=yes
staticd=yesBurada 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
exitSı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.