Jak całkowicie, dynamicznie wyłączyć stos IPv4 w systemie Linux?


17

Jak mogę wyłączyć stos IPv4 w systemie Linux? Chcę to zrobić dynamicznie , tzn. Czasami chcę to włączyć, a czasem chcę tylko stos IPv6 . Czy jest na to jakiś przenośny sposób? Jeśli wiesz, jak to zrobić w dowolnej dystrybucji, bardzo mi to pomoże.


2
@kasperd Nic się nie zmieniło od 2011 roku.
— Michael Hampton

Odpowiedzi:


21

Po krótkim czacie na IRC ogólna opinia mówi, że jądro Linuksa dzieli część kodu między ipv4 i ipv6, co może całkowicie uniemożliwić wyłączenie ipv4. Możesz spróbować skompilować jądro bez części ipv4, ale ipv6 może się nie skompilować w tym przypadku (ale nic nie powstrzymuje cię przed próbą!).

Możesz usunąć adresy IPv4 z interfejsów, AFAIK, ale nie sądzę, aby w tej chwili można było całkowicie wyłączyć ipv4.

EDYCJA: Po szybkim sprawdzeniu make menuconfigjądra 2.6.36 nie mogłem znaleźć sposobu na wyłączenie ipv4 bez wyłączenia całego stosu TCP / IP (a więc ipv6).


4

Jeśli jest to przeznaczone dla programistów, można zastosować „interpolację bibliotek”, z LD_PRELOAD jakąś dokumentowaną biblioteką z funkcjami pośredniczącymi, które po prostu zwracają błędy (lub które wywołują te rzeczywiste w zależności od dnia tygodnia lub innego zewnętrznego kryterium).


2

Nie sądzę, że możliwe jest całkowite wyłączenie IPv4, ale w zależności od twojego celu, iptableswystarczające może być zmniejszenie całego ruchu IPv4 , prawda?

Coś takiego powinno działać. Nie testowałem tego na żadnym komputerze, ponieważ uzyskuję do nich dostęp przez IPv4.

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

1
Spowoduje to zablokowanie ruchu, co może być czasem przydatne. ale nie powstrzyma programów przed wiązaniem gniazda IPv4. Jest to konieczne, aby całkowicie wyłączyć IPv4.
— Michael Hampton

To, co zrobiłem na komputerze, na którym musiałem uruchomić tylko IPv6, polegało na wyłączeniu klienta DHCP /etc/network/interfaces.d. Nie jest to dokładnie to samo, co wyłączenie IPv4, ponieważ systemd-resolvednadal nasłuchuje 127.0.0.53:53. Ale wystarczyło to, aby zaspokoić moje bezpośrednie potrzeby i zdecydowanie wolałem się z nimi bawić iptables.
— kasperd

1

Przeważnie powinieneś rekompilować jądro bez modułów ipv4. fedora

Nie można go całkowicie wyłączyć, ponieważ system używa interfejsu sprzężenia zwrotnego 127.0.0.1.
Ale możesz wyłączyć niektóre funkcje ipv4 za pomocą polecenia if-cfg.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.