Linux'ta IPv6'da otomatik yapılandırma nasıl devre dışı bırakılır?


22

IPv6'nın otomatik yapılandırılmasını Linux'ta nasıl devre dışı bırakabilirim? Bir adresi bir arabirimden el ile silmeyi denediğimde:

ip -6 addr del 2001:0db8:85a3:0000:0000:8a2e:0370:7334/64 dev eth1

Birkaç saniye sonra tekrar ortaya çıkacak, kalıcı olarak gitmesini istiyorum, ancak IPv6'yı hep birlikte devre dışı bırakmadan istiyorum.

Yanıtlar:


21

Otomatik yapılandırma eth1 için aşağıdakilerle geçici olarak devre dışı bırakılabilir:

sudo sysctl -w net.ipv6.conf.eth1.autoconf=0
sudo sysctl -w net.ipv6.conf.eth1.accept_ra=0

veya tüm arayüzler için:

sudo sysctl -w net.ipv6.conf.all.autoconf=0
sudo sysctl -w net.ipv6.conf.all.accept_ra=0

Yeniden etkinleştirme çağrıda 0 yerine 1 kullanarak çalışır.

Kalıcı olarak devre dışı bırakmak için bir giriş yapılabilir /etc/sysctl.conf. Debian Etch'de (muhtemelen daha yenisinde de), accept_rasistemi ayarlamadan, yerel bağlantı yerel adresini ( fe80..) kullanarak sistem otomatik olarak yapılandırılır.

Gart aşağıda belirtildiği gibi ev sahibi kendisi yönlendiricidir ve eğer otomatik adres yapılandırma ve yönlendirici bulma devre dışı bırakılacak accept_radeğil 2, yani

net.ipv6.conf.<iface|all|default>.forwarding=1

ve

net.ipv6.conf.<iface|all|default>.accept_ra=0 veya net.ipv6.conf.<iface|all|default>.accept_ra=1.

ifacearayüzün nerede


3
Ayrıca, ana bilgisayarın kendisi bir yönlendiriciyse, yani net.ipv6.conf.all.forwarding=1ayarlanmışsa , otomatik adres yapılandırması ve yönlendirici keşfi devre dışı bırakılır .
Gart

4

net.ipv6.conf.all.accept_ra = 0 yukarıda yapılmamalıdır, çünkü RA'lar önek için bağlantı içi ve bağlantı dışı işareti (RFC5942'ye göre) yanı sıra bir dizi diğerinin otomatik yapılandırmasını belirtmek için gereklidir MTU, Neighbor Discovery zaman aşımları vb. gibi parametreler

Otomatik yapılandırmayı devre dışı bırakmak istiyorsanız, autoconf sysctl komutunu yukarıdaki gibi kapatın veya RA'daki Önek Bilgisi Seçeneğinde (PIO) A (otomatik yapılandırma biti) özelliğini kapatın.


3
sudo sysctl -w net.ipv6.conf.all.autoconf=0

Bu benim için Debian Wheezy'de işe yaramadı. /Etc/sysctl.conf dosyasını inceledikten sonra kullanmam gerekiyordu.

sudo sysctl -w net.ipv6.conf.default.autoconf=0

3

sysctlÇözelti Ubuntu 18.04 Biyonik bizim için çalışmadı. Bunu çözdük:

Düzenleme /etc/netplan/01-netcfg.yaml, yapılandırma:

network:
  ...
  ethernets:
    eth0:
      ...
      dhcp6: no
      accept-ra: no

Bunun yerine arayüz adınızı kullanmanız gerekebilir eth0. Dosyayı kaydettikten sonra çalıştır:

netplan apply veya reboot

Otomatik yapılandırmadan zaten bir IPv6 IP aldıysanız ve yeniden başlatmadan kaldırmak istiyorsanız, aşağıdakileri yapabilirsiniz:

ip -6 addr del 1111:2222:1:0:aaaa:bbbb:cccc:dddd/64 dev eth0 

Elbette bu komutta IP ve cihazı değiştirmeniz gerekir.


Bu sadece
günümün

2
Ben genellikle bulana kadar Google’ı kaşıyorum.
Jeroen Vermeulen - MageHost

1
Bunu denediğimde çalıştı, ancak sorun Mark S tarafından belirtildiği gibi kabul-ra'yı kapatmak oldukça tehlikelidir - işe yarıyor gibi görünüyor ama daha sonra bir parçalanma noktasına veya yük devretme yönlendiricisine çarptıklarından, paketlerin eksik olduğunu görebilirsiniz. kullanıldı. Ayrıca pingleri kırıyor. Bunu yapmaya çalışmamın nedeni, giden postadaki SPF kaydını güvenilir bir şekilde eşleştirmekti, ancak daha sonra IPv6'da tek bir adrese değil, etkili bir şekilde bir adrese ait bir makineye ait olduğu için kayıtta bir ağ maskesi kullanmam gerektiğini fark ettim. .
Phil McKerracher

2

Ubuntu 18 ve ipv6 ile ilgili sorun systemd-networkd'nin çekirdek parametrelerini kontrol etmesidir; bu nedenle, sysctl ile ipv6'yı devre dışı bıraksa da, yapılandırma aksi belirtilmezse, ağd bunları sizin için açmaktan daha mutlu olacaktır.

IPv6'yı devre dışı bırakma çözümüm, netplan'daki yerel bağlantıyı boş bir skalaya göre yapılandırmak (yerel bağlantı IPv4 IP'leri yoksa)

network:
     version: 2
     renderer: networkd
     ethernets:
     eth0:
        ..
        link-local: [ ]

Yapılandırma, /run/systemd/network/10-netplan-eth0.network adresinde yayınlanacak ve ağ için ethv için ipv6 kullanmamaya ikna edilecek ağ yapılandırmasını derleyecektir.

İpv6'yı geri döngüde de devre dışı bırakmak isteyebilirsiniz, net.ipv6.conf.all.disable_ipv6 çekirdek parametresini net.ip 1 olarak ayarlayarak kolayca elde edilebilir. Networkd geri döngü kontrolü yapmaz.

sysctl -w net.ipv6.conf.all.disable_ipv6=1

Çok temiz çözümünüzü gerçekten beğendim. Yerel adresleri kullanmadığımız için, boş skaler ekleyerek mükemmel çözüm. Bundan sonra, netplan uygulamasının her iki ethernet arayüzünde önceden atanmış IPv6 adreslerini tutması nedeniyle sunucuyu yeniden başlatmak zorunda kaldık. Ancak yeniden başlattıktan sonra, her şey söylediğiniz gibi çalışıyor. Geri döngü arabiriminde IPv6'yı devre dışı bırakmanın bir nedeni olduğunu sanmıyorum, bu yüzden sysctl kısmını atladım. Teşekkürler!
Zoltan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.