VPS Üzerinde IPv6 Kurulumuna Hazırlık
VPS sunucunuz hâlâ yalnızca IPv4 ile mi çalışıyor? IPv4 adres kaynaklarının sınırlı olması, adres maliyetleri ve IPv6 kullanan erişim ağlarının yaygınlaşması, IPv6 desteğini kapasite planlamasının bir parçası hâline getiriyor. Çift yığın (IPv4 + IPv6), mevcut IPv4 erişimini koruyarak IPv6 üzerinden de hizmet sunmanızı sağlar; performans veya maliyet kazancı ise kullanılan ağlara ve iş yüküne bağlıdır.
Bu rehberde, Linux VPS üzerinde statik IPv6 kurulumunu ve yapılandırmasını Netplan, ifupdown veya NetworkManager kullanan sistemler için ele alacağız: sağlayıcı tarafında IPv6 alımından, işletim sistemi ağ ayarlarına, güvenlik duvarı yapılandırmasından DNS AAAA kayıtlarına ve web sunucusu ayarlarına kadar. Pratik komutlar, örnek konfigürasyonlar ve yaygın hata noktalarıyla yeni bir VPS’te IPv6 kurulumu ve mevcut sunucuda çift yığın (IPv4 + IPv6) yapılandırması için izlenecek adımları açıklayacağız.
IPv6’nın Arka Planı: Neden Şimdi?
IPv6’yı konfigüre etmeye başlamadan önce, neden bu kadar kritik hâle geldiğini netleştirmek faydalı. IPv4 adres kaynaklarının sınırlılığını ve fiyatların rekor seviyelere çıktığı dönemi ele alan IPv4 adres fiyatlarının rekor seviyelere ulaşması yazımız, adres maliyetlerinin planlamadaki önemini gösteriyor; güncel fiyatlar ve bulunabilirlik pazara ve sağlayıcıya göre değişir.
Diğer tarafta, IPv6 benimseme oranlarının artışı kullanıcı trafiğini de etkiliyor; IPv6 trafiğinin payı ülkeye, erişim ağına ve hizmete göre değişiyor. Mobil operatörler, ISS’ler ve CDN’lerde IPv6 desteğinin yaygınlaşması, planlamada şu üç başlığı öne çıkarıyor:
- Maliyet baskısı: IPv4 için ek IP blokları almak bütçeye ek yük getirebilir.
- Erişilebilirlik: IPv6 destekleyen istemcilere doğrudan IPv6 erişimi sunabilirsiniz; gecikme ve rota kalitesini iki adres ailesinde ayrı ölçün.
- Gelecek uyumluluğu: IPv6 desteğini şimdiden planlamak, ileride yalnızca IPv6 üzerinden erişilebilen ağ ve hizmetlerle bağlantı kurmayı kolaylaştırır.
IPv6’yı kavramsal olarak daha detaylı anlamak isterseniz, temel konseptleri giriş seviyesinde anlattığımız IPv6 sunucu nedir? yazısına da göz atabilirsiniz. Bu rehberde ise doğrudan pratiğe, yani VPS düzeyinde kurulum ve yapılandırmaya odaklanacağız.
VPS’inizde IPv6’ya Başlamadan Önce Bilmeniz Gereken Temeller
Yapılandırmaya geçmeden önce, IPv6 adres türleri ve temel kavramları kısaca hatırlayalım. Bu bölüm, özellikle konfigürasyon dosyalarında hangi değerin ne anlama geldiğini aklınızda tutmanız için önemli.
IPv6 adres türleri (kısaca)
- Global Unicast (GUA): Genel internette yönlendirme için kullanılan adres türüdür; kullanılabilirlik tahsis ve yönlendirmeye bağlıdır. Örnek
2001:db8:1234:5678::10, yalnızca dokümantasyona ayrılmış2001:db8::/32bloğundadır ve canlı bağlantıda kullanılmaz. - Link-local: Aynı bağlantı üzerinde kullanılır, yönlendiriciler tarafından başka bağlantılara taşınmaz. Ayrılmış önek
fe80::/10olmakla birlikte standart adres biçimi ilk 64 bittefe80::/64kullanır. Sağlayıcı gateway olarak örneğinfe80::1verebilir; doğru arayüzle birlikte belirtilmelidir. - ULA (Unique Local Address): Dahili ağlar ve VPN gibi yerel kullanım senaryolarına yönelik adreslerdir; genel internet adresi yerine geçmez.
Prefix ve ağ maskesi
IPv6’da /64, /56 gibi prefix değerleri göreceksiniz. Örneğin:
2001:db8:1234:5678::/64
Bu ifade, ilk 64 bit’in ağ kısmı olduğu bir bloğu ifade eder. VPS’e tek bir adres veya bir adres bloğu tahsis edilebilir; kullanabileceğiniz adresleri ve arayüz prefix uzunluğunu sağlayıcınızdan öğrenin. Yapılandırma için gereken IPv6 Prefix ve IPv6 Gateway bilgilerini DCHost panelinizde kontrol edin; panel alanlarının adları ve sunulan bilgiler değişebilir.
Adım 1: DCHost Panelinde IPv6 Bilgilerinizi Kontrol Edin
İlk adım, VPS’inize gerçekten IPv6 atanmış olduğundan emin olmak. DCHost müşteri panelinizde VPS detay sayfasına girdiğinizde, şu bilgileri kontrol edin; eksikse destek ekibinden isteyin:
- IPv6 Adresi: Örneğin
2001:db8:1234:5678::10 - Prefix: Örneğin
/64; sağlayıcınızın bildirdiği değeri kullanın - IPv6 Gateway: Örneğin
fe80::1gibi bir link-local adres
Eğer burada IPv6 bilgisi görmüyorsanız, destek talebi açarak IPv6 talep edebilirsiniz. IPv6’nın paketinizde ve bulunduğunuz lokasyonda sunulup sunulmadığını, ayrıca sağlayıcı tarafında etkinleştirme gerekip gerekmediğini destek ekibiyle netleştirin.
Adım 2: VPS Üzerinde IPv6 Desteğini Doğrulayın
Sunucunuza SSH ile bağlandıktan sonra, önce çekirdek ve ağ yığını tarafında IPv6’nın devrede olup olmadığını kontrol edelim.
Çekirdekte IPv6 desteği var mı?
lsmod | awk '$1 == "ipv6" {print}'
Bu çıktı yalnızca ipv6 adlı yüklenmiş modülü gösterir. IPv6 çekirdeğe gömülü derlenmişse lsmod listesinde görünmez; boş çıktı tek başına desteğin yokluğunu kanıtlamaz. Çekirdeğin IPv6 desteğini, önyükleme parametrelerini ve aşağıdaki arayüz ayarını birlikte değerlendirin. ipv6.disable=1 ile önyüklemede kapatılmış destek, yalnızca sysctl değişikliğiyle açılmaz; parametrenin düzeltilmesi ve planlı yeniden başlatma gerekir.
sysctl ile IPv6’nın devrede olduğundan emin olun
sysctl net.ipv6.conf.all.disable_ipv6
sysctl net.ipv6.conf.eth0.disable_ipv6
eth0 yerine gerçek arayüz adınızı kullanın. net.ipv6.conf.all.disable_ipv6 = 0 çıktısı tek başına IPv6’nın arayüzde etkin olduğunu göstermez. Arayüze ait disable_ipv6 değeri 0 ise IPv6 işlemleri açıktır; bu, adres ve rota yapılandırmasının tamamlandığı anlamına gelmez. Değer 1 ise ve IPv6’yı bu arayüzde kullanacaksanız, ağ yöneticisinin ayarlarını da kontrol ederek geçici olarak açabilirsiniz:
sudo sysctl -w net.ipv6.conf.eth0.disable_ipv6=0
Kalıcı çekirdek ayarı gerekiyorsa, dağıtımınızın sysctl.d yükleme düzenini kontrol ederek örneğin /etc/sysctl.d/99-vps-ipv6.conf dosyasına aşağıdaki satırı ekleyin. Mevcut /etc/sysctl.conf, /etc/sysctl.d/99-sysctl.conf veya ağ yöneticisi ayarları aynı değeri sonradan değiştirebilir; çelişkileri giderin. Bu adım adres ve gateway tanımının yerine geçmez.
net.ipv6.conf.eth0.disable_ipv6 = 0
Yalnızca düzenlediğiniz dosyayı yükleyin, ardından arayüz değerini yeniden okuyun. Dosya adı verilmeden kullanılan sudo sysctl -p, procps sürümünde varsayılan olarak /etc/sysctl.conf dosyasını okur:
sudo sysctl -p /etc/sysctl.d/99-vps-ipv6.conf
sysctl net.ipv6.conf.eth0.disable_ipv6
Adım 3: Ağ Arayüzüne IPv6 Adresini Tanımlama
Burada dağıtıma göre iki ana senaryoya bakacağız: Ubuntu/Debian (netplan veya interfaces) ve RHEL/AlmaLinux türevleri. Yalnızca sunucunuzda etkin olan ağ yönetim yöntemine ait örneği kullanın. Değişiklikten önce mevcut ağ dosyalarını yedekleyin ve SSH kesilirse geri yükleme yapabileceğiniz konsol erişimini doğrulayın. Aşağıdaki adres, prefix, gateway ve arayüz adı örnektir; bunları kendi tahsis bilgilerinizle değiştirin. Örnekler tek arayüzde statik IPv6 ve doğrudan erişilebilen gateway varsayar. Sağlayıcınız SLAAC, DHCPv6, /128 adres veya özel yönlendirme istiyorsa onun yöntemini kullanın. Mevcut IPv4 adreslerini, rotaları, DNS ayarlarını ve loopback tanımlarını koruyun:
- IPv6 adresiniz:
2001:db8:1234:5678::10 - Prefix:
/64 - Gateway:
fe80::1 - Ağ arayüzü adı:
eth0(bazı sistemlerdeens3,ens18vb. olabilir,ip aile bakın)
Netplan kullanan Ubuntu ve Debian sistemleri
Ubuntu kurulumunuz Netplan kullanıyorsa, mevcut yapılandırmayı /etc/netplan/01-netcfg.yaml veya bu dizindeki diğer YAML dosyalarında kontrol edin. Aşağıdaki dosya adı örnektir; aynı arayüz için çakışan yeni bir dosya oluşturmak yerine etkin yapılandırmayı düzenleyin. Dosya cloud-init veya sağlayıcı tarafından üretiliyorsa elle yapılan değişiklikler yeniden üretimde kaybolabilir; imajın kalıcı ağ ayarı yöntemini izleyin.
sudo nano /etc/netplan/01-netcfg.yaml
Aşağıdaki örnek IPv4 için DHCP ve IPv6 için statik adres varsayar. Mevcut IPv4 adres, rota, DNS ve renderer ayarlarınızı örnekle körlemesine değiştirmeyin; IPv6 eklerini mevcut yapılandırmanıza uyarlayın:
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: true
dhcp6: false
accept-ra: false
addresses:
- 2001:db8:1234:5678::10/64
routes:
- to: "::/0"
via: fe80::1
nameservers:
addresses:
- 2001:4860:4860::8888
- 2001:4860:4860::8844
Burada önemli noktalar:
dhcp4: trueyalnızca mevcut IPv4 bağlantınız DHCP kullanıyorsa korunur. Statik IPv4 tanımlarınızı veya farklırendererseçiminizi örnekle değiştirmeyin.dhcp6: falseDHCPv6’yı,accept-ra: falseise Router Advertisement kabulünü kapatır. Bu ikisi aynı ayar değildir; örnek IPv6 adresi ve varsayılan rotanın elle verildiği durum içindir.addressesaltında tahsis edilmiş adres ve arayüz prefix’i bulunur. Eskigateway6yerineroutesiçindekito: "::/0"veviavarsayılan IPv6 rotasını tanımlar.nameserverssatırları genel DNS çözümleyicisi örneğidir. Çalışan DNS listenizi koruyun veya ihtiyaca göre birleştirin; AAAA sorgusu yapmak için DNS sunucusuna mutlaka IPv6 ile bağlanmanız gerekmez.
Dosyayı kaydettikten sonra önce yapılandırmayı üretip sözdizimi hatalarını kontrol edin. SSH üzerinden değişiklik yaparken konsol erişimi hazır olsun; ardından süreli denemeyi başlatın:
sudo netplan generate
sudo netplan try --timeout 120
sudo netplan try ayarı uygular ve belirtilen süre içinde onay bekler. İkinci bir bağlantıdan IPv4/IPv6 erişimini kontrol edip doğruysa onaylayın; onay verilmezse geri almayı dener. Belgelenmiş geri alma sorunları nedeniyle bağlantının ve diskteki dosyaların gerçekten eski hâline döndüğünü konsoldan doğrulayın; otomatik geri dönüşü garanti saymayın. sudo netplan apply ise süreli onay sağlamaz. Planlı yeniden başlatma sonrasında adres, rota ve erişimi tekrar kontrol ederek kalıcılığı doğrulayın.
ifupdown kullanan Debian ve Ubuntu sistemleri
Bu yöntemi yalnızca arayüzünüzü ifupdown yönetiyorsa kullanın. Etkin tanımlar /etc/network/interfaces veya bu dosyanın dahil ettiği dosyalarda olabilir; aynı arayüzü Netplan/NetworkManager ile ayrıca yönetmeyin.
sudo nano /etc/network/interfaces
Bu örnek de IPv4 için DHCP varsayar. Mevcut IPv4 ve loopback tanımlarını koruyarak IPv6 bölümünü etkin arayüz yapılandırmanıza ekleyin:
auto eth0
iface eth0 inet dhcp
iface eth0 inet6 static
address 2001:db8:1234:5678::10/64
gateway fe80::1
accept_ra 0
Bu örnekte IPv6 rotası elle verildiğinden accept_ra 0 kullanılır; RA ile rota alan bağlantılara aynen uygulamayın. Değişikliği, yedek ve konsol erişiminiz hazırken, ifupdown ağ servisini yeniden başlatarak uygulayın. Bu işlem SSH’yi kesebilir:
sudo systemctl restart networking
Dağıtımınız aynı ifupdown servisini service üzerinden yönetiyorsa aşağıdaki alternatif kullanılabilir; iki komutu arka arkaya çalıştırmanız gerekmez:
sudo service networking restart
RHEL, AlmaLinux ve Rocky Linux: NetworkManager
NetworkManager arayüzü yönetiyorsa nmcli kullanın. nmcli connection show ile doğru profili bulun; örnekteki System eth0 adı gerçek profil adınızla değiştirilmelidir. Aynı adlı profiller varsa UUID kullanın. Aşağıdaki statik IPv6 ekleri IPv4 özelliklerini değiştirmez; mevcut IPv6 adres/rota ve DNS ayarlarınız varsa bunlarla birleştirerek uyarlayın. ipv6.never-default açık olmamalı ve çakışan varsayılan rota bulunmamalıdır. Yeniden etkinleştirme SSH’yi kesebilir; konsoldan geri dönüş hazırlığı yapın.
nmcli connection show
sudo nmcli connection modify "System eth0" \
ipv6.method manual \
ipv6.addresses 2001:db8:1234:5678::10/64 \
ipv6.gateway fe80::1
sudo nmcli connection up "System eth0"
Eski ifcfg biçimi ayrı bir alternatiftir: RHEL 9 önceki dosyaları okuyabilir; RHEL 10’da bu biçimin desteği kaldırılmıştır. Türev dağıtımınızda da sürümü ve kurulu ifcfg-rh desteğini doğrulayın. Yalnızca NetworkManager’ın hâlihazırda kullandığı /etc/sysconfig/network-scripts/ifcfg-eth0 gibi bir dosyada, aşağıdaki IPv6 satırlarını mevcut profilinize birleştirin. DEVICE, BOOTPROTO, ONBOOT ve IPv4 ayarları örnekteki DHCP bağlantısına aittir; kendi çalışan değerlerinizi koruyun.
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
IPV6INIT=yes
IPV6_AUTOCONF=no
DHCPV6C=no
IPV6ADDR=2001:db8:1234:5678::10/64
IPV6_DEFAULTGW=fe80::1
Bu eski dosya yöntemini seçtiyseniz, düzenlenen dosyayı NetworkManager’a yeniden okutun ve doğru profili tekrar etkinleştirin. Dosyayı yüklemek tek başına çalışan bağlantıyı değiştirmez. systemctl restart network komutunu modern NetworkManager kurulumlarına genellemeyin:
sudo nmcli connection load /etc/sysconfig/network-scripts/ifcfg-eth0
sudo nmcli connection up "System eth0"
Adım 4: IPv6 Bağlantısını Test Etme
Konfigürasyonları uyguladıktan sonra, IPv6’nın gerçekten çalıştığını doğrulayalım.
Arayüzde IPv6 adresini görüyor musunuz?
ip -6 addr show dev eth0
Sağlayıcınızın tahsis ettiği global adresi görmelisiniz; 2001:db8:1234:5678::10 yalnızca örnektir. Adreste tentative veya dadfailed durumları varsa Duplicate Address Detection sonucunu inceleyin. Yalnızca fe80:: link-local adresinin görünmesi, genel internet için kullanılacak adresin henüz tanımlanmadığını gösterebilir. Adresin listelenmesi tek başına yönlendirme ve servis erişimini kanıtlamaz.
Gateway’e ping atın
ping6 -c 4 fe80::1%eth0
Link-local gateway’i doğru bağlantıda seçmek için %eth0 arayüz kapsamını kullanın; arayüz adını kendinize göre değiştirin. ping6 bulunmayan iputils kurulumlarında ping -6 kullanılabilir. Echo isteği filtrelenebileceği için yanıtsız ping tek başına ağın bozuk olduğunu kanıtlamaz.
Internet’e IPv6 ile çıkış var mı?
ping6 -c 4 2606:4700:4700::1111
ping6 -c 4 2001:4860:4860::8888
Ve alan adı üzerinden test:
ping6 -c 4 ipv6.google.com
Ayrıca dışarıdan hangi IP ile çıktığınızı görmek için:
curl -6 https://ifconfig.io
İstek başarılıysa hizmet, gördüğü IPv6 çıkış adresini döndürür. Bu testler yalnızca seçilen hedeflere dışarı yönlü erişimi gösterir; VPS’inizdeki web servisinin dışarıdan erişilebilir olduğunu kanıtlamaz. Bunu bağımsız bir IPv6 bağlantısından HTTP/HTTPS isteğiyle ayrıca test edin.
Adım 5: Güvenlik Duvarını IPv6’ya Göre Düzenlemek
Adres yapılandırması doğru olsa da işletim sistemi veya sağlayıcı güvenlik duvarı gelen IPv6 trafiğini engelleyebilir. iptables ve ip6tables kuralları ayrı olabilir; nftables inet ailesindeki kurallar ise iki adres ailesini kapsayabilir. Etkin kuralları, kaynak adres kısıtlarını ve hizmetin dinlediği adresleri birlikte kontrol edin.
UFW kullanıyorsanız IPv6’yı açmayı unutmayın
UFW arayüzün mevcut güvenlik duvarını yönetiyorsa, IPv6 desteğini aşağıdaki dosyada kontrol edin. UFW, firewalld ve elle yazılmış nftables kurallarını aynı arayüzde plansızca üst üste uygulamayın.
sudo nano /etc/default/ufw
Şu satırı kontrol edin:
IPV6=yes
Yeniden yüklemeden önce mevcut kuralları inceleyin. SSH’nin gerçek portu ve izin verilen yönetim kaynakları ile web portlarının iki adres ailesinde de tanımlı olduğundan emin olun; konsol erişimini hazır tutun:
sudo ufw status verbose
sudo ufw show raw
Aşağıdaki örnek, SSH’yi 22 numaralı porttan tüm kaynaklara açmanın uygun olduğu basit bir web sunucusu içindir. SSH için farklı port veya kaynak IP kısıtı kullanıyorsanız kendi eşdeğer kuralınızı koruyun; bu geniş SSH iznini eklemeyin. Gerekli izinleri tanımladıktan sonra etkin UFW’yi yeniden yükleyin:
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload
sudo ufw status verbose
IPV6=yes iken bu adres belirtmeyen port kuralları IPv4 ve IPv6’ya uygulanır; çıktıda (v6) kayıtlarını da doğrulayın. UFW başlangıçta etkin değilse reload yerine, izinleri hazırladıktan sonra sudo ufw enable kullanılır. status tüm çerçeve kurallarını göstermez; gerekli ICMPv6 ve DHCP izinleri için ufw show raw çıktısını da inceleyin.
nftables ile IPv6 kuralları
Güvenlik duvarınızı doğrudan nftables ile yönetiyorsanız, IPv6 için ayrı ip6 aile tablosu veya karma bir inet tablosu kullanabilirsiniz. Detaylı bir güvenlik duvarı kurmak istiyorsanız, nftables ile VPS güvenlik duvarı rehberinde IPv6 kurallarını adım adım anlattık.
Aşağıdaki örnek, tek dış arayüzlü, yönlendirme/container ağı bulunmayan ve çıkış trafiği başka kurallarla engellenmeyen basit bir VPS için giriş zinciridir. SSH portunu, kaynak kısıtlarını ve eth0 adını kendi ortamınıza uyarlayın; çalışan kuralları silip bununla değiştirmeyin. IPv4 DHCP kullanan örnekler için 67→68 izni bulunur; statik IPv4’te kaldırılabilir. DHCPv6 gerekiyorsa yorum satırındaki 547→546 kuralı ayrıca etkinleştirilir.
table inet filter {
chain input {
type filter hook input priority 0;
ct state established,related accept
iifname "lo" accept
iifname "eth0" meta nfproto ipv4 udp sport 67 udp dport 68 accept
# DHCPv6 kullaniliyorsa etkinlestirin:
# iifname "eth0" meta nfproto ipv6 udp sport 547 udp dport 546 accept
tcp dport { 22, 80, 443 } accept
icmp type echo-request accept
meta l4proto ipv6-icmp accept
counter drop
}
}
Bu giriş zinciri izin verilen bağlantıları ve IPv4 ping isteklerini geçirir; meta l4proto ipv6-icmp ise yalnızca ping değil, tüm ICMPv6 türlerini kabul eder. Neighbor Discovery ve Path MTU Discovery için gerekli kontrol trafiğini tümden kesmemek amaçlanır. Daha dar bir ICMPv6 politikası hazırlıyorsanız RFC 4890’daki tür ve kapsam önerilerini değerlendirin. Diğer tablo/zincirler trafiği ayrıca düşürebilir; dosya denetimi, konsoldan kontrollü uygulama ve dışarıdan bağlantı testi birlikte yapılmalıdır.
Adım 6: Web Sunucusunu IPv6’da Dinleyecek Şekilde Ayarlamak
Sunucunuz IPv6 ile internete çıkıyor olabilir; ancak web sitenizin gerçekten IPv6 üzerinden erişilebilir olması için, web sunucusunun da IPv6 adresinde dinleme yapması gerekir.
Nginx’te IPv6 dinlemesi
Sitenizin mevcut Nginx server bloğunu düzenleyin; Debian/Ubuntu’da örnek konum /etc/nginx/sites-available/default olabilir. Aşağıdaki HTTP bloğu örnektir; mevcut uygulama, erişim ve IPv4 ayarlarınızı koruyarak IPv6 dinlemesini ekleyin. Aynı sokete ait çakışan default_server tanımları oluşturmayın.
server {
listen 80;
listen [::]:80;
server_name example.com;
root /var/www/html;
}
listen [::]:80 IPv6 HTTP soketidir. HTTPS için yalnızca 443 numaralı portu yazmak yetmez: ssl, geçerli sertifika ve özel anahtar tanımları gerekir. Aşağıdaki yollar örnektir; kendi alan adınızın sertifika dosyalarıyla ve çalışan TLS ayarlarınızla birleştirin:
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name example.com;
root /var/www/html;
ssl_certificate /etc/ssl/example.com/fullchain.pem;
ssl_certificate_key /etc/ssl/example.com/privkey.pem;
}
Önce sudo nginx -t ile birleştirilmiş yapılandırmayı kontrol edin; başarılıysa kurulumunuzun servis yöntemiyle yeniden yükleyin ve dışarıdan doğrulayın. IPv6, HTTP/2 veya TLS 1.3 gerektirmez. Bu ek özellikleri yapılandırmak istiyorsanız, Nginx tarafında TLS yapılandırmasını detaylıca anlattığımız TLS 1.3 ve modern şifrelemeyle hızlı ve güvenli HTTPS rehberimize de göz atabilirsiniz.
Apache’de IPv6 dinlemesi
Debian/Ubuntu Apache paketlerinde dinleme ayarları genellikle ports.conf içindedir; diğer dağıtımlarda dosya konumu değişebilir. Mevcut tüm Listen tanımlarını birlikte inceleyin:
sudo nano /etc/apache2/ports.conf
Tüm arayüzlerde HTTP sunan basit bir kurulumda aşağıdaki tek tanım kullanılabilir. IPv6 desteği etkin derleme ve işletim sistemi davranışını, gerçek dinleme soketleri ve dış testlerle doğrulayın:
Listen 80
Alan adına ait mevcut sanal host’u iki adres ailesinde de kullanılacak biçimde düzenleyin. Aynı siteyi sırf IPv6 için ikinci kez tanımlamanız gerekmez:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:80> sanal host eşleştirmesidir; kendi başına soket açmaz. Gerçek dinlemeyi Listen belirler. IPv6 soketi IPv4 eşlemeli adresleri kabul ediyorsa Listen 80 ile Listen [::]:80 birlikte çakışabilir. Açık adres bağlamaları gerekiyorsa bunları derleme/işletim sistemi davranışına göre tasarlayın. Debian/Ubuntu’da sudo apache2ctl configtest ve sudo apache2ctl -S ile dosya ve vhost eşleşmesini inceleyin; değişiklikten sonra ss -lnt ve iki adres ailesinden HTTP isteğiyle doğrulayın. HTTPS için ayrıca mevcut SSL sanal host’unu ve sertifikaları yapılandırın.
Adım 7: DNS’te AAAA Kayıtlarını Oluşturmak
AAAA kaydını yayınlamadan önce dışarıdaki IPv6 bağlantılı bir istemciden sitenin HTTP/HTTPS erişimini test edin. Sağlayıcı veya CDN kullanıyorsanız istemciye sunulan adres ile origin bağlantısını ayrı değerlendirin. Ardından DNS’te doğru IPv6 adresini yayınlayın; çalışan A kayıtlarını koruyun.
A ve AAAA kayıtlarının farkı
- A kaydı: Alan adını bir IPv4 adresine yönlendirir (örnek:
192.0.2.10). - AAAA kaydı: Alan adını bir IPv6 adresine yönlendirir (örnek:
2001:db8:1234:5678::10).
DNS tarafındaki temel kayıt türlerini ve sık yapılan hataları detaylandırdığımız DNS kayıtları A’dan Z’ye rehberimiz, özellikle karmaşık DNS senaryolarında işinizi kolaylaştıracaktır.
Temel bir AAAA kaydı örneği
Aşağıdaki kayıtlar DNS sözdizimi örneğidir: example.com ve 2001:db8:1234:5678::10 değerlerini kendi alan adınız ve tahsis edilmiş gerçek IPv6 adresinizle değiştirin.
example.com. 300 IN AAAA 2001:db8:1234:5678::10
Alt alan adı için:
www.example.com. 300 IN AAAA 2001:db8:1234:5678::10
DNS panelinizde bu kayıtları ekledikten sonra, istemci tarafında şu komutlarla yanıtı kontrol edebilirsiniz. DNS yanıtı servis bağlantısını kanıtlamaz; ardından curl -6 https://example.com gibi bir HTTPS isteği yapın. Kaydı değiştirir veya geri alırsanız önbellekler önceki TTL süresi boyunca eski yanıtı tutabilir:
dig AAAA example.com
# veya
host -t AAAA example.com
IPv6 ile DNS tarafında yaptığınız küçük bir AAAA kaydının bile sistemi nasıl değiştirdiğini, örnek bir geçiş üzerinden ele aldığımız “Küçük Bir AAAA Kaydı, Büyük Bir Aydınlanma” yazısı da okuma listenizde olsun.
IPv6 ile E-posta, İzleme ve Diğer Servisler
IPv6’yı yalnızca web için kullanmak zorunda değilsiniz. Posta sunucuları, izleme sistemleri, API servisleri ve hatta veritabanı replikasyonu için de IPv6 kullanmak mümkün.
E-posta sunucusu ve IPv6
IPv6 üzerinden posta göndermeden önce alıcı sağlayıcıların DNS, kimlik doğrulama ve itibar koşullarını kontrol edin. PTR, HELO/EHLO, SPF ve engelleme listelerinin farklı rollerini ele alan IPv6 ile e-posta teslimi saha rehberinde bu ayrımları adım adım anlatıyoruz. Özetle:
- Gönderim IPv6 adresiniz için sağlayıcıdan PTR kaydı isteyin; PTR’nin gösterdiği hostname’in AAAA kaydı aynı adrese dönmelidir (FCrDNS). HELO/EHLO geçerli, çözümlenebilir bir sunucu adı olmalıdır; PTR ile aynı adı kullanmak tutarlılık sağlar ancak bu eşitlik tek başına genel bir SMTP zorunluluğu değildir.
- MX hedefinin AAAA kaydı, o sunucuya IPv6 üzerinden posta kabul edecekseniz gereklidir. Yalnızca IPv6 ile dışarı posta göndermek için MX hedeflerine AAAA eklemek zorunlu değildir.
- SPF gönderim adresini veya ilgili altyapıyı yetkilendirmelidir;
ip6:mekanizması kullanılabilir. DKIM iletiyi imzalar, DMARC ise alan adı hizalaması ve politikayı değerlendirir; bu iki kayda IP adresi listesi eklenmez. - Alıcı politikalarını, port 25 erişimini ve IP itibarını doğrulayın. IPv6 kullanımı teslimatı veya engelleme listelerinden çıkmayı garanti etmez.
Monitoring ve log toplama
Prometheus, Grafana, Loki gibi araçlarda IPv6 kullanırken dinleme adresini, erişim kurallarını ve hedef URL biçimini kontrol edin. Port içeren IPv6 adresleri köşeli parantez ister; günlük ayrıştırıcıları da iki adres ailesini desteklemelidir. Kritik hizmetlerde IPv4 ve IPv6 bağlantılarını ayrı ölçün; IPv4’e otomatik dönüşün IPv6 arızasını gizlemesine izin vermeyin. VPS log yönetimini Loki + Promtail ile nasıl rayına oturtabileceğinizi anlattığımız yazı, IPv4/IPv6 fark etmeksizin genel mimariyi kurarken size rehberlik edecektir.
IPv6-Only VPS Senaryoları ve NAT64/DNS64
IPv6-only VPS, IPv4 tahsis maliyetini bazı iş yüklerinde azaltabilir; toplam maliyet uygulama uyumluluğu ve geçiş altyapısına bağlıdır. NAT64/DNS64, IPv6 istemcinin IPv4 hedeflerine bağlantı başlatmasına yardımcı olur. IPv4 adresini doğrudan kodlayan veya yalnızca IPv4 soketi açan uygulamalar için ek uyumluluk mekanizmaları gerekebilir. IPv4-only ziyaretçilerin IPv6-only sitenize erişmesi ise ayrıca IPv4 kabul eden bir CDN/reverse proxy gibi ön uç gerektirir. Panelin kendi gereksinimlerini de kontrol edin; örneğin cPanel & WHM en az bir IPv4 adresi gerektirir.
Bu senaryoyu teknik detaylarıyla ele aldığımız IPv6-only VPS üzerinde web sitesi yayınlama rehberinde, NAT64/DNS64 mimarisini adım adım kuruyoruz. Sağlayıcınızdan NAT64/DNS64 veya IPv4 ön uç hizmetinin gerçekten sunulup sunulmadığını, protokol kapsamını ve fiyatlandırmasını ayrı doğrulayın.
Yaygın Hatalar ve Sorun Giderme İpuçları
1. IPv6 adresi var, ping yok
Kontrol listesi:
ip -6 routeçıktısında varsayılandefault via <gateway>satırını görüyor musunuz?- Gateway’iniz link-local ise, konfigürasyonda doğru arayüzle birlikte tanımlandığından emin olun.
- Güvenlik duvarınız ICMPv6 trafiğini (özellikle
echo-request,echo-reply, Neighbor Discovery ve Path MTU Discovery için Packet Too Big mesajlarını) engellemiyor mu?
2. IPv6 çalışıyor ama site dışarıdan açılmıyor
- DNS’te AAAA kaydınız doğru adrese işaret ediyor mu?
- Web sunucunuz doğru IPv6 adresinde dinliyor mu? Nginx’te HTTP için
listen [::]:80, HTTPS için TLS ayarlarıylalisten [::]:443 ssl; Apache’de ise uygunListenve SSL sanal host tanımları gerekir. - Güvenlik duvarı IPv6 80/443 portlarına izin veriyor mu?
https://[2001:db8:1234:5678::10]/ gibi doğrudan IP içeren bir URL, sertifika adı ve SNI nedeniyle farklı sonuç verebilir. DNS yayınını beklemeden gerçek hostname ile HTTPS sınaması yapmak için, dışarıdaki IPv6 istemcide şu örneği kendi alan adınız ve tahsis edilmiş adresinizle kullanın. Sertifika doğrulamasını kapatmayın:
curl -6 --noproxy '*' --resolve 'example.com:443:[2001:db8:1234:5678::10]' https://example.com/
Bu deneme seçtiğiniz sunucuya doğrudan gider. CDN üzerinden sunulan hizmetin istemci yolunu ayrıca test edin.
3. Sadece bazı kullanıcılarda sorun var
Bazen ISS tarafındaki yanlış IPv6 yönlendirmeleri, bozuk MTU değerleri veya hatalı firewall kuralı, sadece belirli bölgelerden gelen IPv6 trafiğini etkileyebilir. Bu gibi durumlarda:
- Farklı lokasyonlardan
traceroute6çıktıları toplayın. - Sunucu genelinde adres ailesi kapatmak yerine istemcide
curl -4vecurl -6ile aynı endpoint’i ayrı sınayın. - CDN veya WAF kullanıyorsanız, onların IPv6 davranışını da inceleyin.
Güvenlik Perspektifinden IPv6
IPv6, adres alanının büyüklüğü sayesinde “rastgele tarama” saldırılarını zorlaştırsa da, güvenlik duvarı ve hardening ihtiyacını ortadan kaldırmaz. Hatta bazı sistemlerde IPv4 için çok sıkı kurallar yazılıp, IPv6 tamamen boş bırakıldığı için daha riskli bir tablo ortaya çıkabiliyor.
Özellikle VPS güvenliği tarafında port kısıtlama, brute-force önleme, mTLS, HTTP güvenlik başlıkları gibi başlıklara daha derinlemesine girmek isterseniz, VPS sunucu güvenliğini kapıyı açık bırakmadan sağlama rehberimiz ve HTTP güvenlik başlıkları rehberimiz iyi tamamlayıcı kaynaklar olacaktır.
Geçişi Tamamlamadan Önce Son Kontroller
Geçişin tamamlanması için tahsis edilmiş IPv6 adresi, doğru ağ yöneticisinde kalıcı ayarlar, çalışır rota, uygun güvenlik duvarı ve IPv6 dinleyen servisler birlikte gerekir. Dışarıdan IPv4 ve IPv6 erişimini doğruladıktan sonra AAAA kaydını yayınlayın; DNS yanıtını, TLS sertifikasını ve uygulama davranışını yeniden kontrol edin. Planlı yeniden başlatma sonrası da adres, rota ve servis testlerini tekrarlayın.
İzleme sisteminde iki adres ailesini ayrı takip edin. Bir sorun çıkarsa yedek yapılandırmaya dönmek ve gerekirse AAAA kaydını geri almak için hazırlıklı olun; DNS önbellekleri nedeniyle kayıt değişikliğinin tüm istemcilere aynı anda ulaşmasını beklemeyin. E-posta için ayrıca PTR, SPF, DKIM/DMARC ve alıcı politikalarını değerlendirin.
Yeni bir VPS veya fiziksel sunucu seçerken DCHost paketinizde IPv6’nın lokasyon ve plan bazında sunulduğunu, adres/prefix ve gateway bilgilerini ve konsol erişimini teyit edin. Böylece rehberdeki örnekleri kendi tahsis ve işletim sistemi koşullarınıza göre uygulayabilirsiniz.





