問題と狙い
ISPからIPv6を取得していないため、IPv6トンネルは正常に動作しますが、もちろん非常に高速ではありません。そして、本当に信頼できません。「念のため」にIPv6を使用できるようにしたいのですが、特定のホスト(ドメイン)をIPv4のみで接続する必要があります。
デフォルトのプロトコル
すべてのアプリケーションが最初にIPv6を試すように思えます。これはおそらくglibcの設定です。このデフォルトが(すべてのアプリケーションに対して)逆にされれば、私は問題ありません。
ネットフィルター
NetfilterでIPv6アドレス/ネットワークをブロックすることは可能ですが、2つの問題があります。
- アプリがIPv4を試す前にIPv6タイムアウトを待機するため、遅延が発生しますか?
- いくつかのドメインは混沌としたように混ざっているようです。google.comとyoutube.comを分離することは、それを回避できるのであれば望ましくないように思えます。
私はただのmanページがあることに注意しip route
、ルーティングタイプのために言いますunreachable
:
ローカル送信者はEHOSTUNREACHエラーを受け取ります。
NetfilterのDROPまたはREJECTでも同じことが起こりますか?このようなエラーが原因で遅延が発生することはありません。
DNSフィルタリング
別の解決策(それが可能であればかなり簡単な解決策)は、特定のドメインのAAAAレコードをフィルタリングすることです。それが(簡単に)できない場合:DNSサーバーとNetfilterを接続して、「IPアドレスXがドメインYに属している」ことを確認して、それをNetfilterに追加できますか?すべてをログに記録してログをgrepするよりもエレガントなものはありますか?
行く方法?
どの(その他の)可能性があり、最も簡単なものは何ですか?