브리지 모듈이 필요할 때 ipv6을 비활성화하는 방법은 무엇입니까?

브리지 모듈이 필요할 때 ipv6을 비활성화하는 방법은 무엇입니까?

Linux에서는 브리지 네트워크 카드가 필요한 경우 브리지 모듈이 자동으로 로드됩니다. 그러나 브리지의 종속성 중 하나는 ipv6입니다. ipv4만 필요하므로 ipv6 종속성을 무시할 수 있는 방법이 있습니까? 모듈을 블랙리스트에 등록하려고 시도했지만 전혀 작동하지 않았습니다.

편집: 문제는 ipv6을 비활성화하는 방법을 묻는 것이 아니라 ipv6 모듈 없이 브리지를 로드하는 방법을 알고 싶습니다. 질문은 반복되지 않습니다.

답변1

그것에서구성 정의:

depends on: CONFIG_IPV6 || CONFIG_IPV6 = CONFIG_n

브리지 모듈은 커널에서 컴파일된 경우(내장 또는 모듈로) ipv6 모듈에 의존하거나, 의존하지 않는 것 같습니다(커널에서 전혀 컴파일되지 않은 경우). 따라서 IPv6를 사용하지 않으려면 CONFIG_IPV6해당 옵션을 설정하지 않고 커널을 사용하면 됩니다.

이것이 옵션이 아닌 경우 다음 중 하나를 수행할 수 있습니다.

  • 먼저 ipv6 모듈( modprobe ipv6)을 로드한 다음 다음을 변경하여 해당 인터페이스나 다른 인터페이스 또는 모든 인터페이스에 대해 IPv6를 즉시 비활성화합니다.disable_ipv61로 전환:

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

    또는 동등한 sysctl을 사용하십시오(더 친숙 sudoip netns):

    sysctl -w net.ipv6.conf.someinterface.disable_ipv6=1
    

    기능을 비활성화하려면 먼저 ipv6 모듈을 로드해야 합니다! 그렇지 않으면 위의 토글을 사용할 수 없습니다.

    브리지 인터페이스 자체에서 IPv6를 비활성화하는 것이 실제로 좋은 생각일 수 있습니다.

    나중에 제공될 최신 인터페이스를 포함하여 ipv6 사용을 비활성화하려면 다음을 수행하세요.

    sysctl -w net.ipv6.conf.default.disable_ipv6=1
    sysctl -w net.ipv6.conf.all.disable_ipv6=1
    
  • 제한된 환경(예: 임베디드)에 더 적합하고 모든 ipv6 코드를 설치하지 못할 수 있는 커널 부팅 옵션도 있지만 ipv6.disable=1브리지 "활성화"와 호환되는지 여부는 테스트하지 않았습니다.

    부팅 옵션에 "ipv6.disable=1"을 추가하고 grub 파일을 저장합니다.

    GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet splash"
    

    이 부팅 옵션에 대한 자세한 내용은 AskUbuntu의 답변에서 확인할 수 있습니다.IPv6를 영구적으로 비활성화하는 방법은 무엇입니까?

  • 그런 다음 이 방법도 작동할 것이라고 생각했습니다(그러나 IPv6가 내장되어 있으므로 테스트할 수는 없습니다). 단순히 modprobe ipv6첫 번째 방법을 사용하는 대신 다음을 시도해 보십시오.

    modprobe ipv6 disable=1
    

    또는

    modprobe ipv6 disable_ipv6=1
    

    로드되기 전에. 이것이 작동하면 다음과 같은 옵션으로 추가할 수 있습니다.

    options ipv6 disable=1 disable_ipv6=1 #pick the right option
    

    예를 들어, /etc/modprobe.d/disable-ipv6.conf.

관련 정보