Назад | Перейти на главную страницу

Как полностью, динамически отключить стек IPv4 в Linux?

Как отключить IPv4 стек из линукса? Я хочу сделать это динамично, т.е. иногда я хочу, чтобы он был включен, а иногда я хочу только IPv6 стек. Есть ли какой-нибудь переносной способ сделать это? Если вы знаете, как это сделать в любом дистрибутиве, это тоже мне очень поможет.

После небольшого разговора по IRC общее мнение таково, что ядро ​​linux разделяет некоторый код между ipv4 и ipv6, и это может сделать полное отключение ipv4 совершенно невозможным. Ты можешь пытаться для компиляции ядра без частей ipv4, но ipv6 может не скомпилироваться в этом случае (но ничто не мешает вам попробовать!).

Вы можете удалить адреса ipv4 из интерфейсов, AFAIK, но я не думаю, что в настоящее время возможно полностью отключить ipv4.

РЕДАКТИРОВАТЬ: После быстрой проверки make menuconfig на ядре 2.6.36 я не мог найти способ отключить ipv4 без отключения всего стека TCP / IP (и, следовательно, ipv6).

Если это для разработчиков, то можно использовать «вставку библиотеки» с LD_PRELOAD - некоторая подделанная библиотека с функциями-заглушками, которые просто возвращают ошибки (или вызывают настоящие в зависимости от дня недели или какого-либо другого внешнего критерия).

Я не думаю, что можно полностью отключить IPv4, но в зависимости от вашей цели отбрасывание всего трафика IPv4 с помощью iptables может быть достаточно, нет?

Примерно так должно работать. Я не тестировал его ни на одной машине, так как обращаюсь к ним через IPv4.

sudo iptables -I INPUT -j DROP
sudo iptables -O OUTPUT -j DROP

В основном вам следует перекомпилировать ядро ​​без модулей ipv4. шляпа

Вы не можете отключить его полностью, потому что в системе используется петлевой интерфейс 127.0.0.1.
Но вы можете отключить некоторые функции ipv4 с помощью команды if-cfg.