문제와 목표
우리는 ISP로부터 IPv6를 얻지 못하므로 IPv6 터널이 잘 작동하지만 물론 빠르지는 않습니다. 그리고 정말로 신뢰할 수 없습니다. IPv6을 "경우에 따라"사용할 수 있기를 원하지만 특정 호스트 (도메인)가 IPv4에만 연결되기를 원합니다.
기본 프로토콜
모든 응용 프로그램이 IPv6을 먼저 시도하는 것 같습니다. 이것은 아마도 glibc 설정일 것입니다. 이 기본값이 반대로 바뀌면 괜찮을 것입니다 (모든 응용 프로그램에 대해).
넷 필터
Netfilter를 사용하여 IPv6 주소 / 네트워크를 차단할 수 있지만 두 가지 문제가 있습니다.
- 앱이 IPv4를 시도하기 전에 IPv6 시간 초과를 기다리는 동안 지연이 발생합니까?
- 일부 도메인은 혼돈 된 것처럼 혼합되어있는 것 같습니다. google.com과 youtube.com을 분리하면 피할 수 있다면 원하지 않는 것처럼 보입니다.
방금 매뉴얼 페이지에 ip route
라우팅 유형이 나와 있습니다 unreachable
.
로컬 발신자에게 EHOSTUNREACH 오류가 발생합니다.
Netfilter DROP 또는 REJECT에서도 마찬가지입니까? 이러한 오류로 인해 관련 지연이 발생하지 않아야합니다.
DNS 필터링
또 다른 솔루션은 (가능하면 쉬운 방법 임) 특정 도메인에 대해 AAAA 레코드를 필터링하는 것입니다. 가능하지 않은 경우 : "IP 주소 X가 도메인 Y에 속함"을 알 수 있도록 DNS 서버와 Netfilter를 연결하여 Netfilter에 추가 할 수 있습니까? 모든 것을 기록하고 로그를 파는 것보다 더 우아한 것이 있습니까?
가는 길?
어떤 (다른) 가능성이 있으며 가장 쉬운 것은 무엇입니까?