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ı

  1. Datacenter → Node → Network

  2. vmbr1 bridge'ini kontrol et:

    • Otomatik başlat: ✓
    • Bridge ports: none (NAT için)
    • IP/CIDR: 10.0.0.1/24
  3. 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ı

  1. Firewall kuralları ekleyin
  2. Port forwarding için güvenli kurallar kullanın
  3. Network segmentasyonu yapın
  4. 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.