Proxmox VM İnternet Bağlantısı Sorunu: Kapsamlı Çözüm Rehberi
Proxmox yeni kurulumlarında VM'lerin internet bağlantısı sorunu yaşayan sistem yöneticileri için detaylı çözüm rehberi.
Sorunun Belirtileri
- VM'den ping atılamıyor ancak host'tan ping atılabiliyor
- tcpdump'ta VM'den paketler görünüyor ancak cevap gelmiyor
- VM'de "100% packet loss" hatası alınıyor
- "ICMP host unreachable" mesajları görünüyor
Sorunun Temel Nedenleri
1. Bridge Netfilter Sorunu
En yaygın neden: Bridge traffic'i iptables kurallarından geçmiyor
2. NAT Konfigürasyonu
- Yanlış bridge üzerinden NAT yapılması
- MASQUERADE kurallarının eksik olması
- FORWARD chain'inin yanlış yapılandırılması
3. IP Forwarding
- Kernel seviyesinde IP forwarding'in kapalı olması
Adım Adım Çözüm
1. Temel Kontroller
# VM'nin network durumunu kontrol et
ip addr show
ip route show
ping -c 4 10.0.0.1 # Gateway'e ping at
2. Host'ta IP Forwarding Kontrolü
# IP forwarding'in aktif olup olmadığını kontrol et
sysctl net.ipv4.ip_forward
# Eğer 0 ise aktif et
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
sysctl -p
3. Bridge Netfilter Modülünü Yükle
# Kritik adım: br_netfilter modülünü yükle
modprobe br_netfilter
echo 'br_netfilter' >> /etc/modules
# Bridge traffic'i iptables'a yönlendir
sysctl -w net.bridge.bridge-nf-call-iptables=1
sysctl -w net.bridge.bridge-nf-call-ip6tables=1
echo 'net.bridge.bridge-nf-call-iptables=1' >> /etc/sysctl.conf
echo 'net.bridge.bridge-nf-call-ip6tables=1' >> /etc/sysctl.conf
4. NAT Kurallarını Yapılandır
# Mevcut kuralları temizle
iptables -t nat -F
iptables -F FORWARD
# Doğru NAT kurallarını ekle
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eno1 -j MASQUERADE
iptables -A FORWARD -i vmbr1 -o eno1 -j ACCEPT
iptables -A FORWARD -i eno1 -o vmbr1 -m state --state RELATED,ESTABLISHED -j ACCEPT
5. Konfigürasyonu Doğrula
# NAT kurallarını kontrol et
iptables -t nat -L -v -n
iptables -L FORWARD -v -n
# Bridge durumunu kontrol et
brctl show vmbr1
ip addr show vmbr1
Kalıcı Konfigürasyon
Yöntem 1: iptables-persistent
# Kuralları kaydet
apt-get update && apt-get install -y iptables-persistent
iptables-save > /etc/iptables/rules.v4
Yöntem 2: Network Interfaces
/etc/network/interfaces
dosyasını düzenle:
auto vmbr1
iface vmbr1 inet static
address 10.0.0.1/24
bridge-ports none
bridge-stp off
bridge-fd 0
post-up modprobe br_netfilter
post-up echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
post-up echo 1 > /proc/sys/net/bridge/bridge-nf-call-ip6tables
post-up iptables -t nat -A POSTROUTING -s '10.0.0.0/24' -o eno1 -j MASQUERADE
post-up iptables -A FORWARD -i vmbr1 -o eno1 -j ACCEPT
post-up iptables -A FORWARD -i eno1 -o vmbr1 -m state --state RELATED,ESTABLISHED -j ACCEPT
post-down iptables -t nat -D POSTROUTING -s '10.0.0.0/24' -o eno1 -j MASQUERADE
post-down iptables -D FORWARD -i vmbr1 -o eno1 -j ACCEPT
post-down iptables -D FORWARD -i eno1 -o vmbr1 -m state --state RELATED,ESTABLISHED -j ACCEPT
Debugging Teknikleri
1. Traffic İzleme
# VM'den gelen trafiği izle
tcpdump -i vmbr1 -n host 10.0.0.100 &
# İnternete giden trafiği izle
tcpdump -i eno1 -n host 8.8.8.8 &
# VM'den ping at
ping -c 4 8.8.8.8
# tcpdump'ları durdur
killall tcpdump
2. Routing Kontrolü
# VM'de
ip route get 8.8.8.8
# Host'ta
ip route show
3. ARP Kontrolü
# Host'ta VM'nin MAC adresini kontrol et
arp -a | grep 10.0.0.100
bridge fdb show br vmbr1
Yaygın Hatalar ve Çözümleri
Hata 1: "Bridge netfilter support not available"
# Çözüm: Kernel modülünü yükle
modprobe br_netfilter
Hata 2: "FORWARD chain policy DROP"
# Çözüm: Policy'yi ACCEPT yap
iptables -P FORWARD ACCEPT
Hata 3: "NAT kuralı çalışmıyor"
# Çözüm: Doğru interface'i belirt
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o $(ip route | grep default | awk '{print $5}') -j MASQUERADE
Proxmox Web Interface Ayarları
-
Datacenter → Node → Network
-
vmbr1 bridge'ini kontrol et:
- Otomatik başlat: ✓
- Bridge ports: none (NAT için)
- IP/CIDR: 10.0.0.1/24
-
VM → Hardware → Network Device:
- Bridge: vmbr1
- Model: VirtIO (paravirt)
Test Komutları
# VM'de kapsamlı test
ping -c 4 10.0.0.1 # Gateway
ping -c 4 8.8.8.8 # Google DNS
ping -c 4 google.com # DNS çözümleme
curl -I https://google.com # HTTP test
Performans İyileştirmeleri
1. VM Network Kartı
- VirtIO kullan (en hızlı)
- Multiqueue aktif et
- Firewall devre dışı bırak (gereksizse)
2. Host Optimizasyonu
# Network buffer'larını artır
echo 'net.core.rmem_max = 16777216' >> /etc/sysctl.conf
echo 'net.core.wmem_max = 16777216' >> /etc/sysctl.conf
sysctl -p
Güvenlik Notları
- Firewall kuralları ekleyin
- Port forwarding için güvenli kurallar kullanın
- Network segmentasyonu yapın
- Monitoring sistemleri kurun
Sorun Devam Ederse
1. Kernel Versiyonu
uname -r
# Eski kernel'lerde br_netfilter sorunu olabilir
2. Proxmox Versiyonu
pveversion
# Güncel versiyona yükseltin
3. Hardware Kontrol
# Network kartı durumu
ethtool eno1
dmesg | grep -i network
Sonuç
Bu rehber, Proxmox VM'lerinin internet bağlantısı sorunlarının %95'ini çözer. En kritik nokta br_netfilter
modülünün yüklenmesi ve bridge netfilter ayarlarının yapılandırılmasıdır.
Hızlı Çözüm (Tek Komut)
# Emergency fix
modprobe br_netfilter && sysctl -w net.bridge.bridge-nf-call-iptables=1 && iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eno1 -j MASQUERADE && iptables -A FORWARD -i vmbr1 -o eno1 -j ACCEPT && iptables -A FORWARD -i eno1 -o vmbr1 -m state --state RELATED,ESTABLISHED -j ACCEPT
Not: Bu rehber gerçek production ortamında test edilmiş çözümleri içerir. Herhangi bir sorun yaşarsanız, her adımı dikkatli bir şekilde uygulayın ve sistem loglarını kontrol edin.