Linux Sistemlerde IPv6 Yapılandırması

Cem Topkaya
4 min readAug 23, 2024

--

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:

  1. Ağ ayarları
  2. Bellek yönetimi
  3. Dosya sistemi parametreleri
  4. Güvenlik ayarları

IPv6 ile ilgili olarak, sysctl.conf dosyasında şu tür satırlar bulunabilir:

  1. 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).
  2. 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.
  3. net.ipv6.conf.all.accept_ra = 1
    Bu ayar, Yönlendirici Duyurularını ( Router Advertisements RA ) kabul edip etmeyeceğini belirler.
  4. 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.
  5. 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:

  1. Statik IP ataması: RA’nın doğrudan bir etkisi yoktur. IP adresi manuel olarak atanır ve RA’lar bu atamayı etkilemez.
  2. 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ü:

  1. IP adresi değişmez.
  2. Ağdaki potansiyel kötü niyetli RA’lara karşı koruma sağlar.
  3. 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 ve ens4 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 olarak 2001:*** 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üzden inet6 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 dhcp
iface ens4 inet6 static
address 2001:620:5ca1:80f1::42
netmask 64

--

--

Cem Topkaya
Cem Topkaya

Written by Cem Topkaya

Evlat, kardeş, ağabey, eş, baba, müzik sever, öğrenmek ister, paylaşmaya can atar, iyi biri olmaya çalışır, hakkı geçenlerden helallik ister vs.

No responses yet