こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

NIC毎のホスト名

素朴な疑問なのですが、NICが2枚の場合、それぞれにホスト名を設定できないのでしょうか?

Solarisではhostnameファイルで設定できるようなのですが、
Linuxについてはネット検索してみましたが、みつけられませんでした。

もちろん、別サーバからアクセスするときはhostsファイルで設定できますが、自分自身に設定できないのかなぁと思った次第です。

ちなみに、centos5と6です。

投稿日時 - 2014-12-14 22:20:44

QNo.8858549

暇なときに回答ください

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

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

投稿日時 - 2014-12-14 22:54:08

お礼

ありがとうございます。

私は当初「IPアドレスに結びついた名前」というイメージで質問させていただきました。
また、これを設定できれば、hostnameコマンドの結果は、アクセスしたIPアドレスに対応した名前になるのかなというイメージでした。

ですが、hostnameの結果は1つだけなんですね。

ちなみに、IPアドレス毎の名前はどのように設定するのでしょうか?

ヒントだけでも頂けると幸いです。

投稿日時 - 2014-12-15 07:30:49

ANo.1

このQ&Aは役に立ちましたか?

11人が「このQ&Aが役に立った」と投票しています

回答(4)

回答No.2です。

そもそも、何のために NIC 毎に別々の名前を付けたいので
しょうか?
ネットワーク上で IPアドレスを名前で引けるようにするのは
『DNS の仕事』ですので、NIC 自体に名前を付ける必要が
ありません。

DHCP や NETBIOS などのサービスを使う場合は、先にご紹介
したようなホスト名とは別の設定があります。

投稿日時 - 2014-12-16 00:46:49

お礼

返信が遅くなり申し訳ありません。

今回の質問の背景を簡単に。
下記のように、ホスト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つのみ」ということがわかりましたので、別の方法を検討したいと思います。

ありがとうございました。

投稿日時 - 2014-12-18 08:06:05

ANo.3

No1です。

>ちなみに、IPアドレス毎の名前はどのように設定するのでしょうか?

/etc/hosts に書けば、正引き(ホスト名→IPアドレス)も、逆引き(IPアドレス→ホスト名)も出来るはずです。

>hostnameコマンドの結果は、アクセスしたIPアドレスに対応した名前になるのかなというイメージでした。

sshでログインした場合だと、環境変数 $SSH_CONNECTION でアクセス先・元のアドレスがわかるので、それで逆引きすればわかるかと思います。

投稿日時 - 2014-12-15 08:08:49

お礼

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

投稿日時 - 2014-12-17 22:41:57

ホスト名とは読んで字の通りホストの名前ですから、NIC
が何枚刺さっていようが、1つのホストにホスト名はひとつ
です。

NIC毎に名前を付けたいとするのであれば、例えば『DHCP
に対して送るホスト名』のことでしょうか。
これは ifcfg-eth0 ファイルに DHCP_HOSTNAME で記述
します。

投稿日時 - 2014-12-14 22:54:25

お礼

ありがとうございます。

hostnameコマンドで取得できるホスト名は一つだけなのですね。
IPアドレス毎に設定できるイメージでした。

また、今回はDHCPではないので、
DHCP_HOSTNAMEではないかもしれません。
ですが、DHCPの場合はそのような設定ができるのですね。

投稿日時 - 2014-12-15 07:44:07

あなたにオススメの質問