サーバ名の解決
アドバンストサーバーアクセスには、カスタム名解決システムが実装されています。このシステムは、アドバンストサーバーアクセスに登録されているサーバーのユーザー指定の名前の解決に使用されます。
例えば、sft ssh web0を実行すると、web0という名前がアドバンストサーバーアクセスで解決されます。同様に、web0上のエージェント構成ファイルにBastion: bastion.example.comが指定されている場合、bastion.example.comを解決することでweb0へのトンネルが確立されます。
アドバンストサーバーアクセスが登録済みのサーバーの名前を解決できない場合は、アドバンストサーバーアクセスはローカルにサポートされる名前解決と認証方式にフォールバックしてサーバーにアクセスします。例えば、sft ssh web0.example.comを実行したときにアドバンストサーバーアクセスがアドバンストサーバーアクセスに登録されているサーバーのweb0.example.comという名前を解決できない場合は、クライアントは、ssh web0.example.comがアドバンストサーバーアクセスなしで実行されたかのように動作します。
アクティブなサーバー
アドバンストサーバーアクセスはアクティブなサーバーに対してのみ名前を照合します。次のすべての条件が真の場合、サーバーはアクティブであると見なされます。
- サーバーはアドバンストサーバーアクセスに登録されている
- サーバーはそれ以後アドバンストサーバーアクセスから削除されていない
- 最近サーバー上でアドバンストサーバーアクセス のエージェントが実行され、アドバンストサーバーアクセスのプラットフォームに接続できました。現在のしきい値は96時間(4日)ですが、変更される可能性があります。
特殊な場合として、管理対象外のサーバーがアドバンストサーバーアクセスで作成された場合、これは削除されるまでアクティブと見なされます。
マッチング
名前の解決では、アドバンストサーバーアクセスは次のいずれかの値に一致するサーバーを検出します。
サーバーID
サーバーのID。登録時にアドバンストサーバーアクセスのプラットフォームによって自動的に割り当てられるランダムUUID。
ホスト名
サーバーのホスト名。サーバーのオペレーティングシステムが報告する名前。OSホスト名が「.local」で終わる場合、プラットフォームはこれを無視します。例えば、OSホスト名がweb0.localの場合、サーバーにはweb0としてならアクセスできますが、web0.localとしてはアクセスできません。
アドバンストサーバーアクセス のエージェントの構成にCanonicalNameの値が指定されている場合、OSホスト名の代わりにこの値が使用されます。
AltNames
サーバーのアドバンストサーバーアクセス エージェント構成ファイルに指定されたAltNamesの値。AltNamesを使用することで、サーバーにエイリアスを追加できます。
デフォルトIPアドレス
アドバンストサーバーアクセスによって決定されるサーバーのデフォルトIPアドレス。
インスタンスID
サーバーがAWSまたはGCEクラウドインスタンスの場合、これはプロバイダーが割り当てたインスタンスID です。
あいまいな名前
アドバンストサーバーアクセスのクライアントに提供される名前が複数のサーバーとして解決される場合、誤って意図しないサーバーに接続するのを回避するために、クライアントはエラーを返します。
これには副次的な影響があります。サーバーが同一ホスト名の新しいサーバーに置き換えられた場合、またはエージェントが再登録を強制された場合に、管理者権限を持つユーザーは、新しいサーバーを共通の名前で指定できるように、元のサーバーレコードを手動で削除する必要があります。または、サーバーID等の明確な名前を指定するか、元のサーバーレコードが非アクティブになるまで待機することもできます。
アドバンストサーバーアクセス のエージェント構成で指定されたBastion名があいまいな場合、アドバンストサーバーアクセスのプラットフォームは、一致を優先度の高い順にランク付けすることで最適な選択を試みます。
- IDまたはCanonicalName
- クラウドインスタンスID
- ホスト名
- AltNames
- デフォルトIPアドレス
接続は任意に切断されます。
IPアドレス
サーバーの解決後、アドバンストサーバーアクセスはサーバーの指定に使用されるIPアドレスの決定を試みます。
アドバンストサーバーアクセスのクライアントがサーバーに直接アクセスする場合、以下に説明するように、クライアントはサーバーのデフォルトIPアドレスの使用を試みます。
サーバーが1つまたは複数のBastion (踏み台)を介してアクセスされ、直前のBastion (踏み台)がサーバーと同じAWS VPCまたはGCEネットワークに存在する場合、アドバンストサーバーアクセスは、サーバーの対応プライベートIPアドレスを優先します。それ以外の場合、アドバンストサーバーアクセスはデフォルトIPアドレスを使用します。
デフォルトIPアドレス
アドバンストサーバーアクセスに登録されている各サーバーには、以下の値の中で利用できる最初の値であるデフォルトIPアドレスが割り当てられます。
- アドバンストサーバーアクセス のエージェント構成ファイルに指定されているAccessAddressの値。
- インスタンスのメタデータに基づくAWSインスタンスのpublic_ip_v4アドレス。
- インスタンスのメタデータに基づくGCEまたはAzureインスタンスの外部または内部IPアドレス。
- パブリックアドレスの範囲内で数値的に最小のIPv4アドレス。
- プライベートアドレスの範囲内で数値的に最小のIPv4アドレス。