• ベストアンサー

NIC毎のホスト名

素朴な疑問なのですが、NICが2枚の場合、それぞれにホスト名を設定できないのでしょうか? Solarisではhostnameファイルで設定できるようなのですが、 Linuxについてはネット検索してみましたが、みつけられませんでした。 もちろん、別サーバからアクセスするときはhostsファイルで設定できますが、自分自身に設定できないのかなぁと思った次第です。 ちなみに、centos5と6です。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

ホスト名は、コンピューターとしての名前という意味と、IPアドレスに結びついた名前の二面性があります。 後者の意味であれば、別々のIPアドレスに別々のホスト名を付けることは可能です。NICが1つでも複数のIPアドレスを設定すれば可能です。 前者の意味であれば1つしか設定できません。OS起動処理の中で、hostnameコマンドやsethostnameシステムコールで設定されます。

hakuyos
質問者

お礼

ありがとうございます。 私は当初「IPアドレスに結びついた名前」というイメージで質問させていただきました。 また、これを設定できれば、hostnameコマンドの結果は、アクセスしたIPアドレスに対応した名前になるのかなというイメージでした。 ですが、hostnameの結果は1つだけなんですね。 ちなみに、IPアドレス毎の名前はどのように設定するのでしょうか? ヒントだけでも頂けると幸いです。

その他の回答 (3)

noname#212058
noname#212058
回答No.4

回答No.2です。 そもそも、何のために NIC 毎に別々の名前を付けたいので しょうか? ネットワーク上で IPアドレスを名前で引けるようにするのは 『DNS の仕事』ですので、NIC 自体に名前を付ける必要が ありません。 DHCP や NETBIOS などのサービスを使う場合は、先にご紹介 したようなホスト名とは別の設定があります。

hakuyos
質問者

お礼

返信が遅くなり申し訳ありません。 今回の質問の背景を簡単に。 下記のように、ホストAとホストBがあり、それぞれにNICが2枚ずつあります。 <ホストA> ホスト名:HostA IPアドレス: xxx.xxx.xxx.100 ※IPax yyy.yyy.yyy.100 ※IPay <ホストB> ホスト名:HostB IPアドレス: xxx.xxx.xxx.200 ※IPbx yyy.yyy.yyy.200 ※IPby DNSには、各ホスト名にIPaxとIPbxを登録しています。 <DNS> xxx.xxx.xxx.100 HostA xxx.xxx.xxx.200 HostB ただ、ホストAとホストBの間は、IPayとIPbyで通信しています(hostsファイルにはお互いのIP用の名前を設定)。 <hosts(ホストA)> yyy.yyy.yyy.200 HostB-sub <hosts(ホストB)> yyy.yyy.yyy.100 HostA-sub ところが、この状況でホストAとホストBの通信を行うソフトにhostnameコマンドの結果を通知するものがあります。 そして、通知したhostname(HostAやHostB)が指すIPアドレスは IPaxやIPbxと認識してしまうので、実際に通信しているIPアドレスと異なるために、期待した動きをしなくなっていまいました。 もちろんhostsファイルを以下のように設定すると動くのですが、諸事情から【できれば】HostAやHostBが指すIPアドレスは変えたくなかったのです。 <hosts(ホストA)> yyy.yyy.yyy.200 HostB-sub HostB <hosts(ホストB)> yyy.yyy.yyy.100 HostA-sub HostA そこで「NIC毎にホスト名を設定できれば、アクセスされたIPアドレス毎にhostnameコマンドの結果が変わってくれて、この問題も解決できるんじゃないか」と考えて、この件を調べ始めました。 ただ、今回の質問で「ホスト名(hostnameコマンドの結果)は1つのみ」ということがわかりましたので、別の方法を検討したいと思います。 ありがとうございました。

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

No1です。 >ちなみに、IPアドレス毎の名前はどのように設定するのでしょうか? /etc/hosts に書けば、正引き(ホスト名→IPアドレス)も、逆引き(IPアドレス→ホスト名)も出来るはずです。 >hostnameコマンドの結果は、アクセスしたIPアドレスに対応した名前になるのかなというイメージでした。 sshでログインした場合だと、環境変数 $SSH_CONNECTION でアクセス先・元のアドレスがわかるので、それで逆引きすればわかるかと思います。

hakuyos
質問者

お礼

返信が遅くなり申し訳ありません。 ありがとうございました。

noname#212058
noname#212058
回答No.2

ホスト名とは読んで字の通りホストの名前ですから、NIC が何枚刺さっていようが、1つのホストにホスト名はひとつ です。 NIC毎に名前を付けたいとするのであれば、例えば『DHCP に対して送るホスト名』のことでしょうか。 これは ifcfg-eth0 ファイルに DHCP_HOSTNAME で記述 します。

hakuyos
質問者

お礼

ありがとうございます。 hostnameコマンドで取得できるホスト名は一つだけなのですね。 IPアドレス毎に設定できるイメージでした。 また、今回はDHCPではないので、 DHCP_HOSTNAMEではないかもしれません。 ですが、DHCPの場合はそのような設定ができるのですね。

関連するQ&A