Proxmox üzerinde sanallaştırma ortamı kurduğunuzda, işin en can sıkıcı ama aynı zamanda en kritik kısmıyla karşılaşırsınız: ağ yapılandırması. VM’lerin birbirleriyle nasıl konuşacağı, hangi VLAN’da bulunacakları, dış dünyaya nasıl çıkacakları… Bunları doğru kurmazsanız ya her şey birbirine karışır ya da hiçbir şey birbirine ulaşamaz. Bu yazıda Proxmox üzerinde bridge ve VLAN yapılandırmasını gerçek dünya senaryolarıyla birlikte ele alacağız.
Proxmox Ağ Mimarisini Anlamak
Proxmox, Linux’un native ağ altyapısını kullanır. Yani perde arkasında aslında standart Linux bridge, VLAN ve bonding mekanizmaları çalışır. Proxmox’un web arayüzü bunları yönetmek için güzel bir katman sunar ama asıl konfigürasyon /etc/network/interfaces dosyasında yaşar.
Temel bileşenleri anlamak önemli:
- Linux Bridge (vmbr): VM’lerin bağlandığı sanal switch. Fiziksel NIC’i bridge’e eklediğinizde, o NIC üzerinden gelen tüm trafiği VM’lere dağıtabilirsiniz.
- VLAN: Aynı fiziksel altyapı üzerinde mantıksal ağ segmentasyonu sağlar. 802.1Q standardını kullanır.
- Bond: Birden fazla NIC’i tek bir mantıksal arayüz olarak birleştirme. Hem redundancy hem bandwidth agregasyonu sağlar.
- VLAN-aware Bridge: Proxmox’un modern VLAN yönetim yaklaşımı. Tek bridge üzerinden birden fazla VLAN yönetmenizi sağlar.
Proxmox kurulumdan sonra genellikle vmbr0 adında bir bridge oluşturur ve bunu eth0 veya eno1 gibi fiziksel NIC’e bağlar. Basit ortamlar için bu yeterli, ama production ortamında işler biraz daha karmaşıklaşır.
Temel Bridge Yapılandırması
En basit senaryoyla başlayalım. Tek NIC, tek bridge, tüm VM’ler aynı ağda. /etc/network/interfaces dosyanız şöyle görünür:
# Loopback
auto lo
iface lo inet loopback
# Fiziksel NIC - IP olmadan bridge'e bırakıyoruz
auto eno1
iface eno1 inet manual
# Ana bridge
auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports eno1
bridge-stp off
bridge-fd 0
Burada dikkat edilecek noktalar:
- bridge-stp off: Spanning Tree Protocol’ü kapatıyoruz. Küçük ortamlarda genellikle gereksiz ve bağlantı gecikmesine yol açar.
- bridge-fd 0: Forward delay’i sıfıra çekiyoruz. Bridge başladığında hemen paket iletmeye başlar.
- bridge-ports eno1: Bu bridge’e hangi fiziksel port bağlı.
Konfigürasyonu uygulamak için:
# Ağ servisini yeniden başlatmak yerine ifreup/down kullanın
ifdown vmbr0 && ifup vmbr0
# Ya da tüm ağı restart edin (dikkatli olun, bağlantı kesilir)
systemctl restart networking
VLAN Yapılandırması: Eski Yöntem vs Yeni Yöntem
Proxmox’ta VLAN yapılandırması için iki farklı yaklaşım var. Eski yöntemde her VLAN için ayrı bridge oluşturursunuz. Yeni yöntemde ise VLAN-aware bridge kullanırsınız. Hangisini kullanacağınız büyük ölçüde ortamınıza ve switch’inize göre değişir.
Eski Yöntem: Her VLAN İçin Ayrı Bridge
Diyelim ki production (VLAN 10), development (VLAN 20) ve management (VLAN 100) ağlarınız var. Eski yöntemde:
# Fiziksel NIC
auto eno1
iface eno1 inet manual
# VLAN 10 - Production
auto eno1.10
iface eno1.10 inet manual
vlan-raw-device eno1
auto vmbr10
iface vmbr10 inet static
address 10.10.10.1/24
bridge-ports eno1.10
bridge-stp off
bridge-fd 0
# VLAN 20 - Development
auto eno1.20
iface eno1.20 inet manual
vlan-raw-device eno1
auto vmbr20
iface vmbr20 inet none
bridge-ports eno1.20
bridge-stp off
bridge-fd 0
# VLAN 100 - Management
auto eno1.100
iface eno1.100 inet static
address 10.100.0.1/24
gateway 10.100.0.254
bridge-ports eno1.100
bridge-stp off
bridge-fd 0
Bu yöntem işe yarıyor ama her yeni VLAN için iki yeni arayüz oluşturmanız gerekiyor. 20-30 VLAN’lı bir ortamda yönetimi zorlaşıyor.
Yeni Yöntem: VLAN-Aware Bridge
Proxmox 7 ve sonrasında önerilen yöntem bu. Tek bridge oluşturuyorsunuz ve VLAN awareness özelliğini aktif ediyorsunuz:
# Fiziksel NIC
auto eno1
iface eno1 inet manual
# VLAN-aware bridge
auto vmbr0
iface vmbr0 inet static
address 10.100.0.10/24
gateway 10.100.0.254
bridge-ports eno1
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
Artık VM’lerinizi bu bridge’e bağlarken web arayüzünden VLAN tag’ini belirtmeniz yeterli. Proxmox geri kalanını halleder.
Önemli: VLAN-aware bridge kullanırken, Proxmox node’unun kendi yönetim arayüzü için VLAN tag belirtmeyi unutmayın. Yukarıdaki örnekte management VLAN (100) üzerindeyseniz:
auto vmbr0.100
iface vmbr0.100 inet static
address 10.100.0.10/24
gateway 10.100.0.254
vlan-raw-device vmbr0
Gerçek Dünya Senaryosu 1: Küçük Ofis Sanallaştırma Ortamı
Bir müşteri için kurduğum tipik bir senaryo: 3 fiziksel sunucu, her birinde 2 NIC, toplam 4 VLAN gereksinimi.
- VLAN 1: Native/Management (Proxmox yönetim arayüzü)
- VLAN 10: Sunucu ağı (web, uygulama, DB sunucuları)
- VLAN 20: Güvenli ağ (finans, muhasebe sistemleri)
- VLAN 99: DMZ
İki NIC’i bond’layıp üzerine VLAN’ları yapılandıralım:
# İki NIC'i bond'luyoruz - aktif/pasif mod
auto eno1
iface eno1 inet manual
bond-master bond0
auto eno2
iface eno2 inet manual
bond-master bond0
auto bond0
iface bond0 inet manual
bond-slaves eno1 eno2
bond-miimon 100
bond-mode active-backup
bond-primary eno1
# VLAN-aware bridge üzerinde bond
auto vmbr0
iface vmbr0 inet manual
bridge-ports bond0
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 1 10 20 99
# Management arayüzü - VLAN 1 (native)
auto vmbr0
iface vmbr0 inet static
address 192.168.1.10/24
gateway 192.168.1.1
bridge-ports bond0
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
Bu konfigürasyonda switch tarafında da VLAN’ları trunk olarak geçirmeniz gerekiyor. Cisco switch’te:
# Proxmox'a giden porta trunk yapılandırması
interface GigabitEthernet1/0/1
switchport mode trunk
switchport trunk allowed vlan 1,10,20,99
switchport trunk native vlan 1
Gerçek Dünya Senaryosu 2: SDN ile Gelişmiş VLAN Yönetimi
Proxmox 7.0 ile birlikte gelen SDN (Software Defined Networking) özelliği, çok node’lu cluster’larda VLAN yönetimini merkezi hale getiriyor. Cluster’daki tüm node’larda tek yerden ağ politikası yönetebiliyorsunuz.
SDN yapılandırması web arayüzünden yapılabiliyor ama CLI’dan da halledebilirsiniz. Önce gerekli paketleri kuralım:
apt update
apt install libpve-network-perl ifupdown2
# SDN servisini aktif edin
systemctl enable --now pvedaemon
SDN zone oluşturmak için:
# Basit VLAN zone
pvesh create /cluster/sdn/zones
--zone production
--type vlan
--bridge vmbr0
--tag 10
# Zone'u uygula
pvesh set /cluster/sdn --apply 1
Bridge Üzerinde Gelişmiş Filtreleme
Production ortamında VM’ler arası trafiği kontrol etmek için ebtables ve iptables’ı birlikte kullanabilirsiniz. Proxmox’un kendi firewall’u da işe yarıyor ama bazen daha granüler kontrol gerekiyor.
VM’ler arası trafiği izole etmek için bridge’de MAC flooding koruması:
# Bridge için ebtables kuralı - ARP spoofing koruması
ebtables -A FORWARD -p ARP --arp-opcode 1 -j ACCEPT
ebtables -A FORWARD -p ARP --arp-opcode 2 -j ACCEPT
ebtables -A FORWARD -p ARP -j DROP
# Kuralları kalıcı yap
apt install ebtables
cat > /etc/ebtables/rules.v4 << 'EOF'
*filter
:INPUT ACCEPT
:FORWARD ACCEPT
:OUTPUT ACCEPT
-A FORWARD -p ARP --arp-opcode 1 -j ACCEPT
-A FORWARD -p ARP --arp-opcode 2 -j ACCEPT
COMMIT
EOF
VM’den VM’e direkt erişimi kısıtlamak istiyorsanız (aynı bridge üzerindekiler dahil):
# Proxmox firewall'u aktif et ve VM'ler arası trafiği engelle
# /etc/pve/firewall/cluster.fw dosyasını düzenle
cat >> /etc/pve/firewall/cluster.fw << 'EOF'
[OPTIONS]
enable: 1
policy_in: DROP
policy_out: ACCEPT
[RULES]
# Yönetim erişimi
IN ACCEPT -source 10.100.0.0/24 -p tcp --dport 8006
IN ACCEPT -source 10.100.0.0/24 -p tcp --dport 22
EOF
IP Adres Planlama ve VLAN Tasarımı
İyi bir Proxmox kurulumu için ağ tasarımını önceden yapmak kritik. Tipik bir kurumsal ortam için şunu öneririm:
- Management VLAN (100): Proxmox node’ları, switch yönetim arayüzleri, IPMI/iDRAC
- Storage VLAN (200): Ceph, NFS, iSCSI trafiği. Bu ağı kesinlikle ayrı tutun, büyük I/O trafiği diğer ağları etkilemesin
- Migration VLAN (300): VM live migration trafiği. Özellikle 10GbE’yi burada kullanın
- Production VLAN (10-50 arası): İş uygulamaları
- Development VLAN (60-90 arası): Test ve geliştirme ortamları
Corosync (cluster heartbeat) için ayrı bir ağ kullanmak da iyi pratik. Bunun için genellikle dedicated NIC ya da ayrı bir VLAN:
# /etc/corosync/corosync.conf içinde birden fazla ring tanımlama
totem {
version: 2
cluster_name: proxmox-cluster
interface {
ringnumber: 0
bindnetaddr: 10.100.0.0
mcastport: 5405
}
interface {
ringnumber: 1
bindnetaddr: 172.16.0.0
mcastport: 5407
}
}
Sorun Giderme: Sık Karşılaşılan Problemler
VM’ler Bridge’e Ulaşamıyor
# Bridge durumunu kontrol edin
bridge link show
brctl show vmbr0
# Bridge'e bağlı portlar
bridge fdb show dev vmbr0
# Hangi VM hangi tap arayüzüne bağlı
ip link show type tun
ip link show | grep tap
# Bir VM'nin tap arayüzünü bulun ve bridge'e ekleyin
bridge link show | grep tap
VLAN Trafiği Geçmiyor
# VLAN tag'lerini kontrol edin
cat /proc/net/vlan/config
# Bridge VLAN tablosunu görün
bridge vlan show
# Belirli bir VLAN için
bridge vlan show dev vmbr0
# Test için VLAN arayüzü üzerinden ping
ping -I vmbr0.10 10.10.10.1
ARP Problemi
VM’ler IP alıyor ama birbirine ulaşamıyorsa ARP tablosuna bakın:
# ARP tablosunu temizle ve yeniden dene
ip neigh flush all
ip neigh show
# Bridge ARP proxy
echo 1 > /proc/sys/net/ipv4/conf/vmbr0/proxy_arp
# Kalıcı yapma
echo "net.ipv4.conf.vmbr0.proxy_arp = 1" >> /etc/sysctl.d/99-proxmox.conf
sysctl -p /etc/sysctl.d/99-proxmox.conf
MTU Ayarları ve Jumbo Frame
Özellikle storage ve migration ağlarında jumbo frame kullanmak performansı ciddi artırıyor. Switch tarafında da MTU’yu büyütmeniz gerekiyor:
# Fiziksel NIC ve bridge için MTU artırma
auto eno3
iface eno3 inet manual
mtu 9000
auto vmbr1
iface vmbr1 inet static
address 10.200.0.10/24
bridge-ports eno3
bridge-stp off
bridge-fd 0
mtu 9000
VM’ler için de MTU ayarını unutmayın. Proxmox web arayüzünden VM’in ağ kartı ayarlarında MTU değerini ayarlayabilirsiniz ya da VM içinde:
# VM içinde MTU ayarlama (geçici)
ip link set eth0 mtu 9000
# Kalıcı - /etc/network/interfaces içinde
iface eth0 inet static
address 10.200.0.100/24
mtu 9000
Konfigürasyon Değişikliklerini Uygulama
Proxmox’ta ağ değişikliklerini uygularken dikkatli olmak gerekiyor. Canlı sistemde yanlış bir komut SSH bağlantınızı kesebilir:
# Değişiklikleri önce test edin (Proxmox web arayüzündeki "Apply Configuration" bunu yapar)
# CLI'dan önizleme
ifreload -a --dry-run
# Gerçek uygulama
ifreload -a
# Tek bir arayüzü yeniden başlatmak
ifdown vmbr10 && ifup vmbr10
# Değişikliği geri almak için (backup alın)
cp /etc/network/interfaces /etc/network/interfaces.bak
# Değişiklik yaptıktan sonra sorun çıkarsa:
cp /etc/network/interfaces.bak /etc/network/interfaces
ifreload -a
Proxmox web arayüzünden yaptığınız değişiklikler hemen uygulanmaz, “Pending Changes” durumunda bekler. “Apply Configuration” butonuna basana kadar mevcut yapılandırma çalışmaya devam eder. Bu çok güzel bir özellik, özellikle remote erişimde hayat kurtarıcı.
OVS (Open vSwitch) Entegrasyonu
Daha gelişmiş senaryolar için Open vSwitch kullanmak isteyebilirsiniz. Proxmox OVS’yi destekliyor:
# OVS kurulumu
apt install openvswitch-switch
# OVS bridge oluşturma
ovs-vsctl add-br ovsbr0
# Fiziksel portu ekle
ovs-vsctl add-port ovsbr0 eno1
# /etc/network/interfaces'te OVS tanımı
auto ovsbr0
allow-ovs ovsbr0
iface ovsbr0 inet static
address 192.168.1.10/24
gateway 192.168.1.1
ovs_type OVSBridge
ovs_ports eno1
allow-ovsbr0 eno1
iface eno1 inet manual
ovs_bridge ovsbr0
ovs_type OVSPort
OVS özellikle OpenFlow tabanlı SDN çözümleriyle entegrasyon veya çok node’lu cluster’larda VXLAN/GRE tunnel ihtiyacı olduğunda tercih edilir. Basit VLAN senaryoları için Linux bridge gayet yeterli ve daha az overhead içeriyor.
Sonuç
Proxmox ağ yapılandırması ilk bakışta karmaşık görünüyor ama temel mantığı anladıktan sonra oldukça tutarlı bir yapı olduğunu fark ediyorsunuz. Birkaç anahtar noktayı aklınızda tutun:
Küçük ve orta ölçekli ortamlarda VLAN-aware bridge yöntemi en temiz çözüm. Her VLAN için ayrı bridge oluşturmak eski ve zahmetli bir yöntem. /etc/network/interfaces dosyanız ne kadar sade olursa, sorun çıktığında debug etmesi o kadar kolay olur.
Storage ve migration ağlarını kesinlikle production trafiğinden ayırın. Bu performans için kritik. Ceph kullanıyorsanız storage ağına 10GbE yatırımı yapmanız büyük fark yaratıyor.
Her konfigürasyon değişikliği öncesi backup alın ve mümkünse değişikliği önce test/dev ortamında deneyin. Canlı sistemde ağ yapılandırmasını bozmak, konsol erişimi olmadığında çok sancılı olabiliyor.
Son olarak, Proxmox’un web arayüzündeki “Pending Changes” mekanizmasını sevin. Ani konfigürasyon uygulamaları yerine değişiklikleri biriktirip tek seferde uygulamak çok daha güvenli. Özellikle remote lokasyonlarda yönettiğiniz sistemlerde bu özellik hayat kurtarıcı.