Linux Sistemlerde IPv6 Yapılandırması
sysctl.conf
sysctl.conf
dosyası, Linux ve Unix benzeri işletim sistemlerinde çekirdek parametrelerini yapılandırmak için kullanılan bir konfigürasyon dosyasıdır. Bu dosya genellikle /etc/sysctl.conf
konumunda bulunur ve sistem yöneticilerine çekirdeğin çalışma zamanı davranışını değiştirme imkanı sağlar.
sysctl.conf dosyası içinde çeşitli sistem ayarları bulunabilir, örneğin:
- Ağ ayarları
- Bellek yönetimi
- Dosya sistemi parametreleri
- Güvenlik ayarları
IPv6 ile ilgili olarak, sysctl.conf
dosyasında şu tür satırlar bulunabilir:
net.ipv6.conf.all.disable_ipv6 = 0
Bu satır, tüm ağ arayüzlerinde IPv6'yı etkinleştirir (0) veya devre dışı bırakır (1).net.ipv6.conf.default.forwarding = 0
Bu, varsayılan olarak IPv6 paket yönlendirmesini kontrol eder. 1 olarak ayarlanırsa, sistem bir yönlendirici gibi davranır.net.ipv6.conf.all.accept_ra = 1
Bu ayar, Yönlendirici Duyurularını ( Router Advertisements RA ) kabul edip etmeyeceğini belirler.net.ipv6.conf.default.accept_ra_defrtr = 1
Bu, varsayılan yönlendirici olarak RA ile alınan yönlendiricinin kabul edilip edilmeyeceğini kontrol eder.net.ipv6.conf.all.autoconf = 1
Bu ayar, durum bilgisiz adres otomatik yapılandırmasını (SLAAC) etkinleştirir veya devre dışı bırakır.
Bu ayarlar, IPv6 ağ davranışını ve güvenliğini önemli ölçüde etkiler. Sistem yöneticileri, ağ gereksinimlerine ve güvenlik politikalarına göre bu parametreleri dikkatle ayarlamalıdır.
Statik IPv6 Atamalarında sysctl.conf’un Alabileceği Değerler
Statik IPv6 atamaları için tipik bir /etc/sysctl.conf
konfigürasyonu:
# IPv6 ayarları: IPv6'yı etkinleştiriyoruz.
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
# Router Advertisement (RA) ayarları: Router Advertisement'ları (RA) kabul etmiyoruz.
net.ipv6.conf.all.accept_ra = 0
net.ipv6.conf.default.accept_ra = 0# Adres otomatik yapılandırması: Otomatik adres yapılandırmasını devre dışı bırakıyoruz.
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.default.autoconf = 0# Varsayılan yönlendirici kabulü: RA'lardan gelen varsayılan yönlendirici bilgisini kabul etmiyoruz.
net.ipv6.conf.all.accept_ra_defrtr = 0
net.ipv6.conf.default.accept_ra_defrtr = 0# Paket yönlendirme (gerekirse): IPv6 paket yönlendirmesini devre dışı bırakıyoruz (sunucu bir yönlendirici değilse).
net.ipv6.conf.all.forwarding = 0
net.ipv6.conf.default.forwarding = 0
Router Advertisement’ın (RA) IP atamasındaki etkisine gelince:
- Statik IP ataması: RA’nın doğrudan bir etkisi yoktur. IP adresi manuel olarak atanır ve RA’lar bu atamayı etkilemez.
- Otomatik IP ataması: Normal şartlarda, RA’lar otomatik IP ataması için çok önemlidir:
- SLAAC (Stateless Address Autoconfiguration): RA’lar, ağ önekini ve diğer yapılandırma bilgilerini sağlar.
- DHCPv6: RA’lar, sistemin DHCPv6 kullanması gerektiğini belirtir.
Ancak, yukarıdaki konfigürasyonda:
accept_ra = 0
ayarı, sistemin RA'ları tamamen yok saymasını sağlar.autoconf = 0
ayarı, otomatik adres yapılandırmasını devre dışı bırakır.
Bu ayarlarla, sistem RA’ları dikkate almaz ve otomatik IP ataması yapmaz. Bu, statik IP ataması için idealdir çünkü:
- IP adresi değişmez.
- Ağdaki potansiyel kötü niyetli RA’lara karşı koruma sağlar.
- Ağ yapılandırmasının tam kontrolünü sağlar.
Ancak, bu ayarların bazı dezavantajları da olabilir:
- Ağ yapılandırması değişirse manuel müdahale gerektirir.
- Ağ yönetimini daha karmaşık hale getirebilir.
Bu nedenle, statik IP kullanırken bile bazı durumlarda accept_ra = 2
ayarı tercih edilebilir. Bu ayar, RA'ları kabul eder ama sadece ek bilgi için kullanır, otomatik adres yapılandırmasını etkilemez.
Sonuç olarak, statik IPv6 atamalarında RA’ların IP ataması üzerinde doğrudan bir etkisi yoktur, ancak ağ yapılandırmasının diğer yönlerini etkileyebilir. Ayarlarınızı, ağınızın ihtiyaçlarına ve güvenlik gereksinimlerinize göre dikkatle seçmelisiniz.
IPv6'nın Faal Edilmesi
IPv6'nın faal olup olmadığını öğrenmek için cat /proc/sys/net/ipv6/conf/all/disable_ipv6
komutunu çalıştırın. Çıktı "1" ise, IPv6 devre dışı bırakılmış demektir.
/etc/sysctl.conf
Dosyasında aşağıdaki satırlar
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Bu dosyadaki bir değişimin etkili olması için aşağıdakilerden birini yapmanız gerekir:
- Bilgisayarı yeniden başlatmak
sudo /sbin/sysctl -p /etc/sysctl.conf
komutunu çalıştırmak- Kernel ayarlarını bilinçli olarak sizin aşağıki komutlardan birini kullanarak değiştirmeniz:
sudo echo "0" > /proc/sys/net/ipv6/conf/all/disable_ipv6
- veya
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
Ayrıca sistemin özellikle IPv6'yı boot ederken devre dışı bırakmadığından emin olmak için GRUB (Grand Unified Bootloader) ayarlarına (/etc/default/grub
dosyasında bulunur) bakmanız gerekir.
GRUB üzerinden IPv6'yı devre dışı bırakmak için, verdiğiniz GRUB konfigürasyon dosyasında GRUB_CMDLINE_LINUX_DEFAULT
veya GRUB_CMDLINE_LINUX
satırını düzenleyebilirsiniz:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ipv6.disable=1"
veya
GRUB_CMDLINE_LINUX="ipv6.disable=1"
GRUB konfigürasyonunu güncellemek için sudo update-grub
komutunu çalıştırmalısınız.
Statik Yapılandırma
DHCP üzerinden IP adresi almaması için /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
dosyasında aşağıdaki ayarın json/yaml formatında yapılması gerek:
network: {config: disabled}
yahut
network:
config: disabled
Bu ayarın ardından IPv6 bilgilerini /etc/network/interfaces.d/50-cloud-init.cfg
dosyasına aşağıdaki gibi girmemiz gerekecek ancak satır satır anlamaya çalışalım:
root@snap:/etc/network/interfaces.d# cat 50-cloud-init.cfg
auto lo
iface lo inet loopback
auto lo
satırı, sistem önyüklemesi sırasında loopback ağ arayüzünün otomatik olarak etkinleştirilmesini sağlar.
Loopback Arayüzü (lo): lo arayüzü inet (IPv4) protokolü üzerinden loopback olarak yapılandırılmıştır.iface lo inet loopback
satırı, sistemin loopback ağ arayüzünü IPv4 protokolü üzerinden loopback olarak yapılandırır.
root@snap:/etc/network/interfaces.d# cat 50-cloud-init.cfg
...
auto ens3
iface ens3 inet dhcp
auto ens4
iface ens4 inet dhcp
- Yukarıdaki satırlar LO arayüzünü anladığımız için çok daha kolay ve tekrar satırlarıdır. Buna göre
ens3
veens4
arayüzleri IPv4 türünde adresleri (inet
den ötürü), sistem önyüklemesi sırasında (auto
dan ötürü) ve ağ bağlantılarını DHCP sunucusuyla (dhcp
) oluşturacaktır.
iface ens4 inet6 static
address 2001:620:5ca1:80f1::42
netmask 64
ens4
Ağ arayüzü için IPv6 adresini (inet6
) statik olarak2001:***
adresiyle (scope global
yani genel ağdaki diğer cihazlar tarafından da erişilebilir olacak şekilde) veriyoruz.- Aynı şekilde
scope link
yani bağlantı yerel IPv6 adresleri , yalnızca aynı ağ segmentindeki cihazlar arasında geçerlidir ve bu adresler, herhangi bir özel yapılandırma olmadan, otomatik olarak oluşturulur. Bu yüzdeninet6 fe80::f816:3eff:fe2f:3369/64 scope link
çıktısını adresleri listelediğimizde görürüz.
Tüm Ağ Yapılandırması
root@snap:/etc/network/interfaces.d# cat 50-cloud-init.cfg
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
auto lo
iface lo inet loopback
auto ens3
iface ens3 inet dhcp
auto ens4
iface ens4 inet dhcpiface ens4 inet6 static
address 2001:620:5ca1:80f1::42
netmask 64