質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
DNS

DNSとは、Domain Name Systemのことで、インターネットなどのTCP/IPネットワーク上でドメイン名やホスト名と、IPアドレスとの対応づけを管理するシステムです。DNSのデータベースは、IPアドレスの4つの数字を通知するDNSサーバーで構築されており、IPアドレスをドメイン名から引き出す機能やドメイン名に関するメールサーバ情報を取り扱っています。

.NET

.NETとは、主に.NET Frameworkと呼ばれるアプリケーションまたは開発環境を指します。CLR(共通言語ランタイム)を搭載し、入力された言語をCIL(共通中間言語)に変換・実行することが可能です。そのため、C#やPythonなど複数の言語を用いることができます。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Q&A

解決済

1回答

1049閲覧

ホスト名を利用してネットワークアクセスするライブラリを利用した場合、リトライ時にどのようにIPアドレスが選択されるのでしょうか?

nk58

総合スコア1

DNS

DNSとは、Domain Name Systemのことで、インターネットなどのTCP/IPネットワーク上でドメイン名やホスト名と、IPアドレスとの対応づけを管理するシステムです。DNSのデータベースは、IPアドレスの4つの数字を通知するDNSサーバーで構築されており、IPアドレスをドメイン名から引き出す機能やドメイン名に関するメールサーバ情報を取り扱っています。

.NET

.NETとは、主に.NET Frameworkと呼ばれるアプリケーションまたは開発環境を指します。CLR(共通言語ランタイム)を搭載し、入力された言語をCIL(共通中間言語)に変換・実行することが可能です。そのため、C#やPythonなど複数の言語を用いることができます。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

0グッド

0クリップ

投稿2021/08/27 10:35

前提

.NETのssh.netを使って実装する際に、接続先をホスト名で指定(例えばwww1.example.com)したとします。

このクライアントの問い合わせ先のDNSサーバから以下の2つのIPの回答があったとします。

  • 1.2.3.4
  • 1.2.3.5

ここで、1.2.3.4というIPアドレスがなんらかの障害等により通信ができなかったとします。

わからないこと

以下疑問点です。

  • 1.2.3.5で通信したいとして、リトライ処理は自前で実装する必要があるでしょうか?
  • (自前で実装するとして)リトライ処理をする場合に、単純に同じ処理を繰り返せば1.2.3.5を使ってくれるのでしょうか?
  • もしくはDNSサーバ側の設定に依存するものでしょうか?
  • DNSサーバ側の設定に依存するとして、DNSサーバがマルチバリューで回答する場合などはうまくいくのでしょうか?

※ssh.netでの質問ですが、言語やプロトコルを問わずホスト名を使ってネットワーク通信をするようなライブラリの一般的な実装手法やセオリーがあればご教示いただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

言語やプロトコルを問わずホスト名を使ってネットワーク通信をするようなライブラリの一般的な実装手法やセオリーがあればご教示いただきたいです。

Linuxでは、Aレコードが複数設定された状況でgetaddrinfo経由で名前解決をすると、複数の結果を返しますman)。

手抜きで先頭の結果だけ使うか、全部見た上で必要な処理を行うかは、呼び出すプログラマ次第です。

投稿2021/08/27 11:10

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nk58

2021/08/28 00:50

ご回答ありがとうございます。 なるほど、基本的には自分でロジックを組む必要があるということですね。 http、ftp、sshクライアントなどのなんらかの3rdライブラリの名前解決部分の実装例をご存知の方がいらっしゃいましたらご教示頂けますと幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問