IPv6에 대한 IP 규칙

IPv6에 대한 IP 규칙

Linux 시스템에서 IPv6에 대한 IP 규칙을 추가하려고 하면 다음 오류가 발생합니다.

$ ip -6 rule add fwmark 0xfab lookup 0xf
RTNETLINK answers: Address family not supported by protocol

IP 규칙 코드를 살펴보았는데, 이는 커널에 netlink 메시지를 보냅니다. 일부 모듈을 로드해야 할 수도 있지만 어떤 모듈인지 모르겠습니다. 이 문제를 해결하려면 어떻게 해야 합니까?

저는 커널 소스에서 빌드된 Linux 2.6.37.3을 사용하고 있습니다.

해결 방법: 기본적으로 Linux 버전은 IPv6에 대한 다중 라우팅 테이블을 지원하지 않습니다. 여러 IPv6 라우팅 테이블을 지원하려면 CONFIG_IPV6_MULTIPLE_TABLES를 활성화해야 합니다.

답변1

IPv6 기능은 ipv6 커널 모듈을 통해 시스템에 제공됩니다. 모듈이 현재 시스템에 로드되어 있는지 확인하려면 루트로 다음 명령을 실행하십시오.

lsmod | grep ipv6

출력에 ipv6이 표시되면 모듈이 로드되었음을 의미합니다.

/etc/modprobe.conf를 확인하고 ipv6이 비활성화되어 있는지 확인하십시오.

alias ipv6 off
options ipv6 disable=1

그것은해야한다

alias net-pf-10 ipv6

인터페이스별 구성 파일을 추가로 확인하십시오. (Fedora, CentOS 등과 같은 RedHat 스타일 배포판을 사용하는 경우)

존재하다/etc/sysconfig/network-scripts/ifcfg-eth0

IPV6INIT=yes
IPV6_AUTOCONF=yes

/etc/sysconfig/network파일 에 있는 경우:

NETWORKING_IPV6=yes

그런 다음 network서비스를 다시 시작하고 시스템을 재부팅하여 ipv6 커널 모듈을 완전히 로드합니다.

답변2

lookup나는 이것이 어떤 객체에도 유효한 옵션이라고 생각하지 않습니다 ip. 규칙 작업에는 table, nat또는 prohibit recject가 포함됩니다 unreachable. realms귀하의 명령 형식으로 판단하면 그것이 귀하가 원하는 것일 것으로 예상됩니다 table. 노력하다

ip -6 rule add fwmark 0xfab table 0xf

관련 정보