Як відключити ipv6 на певному інтерфейсі в Linux?


24

Може хтось скаже мені, як відключити автоматичну конфігурацію ipv6 у певному мережевому інтерфейсі в CentOS?

Поточна ситуація:

ПК має два мережеві адаптери eth0 та eth1, які підключаються до однієї локальної мережі, в якій маршрутизатор IPv6 рекламує префікс IPv6 з пакетом NDRA (Neighbor Discovery Router Ads Ads). Як результат, і eth0, і eth1 автоматично налаштовують адресу IPv6 з цим префіксом.

Але я просто хочу включити ipv6 на eth1 і відключити його на eth0. Я спробував такі методи, але вони не працюють.

1. / etc / sysconfig / network

NETWORKING_IPV6=no
IPV6_AUTOCONF=no

Це вимкне ipv6 як для eth0, так і для eth1.

2. / etc / sysconfig / network-script / ifcfg-eth0

IPV6INIT=no
IPV6_AUTOCONF=no

Тоді це не працює. Я вже перезапустив послугу мережі. Я трохи розгублений у цьому питанні. Дякую заздалегідь.


1
sysconfig.txt безумовно означає, що те, що ви зробили, має відключити IPv6 на певному інтерфейсі. Однак, схоже, ці прапори ігноруються. Про це є два повідомлення про помилки, які також були проігноровані. Дивіться bugzilla.redhat.com/show_bug.cgi?id=982740 & bugzilla.redhat.com/show_bug.cgi?id=496444
Stefan Lasiewski

Відповіді:


41

Ви можете відключити його з /etc/sysctl.conf за допомогою цього рядка:

net.ipv6.conf.eth0.disable_ipv6 = 1

Погляньте на / proc / sys / net / ipv6 / conf / eth0. У цьому каталозі можна встановити багато варіантів, як, наприклад, залишити IPv6 увімкнутим, але вимкнути автоконкурс тощо.


4
FYI для тих, хто хоче відключити всі, а не один інтерфейс, просто замініть "eth0" на "all"
Пітер

1
Насправді, замість того, щоб змінювати /etc/sysctl.conf, створіть файл у /etc/sysctl.dімені, наприклад, 00_ipv6_off.confіз вищевказаним вмістом. ifconfigПотім буде показано інтерфейси, позбавлені функціональності IPv6.
Девід Тонхофер

В одному рядку:echo "net.ipv6.conf.eth0.disable_ipv6 = 1" > /etc/sysctl.d/00_ipv6_off.conf
Девід Тонхофер

11
$ sudo sysctl -w net.ipv6.conf.eth0.disable_ipv6=1

застаріло

# echo 1 > /proc/sys/net/ipv6/conf/eth0/disable_ipv6

Щоб переконатися, що ця зміна зберігається під час перезавантаження, вам потрібно додати цей рядок у /etc/sysctl.confфайл:

net.ipv6.conf.eth0.disable_ipv6=1

Зауважте, що використання /etc/sysconfig/network-scripts/ifcfg-eth0файлу не є портативним.


3

Ви повинні мати root, щоб встановити параметр мережі нижче:

echo 1 > /proc/sys/net/ipv6/conf/wlan0/disable_ipv6

Це буде працювати і в інсталяторах, якщо інсталятор debian застрягне при виявленні мережевих налаштувань. Перейдіть до консолі (alt + 2) і введіть цю команду. Поверніться до інсталятора. Натисніть Ctrl + C для виходу з виявлення та повторної ініціалізації виявлення мережі.
lsu_guy

1

Використання наступних змінних у ifcfg-eth0 або ifcfg-eth1:

IPV6INIT=no
IPV6_AUTOCONF=no

Слід зробити трюк. Повторюю:

/ etc / sysconfig / network

NETWORKING_IPV6=yes
IPV6_AUTOCONF=yes

/ etc / sysconfig / network-script / ifcfg-eth0

IPV6INIT=no
IPV6_AUTOCONF=no

/ etc / sysconfig / network-script / ifcfg-eth0

IPV6INIT=yes
IPV6_AUTOCONF=yes

Потім переконайтеся, що ви перезапустите мережевий сервіс:

% /etc/init.d/network restart

Якщо ви запустите, ifconfigна пристрої Ethernet (et0 чи eth1) ви побачите inet6, на якому увімкнено ipv6.

% ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 01:26:BD:85:CA:30  
          inet addr:192.168.1.20  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::226:c7ff:fe85:a720/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2497072 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2253781 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2004576667 (1.8 GiB)  TX bytes:1296051472 (1.2 GiB)

Так, це трохи дивно. Налаштування "net.ipv6.conf.eth0.disable_ipv6 = 1" є хорошим рішенням. Дякую за вашу відповідь.
Ів Мессі

1
Гмммм, не робив присідання на моїй системі (RH 6.5 X86_64 у віртуалізованому середовищі.) Хоча добре знати тих для тих систем, де вона працює.
luis.espinal
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.