Telnet ログインプロンプトは、固定 IP でのみ非常に遅いです。おそらくrDNSの問題ですか?

Telnet ログインプロンプトは、固定 IP でのみ非常に遅いです。おそらくrDNSの問題ですか?

私はCentOSシステムをDHCPから静的ルーティングに切り替えましたが、Telnetを使用して接続するのにほぼ瞬間から初期ログインプロンプトが表示されるまで約30秒かかります。

確かに、これは、ホストファイルに依存するボックスに誰が接続されているかを確認するためにリバースDNSルックアップを実行するサーバーに関連しています。

このプロセスをスピードアップするには、/ etc / hostsに何かを追加する必要がありますか?現在、私のファイルは非常に制限されており、これはほとんど新しくインストールされています。

[root@Azaz07]# cat /etc/hosts
127.0.0.1       localhost.localdomain localhost
::1     localhost6.localdomain6 localhost6

Telnet0 ローカルはすぐに応答を完了します。

答え1

私のTelnetホアンジャンダム

通常は使用しないで、telnet代わりに使用することをお勧めしますssh。 Telnetはセキュリティの責任を負い、今日は誰もそれを使用しないでください。 Wiresharkを使用してネットワークを通過している間に誰かが簡単にTelnetパケットをスニッフィングして資格情報にアクセスできる方法については、この記事を参照してください。この記事のタイトルは次のとおりです。Wiresharkを使用したTelnetスニッフィング。以下は、Telnetを使用したログイン試行のスクリーンショットです。

SS WiresharkはTelnetを検出します。

問題を解決する

ただし、必ず使用する必要がある場合は、ツールで使用するコマンドをtelnet診断することから始めます。telnetstrace

はい

最終的に発生する問題を示すために、/etc/resolv.conf偽のDNSサーバーが含まれるようにファイルを修正しました。これによりOPが遅くなります。

# /etc/resolv.conf
# Generated by NetworkManager
domain mydom.net.
search mydom.net.
nameserver 1.2.3.4
nameserver 192.168.1.101

次に、telnet次のように実行します。

$ strace -T telnet skinner

出力のこの部分は、時間がかかる理由を示しています。

...
socket(PF_INET, SOCK_DGRAM|SOCK_NONBLOCK, IPPROTO_IP) = 3 <0.000021>
connect(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("1.2.3.4")}, 16) = 0 <0.000023>
poll([{fd=3, events=POLLOUT}], 1, 0)    = 1 ([{fd=3, revents=POLLOUT}]) <0.000012>
sendto(3, "\275N\1\0\0\1\0\0\0\0\0\0\7grinchy\5bubba\3net\0\0"..., 35, MSG_NOSIGNAL, NULL, 0) = 35 <0.000073>
poll([{fd=3, events=POLLIN|POLLOUT}], 1, 5000) = 1 ([{fd=3, revents=POLLOUT}]) <0.000012>
sendto(3, "\373\262\1\0\0\1\0\0\0\0\0\0\7grinchy\5bubba\3net\0\0"..., 35, MSG_NOSIGNAL, NULL, 0) = 35 <0.000027>
poll([{fd=3, events=POLLIN}], 1, 4999)  = 0 (Timeout) <5.004038>
...

上記で「タイムアウト」が発生するのは、pollポート53のサーバー1.2.3.4に対するDNSクエリです。スイッチを使用すると、-Tこの関数呼び出しがタイムアウトするのに約5秒かかります。

time次のコマンドを使用して時間の長さを確認することもできます。

$ time telnet skinner
Trying 192.168.1.3...
telnet: connect to address 192.168.1.3: Connection refused

real    0m10.030s
user    0m0.001s
sys 0m0.003s

正しいDNSサーバーを使用してください。

/etc/resolv.confこれで、正しいDNSサーバーを展開するとtelnetパフォーマンスが向上します。

$ strace -T telnet skinner
...
connect(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.1.101")}, 16) = 0 <0.000018>
poll([{fd=3, events=POLLOUT}], 1, 0)    = 1 ([{fd=3, revents=POLLOUT}]) <0.000010>
sendto(3, "D\363\1\0\0\1\0\0\0\0\0\0\7grinchy\5mydom\3net\0\0"..., 35, MSG_NOSIGNAL, NULL, 0) = 35 <0.000054>
poll([{fd=3, events=POLLIN|POLLOUT}], 1, 5000) = 1 ([{fd=3, revents=POLLOUT}]) <0.000009>
sendto(3, "s\342\1\0\0\1\0\0\0\0\0\0\7grinchy\5mydom\3net\0\0"..., 35, MSG_NOSIGNAL, NULL, 0) = 35 <0.000021>
poll([{fd=3, events=POLLIN}], 1, 4999)  = 1 ([{fd=3, revents=POLLIN}]) <0.005300>
ioctl(3, FIONREAD, [84])                = 0 <0.000024>
recvfrom(3, "D\363\205\200\0\1\0\1\0\1\0\1\7grinchy\5mydom\3net\0\0"..., 2048, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.1.101")}, [16]) = 84 <0.000016>
poll([{fd=3, events=POLLIN}], 1, 4994)  = 1 ([{fd=3, revents=POLLIN}]) <0.003688>
...

timingを使用してtimeも同じ結果が表示されます。

$ time telnet skinner
Trying 192.168.1.3...
telnet: connect to address 192.168.1.3: Connection refused

real    0m0.009s
user    0m0.000s
sys 0m0.002s

答え2

私は4.2.2.1と4.2.2.2を静的に割り当てられたDNSサーバーとして使用していました。ルータで192.168.0.1に切り替えたところ、問題が解決しました。

関連情報