Menonaktifkan IPv6 pada satu antarmuka

9

Saya sedikit aneh dengan fakta bahwa Ubuntu tidak akan memproses ipv4 DHCP kecuali jika Anda secara eksplisit menyuruhnya, tetapi dengan senang hati akan mengambil IPv6 RA kecuali Anda tidak melakukannya. Apakah ada cara untuk mengubah perilaku default menjadi 'tidak melakukan apa pun kecuali saya mengaktifkannya secara eksplisit'?

(Catatan untuk penjawab: Saya tidak mencari untuk menonaktifkan ipv6 secara global, atau sepenuhnya mematikan autoconf. Saya mencari untuk menonaktifkan autoconf secara default (seperti pada, saya tidak ingin ipv6 kecuali saya katakan demikian di / etc / network / antarmuka, dengan cara yang sama bahwa saya tidak hanya mendapatkan alamat v4 kecuali saya sudah secara eksplisit mengaktifkan dhcp) .Apa yang terjadi adalah bahwa, untuk setiap antarmuka yang naik - misalnya memiliki konfigurasi ipv4 - alamat v6 cenderung hanya menghidupkan pada antarmuka juga, terlepas dari kenyataan bahwa saya belum mengaktifkannya secara eksplisit. Solusi sejauh ini baik-baik saja sejauh ini, tetapi jika saya menonaktifkan v6 atau autoconf secara global, saya tidak dapat mengaktifkan kembali v6 pada dasar per-antarmuka dengan perintah sederhana di / etc / network / interfaces. Saya cukup yakin saya meminta bulan dengan tongkat, ingatlah.)

ijw
sumber
1
Berikut ini tautan tentang cara menonaktifkan ipv6. Saya belum mencobanya sendiri. Beri tahu saya jika berfungsi: Cara Nonaktifkan IPV6 di Ubuntu
BiggJJ
3
Mungkin memang demikian, tetapi saya tidak ingin menonaktifkan ipv6, cukup cegah konfigurasi otomatis pada antarmuka kecuali saya secara khusus ingin mereka dikonfigurasi otomatis.
ijw

Jawaban:

9

Autoconf di bagian dari fungsionalitas dasar IPv6. Pengumuman RA bukan DHCP, dan server RA tidak menetapkan alamat. RA jauh lebih dekat dengan konfigurasi otomatis IPv4 yang dilakukan pada kisaran IP 169.254.0.0/16. Jika privasi diaktifkan, alamat IPv6 Anda akan berubah seiring waktu. Alamat lama Anda akan pensiun dan akhirnya dihapus.

Anda dapat menonaktifkan autoconf ipv6 dengan mudah dengan perintah:

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

Pengganti alldengan nama antarmuka untuk menonaktifkan satu antarmuka. Ganti autoconfdengan disable_ipv6untuk menonaktifkan IPv6. Buat file /etc/sysctl.ddengan tugas variabel yang Anda inginkan agar pengaturan diterapkan saat startup.

Untuk menemukan semua pengaturan terkait ipv6, jalankan perintah:

sudo sysctl -a | grep ipv6 | less
BillThor
sumber
4

Untuk memeriksa apakah IPv6 diaktifkan atau dinonaktifkan

$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6

0 berarti diaktifkan dan 1 dinonaktifkan.

Untuk menonaktifkan IPv6

$ su -
# nano /etc/sysctl.conf

dan tambahkan baris ini ke file sysctl.conf

#disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Simpan file sysctl.conf dengan konfigurasi baru, lalu reboot sistem Anda

# reboot

Periksa kembali sistem Anda

$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6

Sekarang Anda akan melihat "1" berarti IPv6 telah dinonaktifkan pada sistem Anda.

Dari http://namhuy.net/1419/disable-ipv6-ubuntu-linux-mint.html


sumber
Bekerja untukku. Setidaknya pada Centos, Anda dapat menjalankan "sudo sysctl -p" untuk memuat ulang tanpa me
Code Wiget
2

Mirip dengan, tetapi berbeda dari, salah satu jawaban lain, saya mencoba ini dengan sangat gembira:

Tambahkan file sysctl di /etc/sysctl.d untuk menonaktifkan ipv6 - meskipun tidak secara universal, seperti halnya keadaan standar antarmuka:

net.ipv6.conf.default.disable_ipv6=1

Kemudian, dalam file antarmuka dan hanya untuk antarmuka yang Anda inginkan memiliki ipv6, tambahkan:

iface eth0 inet dhcp # .. or whatever
up sysctl -w net.ipv6.conf.$IFACE.disable_ipv6=0

... dengan demikian, antarmuka tidak mendapatkan alamat IPv6 ketika mereka muncul (seperti saat ini) tetapi dapat dibujuk untuk memilikinya dalam kasus tertentu. Anda pasti dapat menonaktifkan RAS sebelum mengaktifkan ipv6 jika itu yang Anda inginkan juga.

NB: Saya menduga Anda akan mengalami masalah dengan antarmuka bernama VLAN (misalnya eth0.100) dan harus mengeja itu dalam perintah 'naik' sebagai 'eth0 / 100' daripada $ IFACE, yang akan memiliki format yang salah - Saya belum mengujinya, tapi sepertinya itulah cara sysctl memandang dunia.

ijw
sumber