Bir veri merkezinde ağ doğru planlanmadığında en küçük hata tüm sistemi etkileyebilir. Ağların birbirinden bağımsız çalışması bu yüzden kritik öneme sahiptir. Trafiğin izleyeceği yol baştan belirlenmelidir. Aksi halde kontrol kaybolur.
Bu yazıda Ubuntu 24.04 üzerinde ağ yapısını daha net ve yönetilebilir hale getireceğiz. Netplan ile temel ayarları yapacağız. VRF ile ağları ayıracağız. FRR ile trafiği dinamik olarak yöneteceğiz.
Ağ Mimarisi ve Katmanlı Yapının Temelleri
Ağ tasarımı bir sistemin temel taşıdır. Yanlış planlanan bir ağ yapısı sistem büyüdükçe karmaşıklığı ve güvenlik risklerini artırır.
Katman 2 Yapısının Planlanması
Katman 2 seviyesinde amaç, fiziksel altyapıyı mantıksal olarak bölümlere ayırmaktır. Bu senaryoda üç ana VLAN grubu tanımlanmıştır:
VLAN 10/20/30: Mikroservisler ve konteynerler için ayrılmış iç ağ alanları.
VLAN 4001-4003: Gateway, Router ve ISP bağlantılarını içeren dış ağ uplink hatları.
Bu mimaride üç temel VLAN grubu yer alır. İlk VLAN grubu yönetim trafiği için kullanılır. İkinci VLAN grubu iç ağda çalışan konteyner trafiğini taşır. Üçüncü VLAN grubu ise dış dünyaya açık servisleri barındırır. Bu yapı, ağlar arasında oluşabilecek güvenlik sorunlarının yayılmasını engeller.a 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 seviyesinde ağ trafiği yönlendirilmez. Bu katman yalnızca trafiğin doğru hedefe taşınmasından sorumludur.

Katman 3 Ağ Tasarımının Temeli
Standart bir Linux sisteminde ağ trafiği tek bir yönlendirme tablosu üzerinden akar. VRF (Virtual Routing and Forwarding) kullanımıyla bu yapı bölünerek sistem içinde sanal yönlendiriciler oluşturulur. Bu sayede güvenlik sorunları yalnızca ilgili VRF ile sınırlı kalır. İzolasyon doğrudan kernel seviyesinde sağlanır. Aynı IP blokları farklı VRF’ler içerisinde çakışma olmadan kullanılabilir.

VRF Tercihinin Gerekçesi
Her ağ bölgesi için ayrı bir sanal makine oluşturmak bir seçenektir. Ancak bu yaklaşım zamanla kaynak israfına yol açabilir. VRF kullanımı aynı sistemi paylaşarak ağları birbirinden ayırmayı sağlar. Yönetim daha merkezi ve kontrollü hale gelir. Çekirdek seviyesinde izolasyon korunur.

PUB VRF üzerinde bulunan bir web sunucusu hacklendiğinde, saldırgan INT VRF tarafındaki sistemlere doğrudan ulaşamaz. VRF yapısı ağlar arasında çekirdek seviyesinde sınır oluşturur. Routing tabloları birbirinden tamamen ayrıdır. Bu sayede iç ağdaki veritabanı korunmuş olur. Donanımsal firewall benzeri bir izolasyon sağlanır.
Netplan Tabanlı Ağ Yapılandırması
Ubuntu 24.04’te ağ yapılandırmasının tamamı /etc/netplan/ dizini altındaki YAML dosyaları üzerinden yapılır. Bu yapılandırma yöntemi ağ ayarlarını daha tutarlı hale getirir. Fiziksel ağ kartları doğrudan bu dosyalar içinde tanımlanır. VLAN ve bridge yapıları birlikte planlanır. VRF bağlantıları da aynı konfigürasyonun parçası olarak 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.
Ağda Bridge Yapılarının Rolü
Bridge’ler, konteynerlerin ve sanal makinelerin ağa bağlandığı mantıksal anahtarlardır. Fiziksel switch fonksiyonunu yazılım katmanında yerine getirirler. Trafik akışı bridge üzerinden kontrol edilir. Sanal sistemler ağ erişimini bu noktadan alır. Bu yapı ağın düzenli çalışmasını sağlar.
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 aşamadan itibaren INT VRF yalnızca iç ağ trafiğini yönetir. PUB VRF ise dış dünyaya açık servisler için çalışır. İki VRF arasında ortak yönlendirme bulunmaz. Her biri kendi routing tablosuna sahiptir. Trafik birbirine karışmadan ilerler.
Yapılandırmayı Uygulama
sudo netplan applyFRR ile Yönlendirme Yapısının Oluşturulması
Netplan temel ağ yapısını kurmakla sorumludur. Trafiğin nasıl yönleneceği FRR üzerinden tanımlanır. Statik ve dinamik yönlendirme kararları burada verilir. Ağ trafiği bu kurallara göre hareket eder. Bu yapı Ubuntu’yu gerçek bir yönlendirici gibi çalıştırı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 Üzerinde Yönlendirme Yapılandırması
FRR konfigürasyonu Cisco benzeri bir CLI sunan vtysh arayüzü üzerinden yapılır. Bu arayüz yönlendirme ayarlarının merkezi olarak yönetilmesini sağlar. Her VRF için bağımsız bir OSPF süreci tanımlanması kritik bir gereksinimdir. Yönlendiricinin diğer sistemlerle haberleşebilmesi için komşuluk oluşturulmalıdır. Bu işlem vtysh içinde arayüzlere özel tanımlamalarla gerçekleştirilir.
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ı?
Küçük ölçekli ve tek ağ yapısına sahip sistemlerde bu mimari fazladan yük oluşturur. Tek VLAN ve tek çıkış noktası bulunan ortamlarda VRF kullanımı gereksizdir. Statik routing bu tür yapılarda yeterli olur. DNS ve izleme servisleri yapılandırılması daha karmaşık hale gelir. Bu sebeple basit altyapılarda tercih edilmemelidir.
VRF kullanmazsan ne bozulur?
Tek yönlendirme tablosu kullanılan ağlarda VRF bulunmaz. Bu yapı asimetrik routing ve geri dönüş problemlerini kaçınılmaz hale getirir. Birden fazla uplink hattı varsa trafik birbirine karışabilir. Güvenlik ve yönlendirme kuralları karmaşık bir yapıya dönüşür. Aynı IP blokları tekrar kullanılamaz ve çekirdek seviyesinde izolasyon sağlanamaz.
Bu mimari hangi ölçekte mantıklı, nerede overkill?
Bu Yapının Mantıklı Olduğu Senaryolar
Bu yapı aşağıdaki senaryolarda mantıklı kabul edilir ve önerilir. Birden fazla VLAN ve birden fazla uplink bulunan sistemlerde ağın kontrol altında tutulmasını sağlar. Çoklu müşteri veya çoklu ağ bölgesi barındıran altyapılarda izolasyonu netleştirir. IPv6 kullanılan ya da yakın gelecekte IPv6 planlanan ortamlarda yönlendirme karmaşasını azaltır. Konteyner, mikroservis ve edge router senaryolarında esnek bir yapı sunar. BGP veya başka bir dinamik yönlendirme protokolü planlanan yapılarda anlamlı bir mimari oluşturur.
Bu Yapının Gereksiz Karmaşıklık Oluşturduğu Durumlar
Bazı senaryolarda bu yapı gereksiz karmaşıklık yaratabilir. Tek uplink ve tek ağ bulunan yapılarda statik routing yeterlidir. Geliştirme ortamları veya kısa ömürlü test sistemleri için bu mimari ağır kalır. Ağ ekipmanları ve Linux yönlendirme bilgisi sınırlı ekiplerde yönetim zorluğu oluşturur.