
Dockerコンテナから「別のコンテナ名」を取得しようとすると、カールは最初に名前をIPv6に解決しようとします。 ipv6を介してWebサーバーにアクセスできないため、数秒の遅延が発生する可能性があります。
コンテナインターフェイスからリンクローカルアドレスを削除し、コンテナのloおよびeth0インターフェイスでipv6を無効にしました。カールはまだ名前をIPv6として最初にチェックしようとします(curl -4を介して強制的に実行されない限り)。
これは間違っているようです。 ipv6が無効になっていても、カールが名前をipv6として解決しようとするのはなぜですか?
答え1
私IPv6 をグローバルに無効にすると機能しません。
それでも5秒の「初期化」遅延が発生します。引数
のみ-4
有効です。 (コマンドと同じwget
)
また、iptablesがIPV6トラフィックを拒否するように強制しました。
↪ 何も変わらなかった
ドメイン名システム
テストの結果、これらの遅延の原因は名前解決でした。
IPベースのURLをカリングするとすぐに実行されます。
奇妙なことに、名前解決自体はnslookup
即時です(IPV6応答は含まれていません)。
答え2
/etc/gai.conf
編集してコメントを削除してこの動作を変更できますprecedence ::ffff:0:0/96 100
。
しかし、これだけですcurl
。