Sanallaştırma & Bulut

    VLAN Nedir, Sanal Ağ Segmentasyonu

    VLAN mantığı, 802.1Q etiketleme, trunk ve access port farkı ile Linux tarafındaki uygulaması.

    10 dk okuma Güncellendi: 25 Ağustos 2026

    Bir kabinette on sunucunuz, iki yönetim kartınız ve bir yedekleme cihazınız var; hepsi aynı switch'e bağlı ve hepsi birbirini doğrudan görüyor. Bu, bir gün web sunucusu ele geçirildiğinde saldırganın aynı anda yedekleme cihazınıza ve sunucu yönetim kartlarınıza da erişebileceği anlamına gelir. VLAN nedir sorusunun pratik cevabı tam burada başlıyor: VLAN, tek bir fiziksel switch'i birbirinden yalıtılmış birden fazla mantıksal switch'e bölmenizi sağlar; böylece aynı kabloları ve aynı donanımı kullanarak ağınızı gerçekten ayrı parçalara ayırırsınız.

    Bu yazıda VLAN'ın nasıl çalıştığını çerçeve seviyesinden başlayarak anlatacağım: 802.1Q etiketinin ne olduğunu, access port ile trunk port farkını, VLAN numaralarını nasıl planlamanız gerektiğini, Linux üzerinde VLAN arayüzünü nasıl oluşturacağınızı ve VLAN'lar arası yönlendirmeyi güvenlik duvarıyla nasıl kontrol edeceğinizi göreceğiz. Sonunda da VLAN hopping gibi gerçek saldırı yüzeylerini ve sahada en çok karşılaştığım yapılandırma hatalarını ele alacağım.

    VLAN Ne İşe Yarar: Aynı Switch, Farklı Ağlar#

    Bir switch varsayılan olarak tüm portlarını tek bir yayın alanına (broadcast domain) koyar. Bir cihaz ARP isteği yayınladığında bu istek switch'in tüm portlarına gider. Ağ büyüdükçe bu iki sorun doğurur: gereksiz yayın trafiği ve yalıtım eksikliği. VLAN her ikisini de çözer; switch'e "bu portlar VLAN 10'a, şu portlar VLAN 20'ye ait" dediğinizde, VLAN 10'daki bir yayın çerçevesi VLAN 20'deki hiçbir porta ulaşmaz.

    Kritik nokta şudur: VLAN'lar ikinci katmanda birbirini görmez. VLAN 10'daki bir sunucu, VLAN 20'deki bir sunucuya ancak arada bir yönlendirici ya da katman 3 switch varsa ve o cihaz bu trafiğe izin veriyorsa ulaşabilir. Yani VLAN, ağ segmentasyonunun en temel ve en ucuz aracıdır; ek donanım almadan, sadece yapılandırmayla güvenlik sınırı çizersiniz.

    Tipik bir barındırma ortamında VLAN planı şuna benzer:

    VLAN IDAmaçÖrnek alt ağDışa açık mı
    10Genel web sunucuları10.10.10.0/24Evet, filtreli
    20Veritabanı sunucuları10.10.20.0/24Hayır
    30Yedekleme ağı10.10.30.0/24Hayır
    40Sunucu yönetim kartları (IPMI)10.10.40.0/24Hayır, sadece VPN
    99Switch yönetimi10.10.99.0/24Hayır, sadece VPN

    Alt ağları planlarken maske hesabını gözünüzle yapmayın; subnet hesaplayıcı aracımızla adres aralıklarını ve kullanılabilir host sayısını doğrulayın. Kendi kabinetinizde bu ayrımı kurmak istiyorsanız colocation nedir ve sunucu barındırma yazısı, fiziksel katman kararlarının VLAN planını nasıl etkilediğini anlatıyor.

    Access Port, Trunk Port ve 802.1Q Etiketleme#

    Bir çerçevenin hangi VLAN'a ait olduğunu switch nasıl bilir? İki farklı yöntem vardır ve bu, port tipini belirler.

    Access port, tek bir VLAN'a atanmış porttur. Buraya bağlı cihaz VLAN'dan habersizdir; etiketsiz (untagged) çerçeve gönderir, switch de o çerçeveye kendi içinde port yapılandırmasına göre VLAN kimliği atar. Sunucularınızın çoğu bu şekilde bağlanır.

    Trunk port, birden fazla VLAN'ın trafiğini tek kablodan taşır. Burada çerçevelere 802.1Q etiketi eklenir: Ethernet başlığına 4 baytlık bir alan girer ve bunun 12 biti VLAN kimliğini taşır. 12 bit demek 4096 olası değer demektir; 0 ve 4095 ayrılmıştır, dolayısıyla kullanılabilir aralık 1 ile 4094 arasıdır. Switch'ler arası bağlantılar, sanallaştırma sunucularının uplink'leri ve yönlendiriciye giden hat tipik trunk portlardır.

    Trunk üzerinde bir de native VLAN kavramı vardır: trunk'tan etiketsiz gelen çerçevelerin atanacağı VLAN. Varsayılan olarak VLAN 1'dir ve birazdan göreceğimiz güvenlik sebebiyle bunu değiştirmeniz gerekir.

    ÖzellikAccess portTrunk port
    Taşıdığı VLAN sayısıBirBirden fazla
    Çerçeve etiketiEtiketsiz802.1Q etiketli
    Tipik kullanımSunucu, iş istasyonuSwitch-switch, hipervizör uplink
    Karşı taraf VLAN bilir miHayırEvet

    Etiketin 4 bayt eklediğini unutmayın. Standart 1500 baytlık MTU üzerinde 802.1Q etiketiyle çerçeve 1504 bayta çıkar; buna "baby giant" denir ve modern switch'ler destekler. Ancak sunucu tarafında VLAN arayüzü oluşturduğunuzda, üst arayüzün MTU'sunun yeterli olduğundan emin olun; aksi halde büyük paketler sessizce düşer ve teşhisi zor bir yavaşlık yaşarsınız.

    VLAN Numaralarını Planlamak#

    Küçük görünen bir karar, üç yıl sonra ağı okunamaz hale getirebilir. Numaralandırmada izlediğim birkaç kural var:

    1. VLAN 1'i kullanmayın. Çoğu switch'te varsayılan VLAN'dır ve yönetim trafiği için de varsayılandır; üzerine üretim trafiği koymak hem güvenlik hem karışıklık üretir.
    2. Anlamlı aralıklar ayırın. Örneğin 10-19 üretim, 20-29 veritabanı, 30-39 depolama, 90-99 altyapı yönetimi gibi. Numaraya bakınca ne olduğunu anlayın.
    3. VLAN ID ile alt ağın üçüncü okteti eşleşsin. VLAN 20 için 10.10.20.0/24 kullanmak, sorun giderirken zihinsel yükü ciddi biçimde azaltır.
    4. Kullanılmayan portları kapatın ya da hiçbir yere gitmeyen bir "karantina" VLAN'ına atayın. Boş bir portun varsayılan VLAN'da açık durması, kabinete fiziksel erişimi olan birine hazır bir giriş kapısıdır.
    5. Belgeleyin. VLAN kimliği, amacı, alt ağı ve hangi portlarda olduğu tek bir tabloda dursun.

    Linux Üzerinde VLAN Arayüzü Oluşturma#

    Sunucunuz bir trunk porta bağlıysa, işletim sistemi tarafında her VLAN için ayrı bir sanal arayüz oluşturursunuz. Linux'ta bu iş 8021q çekirdek modülüyle yapılır ve modern dağıtımlarda modül gerektiğinde otomatik yüklenir.

    Geçici olarak (yeniden başlatmada kaybolur) test etmek için:

    # Modülü yükle
    modprobe 8021q
    
    # eth0 üzerinde VLAN 20 arayüzü oluştur
    ip link add link eth0 name eth0.20 type vlan id 20
    
    # Adres ata ve arayüzü aç
    ip addr add 10.10.20.5/24 dev eth0.20
    ip link set eth0.20 up
    
    # Doğrula
    ip -d link show eth0.20
    

    Kalıcı yapılandırma dağıtıma göre değişir. Ubuntu'nun netplan kullanan sürümlerinde /etc/netplan/ altındaki dosyaya şu yapıyı eklersiniz:

    network:
      version: 2
      ethernets:
        eth0:
          dhcp4: false
      vlans:
        eth0.20:
          id: 20
          link: eth0
          addresses: [10.10.20.5/24]
          routes:
            - to: default
              via: 10.10.20.1
          nameservers:
            addresses: [1.1.1.1, 9.9.9.9]
    

    Debian'ın klasik /etc/network/interfaces dosyasında karşılığı şudur:

    auto eth0.20
    iface eth0.20 inet static
        address 10.10.20.5
        netmask 255.255.255.0
        gateway 10.10.20.1
        vlan-raw-device eth0
    

    Arayüz adı olarak eth0.20 biçimini kullanmak zorunda değilsiniz; ip link add ... name veritabani-net de çalışır ve okunabilirliği artırır. Ancak interfaces dosyasındaki otomatik ayrıştırma nokta biçimine bağlı olduğu için, klasik yöntemde nokta biçiminde kalmak daha az sürprizlidir.

    VLAN'lar Arası Yönlendirme ve Filtreleme#

    VLAN'lar birbirini görmediği için, aralarında iletişim gerektiğinde bir yönlendirme noktası kurmanız gerekir. İki yaygın yaklaşım vardır. Birincisi, katman 3 switch üzerinde her VLAN için bir sanal arayüz (SVI) tanımlamak; bu en performanslı yöntemdir çünkü yönlendirme donanımda yapılır. İkincisi, "router-on-a-stick" denen yaklaşım: yönlendiriciye tek bir trunk kablo çekilir ve yönlendirici her VLAN için bir alt arayüz tanımlar.

    Küçük ölçekte bu yönlendiriciyi bir Linux makinesi de üstlenebilir. Bu durumda yönlendirmeyi açıp filtrelemeyi güvenlik duvarında yaparsınız:

    # IP yönlendirmeyi kalıcı olarak aç
    echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/99-router.conf
    sysctl --system
    
    # Web VLAN'ından veritabanı VLAN'ına yalnızca 3306'ya izin ver
    nft add rule inet filter forward iifname "eth0.10" oifname "eth0.20" \
      tcp dport 3306 ct state new,established accept
    
    # Diğer tüm VLAN'lar arası trafiği reddet
    nft add rule inet filter forward iifname "eth0.*" oifname "eth0.*" drop
    

    Bu yaklaşımın özü şudur: VLAN yalıtımı sağlar, kural ise istisnaları tanımlar. Varsayılanı "her şey yasak" yapıp yalnızca ihtiyaç duyduğunuz akışları açtığınızda, gerçek bir segmentasyon elde etmiş olursunuz. Uygulama katmanındaki saldırılar bu seviyede filtrelenemez; onun için WAF gibi bir katman gerekir. Hacimsel saldırılarda ise VLAN hiçbir işe yaramaz, çünkü sorun hattın kendisindedir; DDoS koruma tarafına bakmanız gerekir ve konunun çerçevesi için DDoS korumalı sunucu gerekli mi yazısı iyi bir başlangıçtır.

    Sanallaştırmada VLAN#

    Sanallaştırma sunucularında VLAN, fiziksel switch'ten sanal switch'e uzanır. Hipervizörün uplink'i trunk olarak yapılandırılır ve her sanal makine, ait olduğu VLAN'a bağlanır. Linux tarafında bunu köprü (bridge) ile kurmanın iki yolu vardır.

    Klasik yöntem, her VLAN için ayrı bir VLAN arayüzü ve ayrı bir köprü oluşturmaktır:

    # VLAN 20 için arayüz ve köprü
    ip link add link eth0 name eth0.20 type vlan id 20
    ip link add name br20 type bridge
    ip link set eth0.20 master br20
    ip link set eth0.20 up && ip link set br20 up
    

    Daha modern yöntem, köprünün kendi VLAN filtreleme özelliğini kullanmaktır; tek köprü üzerinde port başına VLAN üyeliği tanımlarsınız:

    # VLAN farkındalığı olan tek köprü
    ip link add name br0 type bridge vlan_filtering 1
    ip link set eth0 master br0
    
    # eth0'ı trunk yap: 10 ve 20 etiketli geçsin
    bridge vlan add dev eth0 vid 10
    bridge vlan add dev eth0 vid 20
    
    # Sanal makine arayüzünü VLAN 20'de access port yap
    bridge vlan add dev vnet0 vid 20 pvid untagged
    

    Bu ikinci yaklaşım daha az arayüz üretir ve büyük ölçekte yönetimi kolaylaştırır. Sanal sunucu satın alırken VLAN erişimi olup olmadığı sağlayıcıya göre değişir; paylaşımlı bir ortamda genellikle özel VLAN alamazsınız, kendi ağ topolojinizi kurmak isterseniz dedicated sunucu ya da colocation tarafına geçmeniz gerekir. Sanal ve fiziksel arasındaki seçim için bulut sunucu mu VDS mi yazısındaki karşılaştırma yol gösterici olabilir.

    Sık Yapılan Hatalar ve Tuzaklar#

    Native VLAN'ı varsayılan bırakmak. Trunk üzerindeki native VLAN etiketsiz taşınır. VLAN 1 hem native hem üretim VLAN'ıysa, çift etiketleme (double tagging) yöntemiyle bir saldırgan kendi VLAN'ından başka bir VLAN'a çerçeve gönderebilir. Çözüm nettir: native VLAN'ı hiç kullanılmayan bir kimliğe atayın ve üretim trafiğini oraya koymayın.

    Otomatik trunk pazarlığını açık bırakmak. Bazı switch'ler portun trunk olup olmayacağını karşı tarafla pazarlık ederek belirler. Saldırgan bu pazarlığı taklit ederek kendi portunu trunk'a çevirebilir ve tüm VLAN'ları görebilir. Sunucu portlarını açıkça access olarak sabitleyin ve pazarlığı kapatın.

    MTU'yu unutmak. Etiket 4 bayt ekler. Üst arayüzün MTU'su 1500'de kalır ve VLAN arayüzü de 1500 isterse büyük paketler düşer; ping çalışır ama dosya aktarımı takılır. Trunk taşıyan fiziksel arayüzde MTU'yu 1504 ya da daha yükseğe alın.

    Yönetim VLAN'ını üretimle karıştırmak. Switch yönetim arayüzü ve sunucu yönetim kartları ayrı bir VLAN'da olmalı ve oraya yalnızca VPN üzerinden erişilmelidir. Yönetim arayüzü üretim VLAN'ındaysa, o VLAN'daki herhangi bir ele geçirilmiş sunucu doğrudan altyapıya erişir.

    VLAN'ı şifreleme sanmak. VLAN trafiği ayırır ama şifrelemez. Aynı fiziksel ortamı paylaşan trafiği dinleyebilen biri için VLAN etiketi bir engel değildir. Gizlilik gerekiyorsa üstüne şifreli bir tünel kurun.

    Belgelemeyi atlamak. Altı ay sonra "VLAN 37 neydi" sorusuna cevap veremediğinizde, kimse dokunmaya cesaret edemediği için ağ yavaş yavaş donar. Tabloyu ilk günden tutun.

    Sıkça Sorulan Sorular#

    VLAN kaç tane oluşturabilirim#

    802.1Q standardında VLAN kimliği 12 bittir, yani teorik olarak 4094 kullanılabilir kimlik vardır (0 ve 4095 ayrılmıştır). Pratik sınır ise switch donanımınızdır: giriş seviyesi cihazlar aynı anda birkaç yüz aktif VLAN destekleyebilirken kurumsal cihazlar tam aralığı destekler. Çoğu barındırma senaryosunda onlarca VLAN bile fazlasıyla yeterlidir; sayıyı değil, planın okunabilirliğini dert edin.

    VLAN güvenlik sağlar mı#

    Kısmen. VLAN ikinci katmanda yalıtım sağlar, yani doğru yapılandırıldığında bir VLAN'daki cihaz diğerini doğrudan göremez. Ancak bu bir şifreleme değildir ve yanlış yapılandırma VLAN hopping gibi saldırılara kapı açar. VLAN'ı savunmanın ilk katmanı olarak düşünün; üzerine güvenlik duvarı kuralları, yönetim erişimi için VPN ve uygulama katmanı filtrelemesi eklemeniz gerekir.

    VLAN performansı düşürür mü#

    Ölçülebilir bir düşüş beklemeyin. Etiketleme çerçeveye 4 bayt ekler ve modern switch'ler bu işlemi donanımda yapar; hız kaybı yok denecek kadar azdır. Aksine, yayın alanlarını küçülttüğü için büyük ağlarda toplam performansı artırır. Performans sorunu yaşıyorsanız suçlu genellikle VLAN'ın kendisi değil, VLAN'lar arası tüm trafiği tek bir yavaş yönlendiriciden geçirmenizdir.

    VLAN ile alt ağ (subnet) aynı şey mi#

    Hayır, farklı katmanlarda çalışırlar. VLAN ikinci katmanda yayın alanını böler, alt ağ ise üçüncü katmanda IP adres aralığını böler. Yine de pratikte neredeyse her zaman bire bir eşleştirilirler: her VLAN'a bir alt ağ atanır. Bu zorunlu değildir ama bu eşleşmeyi bozmak sorun gidermeyi gereksiz yere zorlaştırır, o yüzden istisna yapmamanızı öneririm.

    Sanal sunucumda VLAN kullanabilir miyim#

    Sağlayıcınızın ağ yapılandırmasına bağlıdır. Paylaşımlı bir sanallaştırma ortamında hipervizörün uplink'i genellikle sizin kontrolünüzde değildir ve özel VLAN atanmaz. Kendi VLAN topolojinizi kurmanız gerekiyorsa, switch portunuz üzerinde söz sahibi olduğunuz bir fiziksel sunucu ya da colocation kabineti gerekir. Bazı sağlayıcılar özel ağ hizmeti adı altında sınırlı bir VLAN benzeri yalıtım sunar; satın almadan önce sorun.

    İki farklı lokasyondaki VLAN'ları birleştirebilir miyim#

    Doğrudan değil; VLAN etiketi yalnızca aynı ikinci katman alanı içinde anlamlıdır ve internet üzerinden taşınmaz. İki lokasyonu aynı ağmış gibi göstermek istiyorsanız araya bir tünel kurmanız gerekir. Yaygın yöntemler siteden siteye VPN kurmak ya da VXLAN gibi bir kapsülleme protokolü kullanmaktır. İhtiyacınız yalnızca sunucuların birbirine erişmesiyse üçüncü katman yönlendirmeli bir VPN çoğu zaman daha basit ve daha sağlamdır.

    Kapanış#

    VLAN, ağ segmentasyonunun en ucuz ve en etkili aracı: ek donanım almadan tek bir switch'i birbirinden yalıtılmış parçalara bölüyor. Aklınızda kalması gereken dört alışkanlık şu: VLAN 1'i kullanmayın ve native VLAN'ı boş bir kimliğe taşıyın; sunucu portlarını açıkça access olarak sabitleyip trunk pazarlığını kapatın; yönetim arayüzlerini kendi VLAN'ında tutup oraya yalnızca VPN üzerinden erişin; ve VLAN'lar arası trafiği varsayılan olarak reddedip yalnızca ihtiyaç duyduğunuz akışları açın. Bir de tabloyu belgeleyin, altı ay sonraki siz teşekkür edecek.

    Kendi VLAN topolojinizi kurabilmeniz için switch portunuz üzerinde söz sahibi olmanız gerekir; dedicated sunucu ve colocation hizmetlerimiz bu kontrolü size verir, daha küçük ölçekte ayrı ağlarla çalışmak isterseniz VDS paketlerimizde sunucu tarafındaki arayüz yapılandırmasını serbestçe yapabilirsiniz. Ağ tasarımını ve güvenlik duvarı kurallarını sizin yerinize kurgulamamızı isterseniz sunucu yönetimi hizmetimiz devreye girer.

    VLANLinux

    Uygulamaya geçmeye hazır mısınız?

    NVMe SSD, ücretsiz SSL ve %99.9 uptime garantisiyle Clou.TR hosting ve sunucu çözümleriyle projenizi hayata geçirin.