Як повністю відключити IPV6 на Mac OS X (10.5 +)?


2

Я хотів би взагалі не уникати використання ipv6 моєї машини Mac OS X.

Я шукаю програмний спосіб відключити ipv6 на кожному мережевому інтерфейсі і, можливо, взагалі уникнути підтримки ipv6 ядром.

Як пояснення, мені потрібен еквівалент додавання "псевдоніму ipv6 off" до modprobe.conf в Linux.

Відповідь "це неможливо" вітається, звичайно, підтримуючи якесь офіційне джерело.

Редагувати:

Я хочу видалити ipv6 з журналів, з ipfw, звідусіль. Навіть для задоволення того, що знає, чи можна і як це можливо. Це правильно зробити - це інше питання :)


2
Вибір вашого курсу, звичайно, але мені просто цікаво, чому ви хочете це зробити?
Стів Фоллі

2
Заради чіткості. Оскільки в моїй локальній мережі немає потреби в IPV6, моя політика полягає у видаленні всього не потрібного, оскільки єдине, що захищено за замовчуванням, - це те, що не існує :)
drAlberT

Відповіді:


4

Ви можете відключити IP6 для конкретного пристрою за допомогою

networksetup -setv6off Service name
(i.e  networksetup -setv6off "Ethernet 1")

і отримати список усіх можливих послуг

networksetup -listallnetworkservices

Для отримання додаткової інформації див.

Я не знаю, чи можете ви сказати networksetup виконувати команду для кожного інтерфейсу одночасно, але це не повинно бути занадто важким, щоб написати короткий сценарій, який повторюється над результатами команди списку та відключить IP6 на всіх пристроях.


Так, я зробив сценарій і можу вимкнути ipv6 на кожному пристрої. Справа в тому, що сама система все ще має підтримку ipv6, тому ipfw враховує правила ipv6 тощо. Моя мета - зробити мої системи повністю IPV6 невідомими , чи це можливо?
drAlberT

3

Як вже згадував neoice, тут корисний інструмент 'ip6'. Це дозволяє відключити IPv6 на інтерфейс, або "ip6 -x" відключить усі, крім інтерфейсу зворотного зв'язку.

Ви можете відключити IPv6 в інтерфейсі зворотного зв'язку за допомогою

ip6 -d lo0

Коли я спробував це, роздільна здатність DNS перестала працювати.

Отже: Так, ви можете повністю відключити IPv6, але ви отримаєте серйозно порушену систему.


1

Це відключить ipv6 на всіх мережевих адаптерах:

#!/bin/sh
IFS=$'\n'
net=`networksetup -listallnetworkservices | grep -v asterisk`

for i in $net
do
    networksetup -setv6off "$i"
done
exit 0

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

1
Не те, що я знаю. Налаштування ядра в значній мірі встановлені в камені в OS X-і, навіть якщо їх не було, ipfw має підтримку ipv6, зібрану, тому я не бачу, як ви можете відключити її, не маючи перекомпіляції.
Джош Будде

0

У відповідь на ваш коментар до відповіді SvenW:

Моя мета - зробити мої системи повністю IPV6 невідомими, чи це можливо?

Хоча IPv6 ще не використовується скрізь, він буде - можливо, через кілька років. Тому я здогадуюсь, і було б сенс, що IPv6 настільки ж інтегрований в OS X, як і IPv4, і вам потрібно буде відновити ядро ​​(і, можливо, деякі програми), щоб видалити будь-який з них. (Однак у мене немає джерел.)


0

ця сторінка виглядає інформативно. схоже, що це працює, якщо працювати як root. Мені не здається відключити його назавжди, тому не можу підтвердити команду sysctl.

root@Shambhala:~# ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
    inet6 ::1 prefixlen 128 
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
    inet 127.0.0.1 netmask 0xff000000 
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    inet6 fe80::21b:63ff:fea5:de87%en0 prefixlen 64 tentative scopeid 0x4 
    media: autoselect status: inactive
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    inet 172.16.11.98 netmask 0xffffff00 broadcast 172.16.11.255
    inet6 fe80::21c:b3ff:fe77:c434%en1 prefixlen 64 tentative scopeid 0x5  
    media: autoselect status: active
    supported media: autoselect
vboxnet0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    inet6 fe80::276:62ff:fe00:0%vboxnet0 prefixlen 64 scopeid 0x7 
    ether 00:76:62:00:00:00 

root@Shambhala:~# ip6 -x
root@Shambhala:~# ifconfig 
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
    inet6 ::1 prefixlen 128 
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
    inet 127.0.0.1 netmask 0xff000000 
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    media: autoselect status: inactive
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    inet 172.16.11.98 netmask 0xffffff00 broadcast 172.16.11.255
    media: autoselect status: active
    supported media: autoselect
vboxnet0: flags=8842<BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether 00:76:62:00:00:00 

схоже, ipv6 залишається включеним на пристрої петлі, хоча ...


0

Ви сказали, що ipfw приймає правила ipv6. Таким чином, ви можете просто заблокувати ipv6 там, це відбувається в ядрі, і нічого, пов’язане з ipv6, не буде працювати.


Майже те, що ви хотіли;)
Гліб

Я хочу видалити ipv6 з журналів, з ipfw, звідусіль. Навіть для задоволення того, що знає, чи можна і як це можливо. Це правильно зробити, це інше питання :)
drAlberT
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.