Netplan ve FRR Kullanarak Ubuntu 24.04 Ağ Kurulumu
Veri merkezlerinde ağı yalnızca bölmek yeterli değildir. Bir ağda yaşanan problem diğer ağlara sıçramamalıdır. Bu nedenle trafiğin hangi noktadan çıkacağı ve nasıl yönleneceği açık olmalıdır. Aksi durumda küçük bir hata zincirleme sorunlara yol açabilir.
Bu rehberde Ubuntu 24.04 üzerinde daha düzenli bir ağ yapısı kuracağız. Netplan ile altyapıyı oluşturacağız. VRF ile ağları ayıracağız. FRR kullanarak yönlendirmeyi dinamik hale getireceğiz.
Ağ Tasarımının Önemi
Ağ tasarımı bir sistemin temel taşıdır. Doğru tasarım yapılmadığında sistem büyüdükçe karmaşıklık ve güvenlik açıkları artar.
Katman 2 Ağ Yapısının Kurgulanması
Katman 2 seviyesinde hedef, fiziksel altyapıyı mantıksal bölümlere ayırmaktır. Bu senaryoda üç temel VLAN grubu kullanılmaktadır:
VLAN 10/20/30: Mikroservisler ve konteynerler için iç ağ bölgeleri.
VLAN 4001-4003: Gateway, Router ve ISP gibi dış dünyaya açılan uplink hatları.
Bu yapıda üç farklı VLAN grubu bulunmaktadır. İlk grup yönetim trafiğini taşımak üzere ayrılmıştır. İkinci grup iç ağda çalışan konteyner trafiğini taşır. Üçüncü grup ise dış dünyaya açık servisler için kullanılır. Bu ayrım sayesinde bir ağdaki güvenlik açığı diğer ağları doğrudan etkilemez.
Katman 2 seviyesinde yönlendirme yapılmaz. Bu katmanda yalnızca trafiğin doğru noktaya ulaşması sağlanır.

Katman 3 Seviyesinde Ağın Ayrıştırılması
Varsayılan Linux ağ yapısında tüm trafik tek bir ana kapıdan yönlendirilir. VRF (Virtual Routing and Forwarding) teknolojisi kullanılarak sistem içerisinde bağımsız sanal yönlendirme alanları oluşturulur. Olası güvenlik ihlalleri yalnızca ilgili VRF sınırları içinde kalır. Bu yaklaşım kernel seviyesinde izolasyon sağlar. Böylece aynı IP adres blokları farklı VRF’lerde sorunsuz şekilde kullanılabilir.

Ağ Bölümleri İçin VRF Kullanmanın Avantajı
Ağları ayırmak için her bölgeye ayrı bir sanal makine atanabilir. Ancak VRF ile aynı ayrım tek bir sistem üzerinde sağlanabilir. Bu yaklaşım hem kaynak kullanımını optimize eder hem de yönetimi kolaylaştırır. Ağ bölgeleri birbirinden net şekilde ayrılır. İzolasyon kernel seviyesinde gerçekleştirilir.

Örneğin PUB VRF üzerinde çalışan bir web sunucusu ele geçirilse bile, saldırganın INT VRF içerisindeki veritabanına routing yoluyla erişmesi engellenir. VRF’ler arasında doğrudan bir yönlendirme olmadığı için trafik diğer ağa geçemez. Bu yapı saldırıyı ilgili VRF ile sınırlar. İç ağ etkilenmeden çalışmaya devam eder. Sonuç olarak donanımsal bir firewall varmış gibi bir ayrım elde edilir.
Ubuntu 24.04’te Netplan Yapılandırma Mantığı
Ubuntu 24.04 sistemlerinde ağ yapılandırmaları Netplan üzerinden yönetilir. Tüm ayarlar /etc/netplan/ dizini altındaki YAML dosyalarında yer alır. Bu bölümde fiziksel ağ kartlarının tanımı yapılır. VLAN ve bridge yapıları aynı yapılandırma içerisinde oluşturulur. VRF bağlaması ile ağ bölgeleri birbirinden ayrılır.
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 Tabanlı Ağ Yapısı
Bridge’ler, konteynerler ve sanal makineler için bağlantı noktası görevi gören mantıksal switch’lerdir. Fiziksel ağ altyapısı ile sanal sistemler arasında köprü oluştururlar. Ağ trafiği bu yapı üzerinden yönlendirilir. Sanal makineler ve konteynerler bridge aracılığıyla VLAN’lara bağlanır.
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 INT VRF iç trafik için kullanılır. PUB VRF dışa açık trafiği taşır. Her iki yapı birbirinden tamamen ayrıdır. Routing tabloları ortak değildir. Trafik kendi VRF sınırları içinde kalır.
Yapılandırmayı Uygulama
sudo netplan applyFRR (Free Range Routing) Yapılandırması
Netplan ağ altyapısını oluşturur. FRR ise bu altyapı üzerinde trafiğin hangi yollardan akacağını belirler. Yönlendirme kararları FRR tarafından yönetilir. Bu sayede ağ davranışı kontrol altına alınır. FRR kullanımı Ubuntu sistemini kurumsal seviyede bir router haline getirir.
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 Yönlendirme Ayarları
FRR yapılandırması Cisco cihazlara oldukça benzeyen vtysh kabuğu üzerinden gerçekleştirilir. Bu yapılandırma arayüzü network cihazlarına aşina olanlar için tanıdıktır. En önemli kural her VRF için ayrı bir OSPF sürecini başlatılmasıdır. Yönlendiricinin diğer ağ cihazlarıyla iletişim kurabilmesi için komşuluk ilişkisi kurulması gerekir. Bu nedenle vtysh içerisinde arayüz bazlı yönlendirme tanımlamaları 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ğlı sistemler için fazla karmaşıktır. Tek VLAN ve tek uplink kullanılan senaryolarda VRF anlamlı bir avantaj sunmaz. Statik yönlendirme ihtiyacı karşılar. DNS ve izleme servisleri ek ayar gerektirir. Ölçeklenme hedefi olmayan yapılarda bu yaklaşım önerilmez.
VRF kullanmazsan ne bozulur?
VRF kullanılmadığında tüm ağ trafiği tek bir yönlendirme tablosunda toplanır. Bu durum asimetrik routing ve geri dönüş problemlerine yol açar. Farklı uplink hatları birbirinin trafiğini dolaylı olarak etkilemeye başlar. Firewall ve policy kuralları zamanla karmaşık ve yönetilmesi zor hale gelir. Aynı IP blokları tekrar kullanılamaz ve ağ mantıksal olarak ayrılmış görünse bile çekirdek seviyesinde izolasyon sağlanamaz.
Bu mimari hangi ölçekte mantıklı, nerede overkill?
Mantıklı Kullanım Senaryoları
Bu mimari aşağıdaki durumlarda anlamlı bir çözüm sunar. Birden fazla VLAN ve uplink bulunan altyapılarda ağ kontrolünü kolaylaştırır. Çoklu müşteri veya farklı ağ bölgeleri barındıran sistemlerde güvenli ayrım sağlar. IPv6 kullanılan veya planlanan ortamlarda yönlendirme esnekliği kazandırır. Konteyner ve mikroservis mimarilerinde ağ yapısını sadeleştirir. BGP veya dinamik routing kullanılan yapılarda tercih edilmelidir.
Gereksiz Karmaşıklık Oluşturabileceği Senaryolar
Bazı durumlarda bu mimari uygun değildir. Tek uplink ve tek ağ kullanılan sistemlerde statik routing yeterli olur. Kısa süreli test ve geliştirme ortamlarında ek yük getirir. Linux ağ ve routing bilgisi sınırlı ekiplerde yönetim zorlaşır.