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.
linux
networking
ipv6
linux-networking
ipv4
Aldebaran
źródło
źródło
Odpowiedzi:
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 menuconfig
ją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).źródło
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).
źródło
Nie sądzę, że możliwe jest całkowite wyłączenie IPv4, ale w zależności od twojego celu,
iptables
wystarczają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.
źródło
/etc/network/interfaces.d
. Nie jest to dokładnie to samo, co wyłączenie IPv4, ponieważsystemd-resolved
nadal nasłuchuje127.0.0.53:53
. Ale wystarczyło to, aby zaspokoić moje bezpośrednie potrzeby i zdecydowanie wolałem się z nimi bawićiptables
.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.
źródło