Landscape トップページ | < 前の日 2006-05-20 2006-05-22 次の日 2006-05-24 >

Landscape - エンジニアのメモ 2006-05-22

Solaris で一枚の NIC に複数の IP アドレスを設定する


* Solaris で一枚の NIC に複数の IP アドレスを設定する

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [ネットワーク]

Solaris で一枚の NIC に複数の IP アドレスを設定する方法のメモ。論理的インターフェイスとか、仮想インターフェイスと呼んだりするもの。

- 対象マシンと OS

対象はいつもの Solaris 2.6 マシン。2006-05-11 の「Squid と Squirm でリダイレクタ付き SSL リバースプロキシ」で、SSL 用に IP アドレスを追加する必要が出たので設定。

$ uname -a
SunOS lodis 5.6 Generic_105181-32 sun4u sparc SUNW,Ultra-1

ネットワークインターフェイス (NIC) の情報は以下の通り。でも、これだけだと何もわからないなあ。

$ dmesg

(略)

SUNW,hme0: FEPS (Rev Id = 22) Found
SUNW,hme0 at sbus0: SBus0 slot 0xe offset 0x8c00000 and slot 0xe offset 0x8c02000 and slot 0xe offset 0x8c04000 and slot 0xe offset 0x8c06000 and slot 0xe offset 0x8c07000 Onboard device sparc9 ipl 6
SUNW,hme0 is /sbus@1f,0/SUNW,hme@e,8c00000
SUNW,hme0: Using Internal Transceiver
SUNW,hme0: 100 Mbps full-duplex Link Up

作業前に ifconfig して現在の状況を確認。

$ /sbin/ifconfig -a
lo0: flags=849<UP,LOOPBACK,RUNNING,MULTICAST> mtu 8232
        inet 127.0.0.1 netmask ff000000
hme0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST> mtu 1500
        inet 10.64.128.202 netmask ffffff00 broadcast 10.64.128.255

- 論理インターフェイスの追加

まず、ホスト名定義ファイルを /etc に追加。ファイル名の書式は hostname.IF:N で、IF にインターフェイス名、N に 1 から始まる番号を入れる。私の環境だったら以下のようにした。

# echo ivalice >/etc/hostname.hme0:1

その後、ifconfig インターフェイスの作成と有効化。ブロードキャストアドレスはサブネットマスクから計算してくれるようなので明示的には指定していない。

# ifconfig hme0:1 10.64.128.204 netmask 255.255.255.0 up

ifconifg して確認。できてるできてる。

# ifconfig -a
lo0: flags=849<UP,LOOPBACK,RUNNING,MULTICAST> mtu 8232
        inet 127.0.0.1 netmask ff000000
hme0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST> mtu 1500
        inet 10.64.128.202 netmask ffffff00 broadcast 10.64.128.255
        ether 8:0:20:86:c3:47
hme0:1: flags=843<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet 10.64.128.204 netmask ffffff00 broadcast 10.64.128.255

再起動後もこのインターフェイスが必要なので、起動スクリプトに追加しておきたい。でも、Solaris ではどこが適切なんだろう? ランレベル3のときに起動する Squid のためだけのインターフェイスなので、/etc/init.d に追加して /etc/rc3.d にシンボリックリンクを作ってもいいのだが、どちらかというとシステム系の設定だから、別のところがいいんだろうなあ。調査中。

- 論理インターフェイスの無効化

インターフェイスを無効化するには down を付けて ifconfig する。

# ifconfig hme0:1 0 down

確認すると、インターフェイスが無くなっている。これでよしと。

# ifconfig -a
lo0: flags=849<UP,LOOPBACK,RUNNING,MULTICAST> mtu 8232
        inet 127.0.0.1 netmask ff000000
hme0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST> mtu 1500
        inet 10.64.128.202 netmask ffffff00 broadcast 10.64.128.255
        ether 64:64:64:64:64:64

- man ifconfig

参考にした ifconfig の man page。

LOGICAL INTERFACES
    Solaris TCP/IP allows  multiple  logical  interfaces  to  be
    associated with a physical network interface.  This allows a
    single machine to be assigned multiple  IP  addresses,  even
    though  it  may  have  only one network interface.  Physical
    network  interfaces  have  names  of  the  form  driver-name
    physical-unit-number, while logical interfaces have names of
    the  form  driver-name  physical-unit-number:logical-unit-
    number.  A physical interface is configured into the system
    using the plumb sub-command.  For example:

          ifconfig le0 plumb

    Logical interfaces do not need to be "plumbed".  Once a phy-
    sical interface has been "plumbed", logical interfaces asso-
    ciated with the physical interface can be configured by nam-
    ing  them  in  subsequent  ifconfig commands.  However, only
    root can create or delete a logical interface.  For example,
    when executed by root the command:

          ifconfig le0:1

    allocates a logical interface associated with  the  physical
    interface  le0  and  reports its status.  When executed by a
    non-privileged user, ifconfig will report the status of  the
    interface  if it already exists, or give an error message if
    it does not exist.

    A  logical  interface  can  be  configured  with  parameters
    (address,  netmask,  and  so on) different from the physical
    interface with which it is associated.  Logical  interfaces
    that  are associated with the same physical interface can be
    given different parameters as well.  Each logical  interface
    must be associated with a physical interface.  So, for exam-
    ple, the logical interface  le0:1  can  only  be  configured
    after the physical interface le0 has been plumbed.

    To delete a logical interface,  simply  name  the  interface
    specifying  an  address of 0, after ensuring that the inter-
    face has been marked as "down".  For example, the command:

          ifconfig le0:1 0 down

    will delete the logical interface le0:1.

- 失敗

調査の過程で /etc/hostname.IF:N ファイルを作らず、かつサブネットマスクを指定せず、そのうえ N に2を指定してテキトーに ifconfig してみた。

# ifconfig hostname.hme0:2 10.64.128.204 up

すると、ターミナルが反応しなくなった。ネットワークが全部切断されてるようだ。このテストマシンはキーボードもディスプレイも接続していないので、対処する方法がない。仕方ないので電源をプチって切りました。ごめんなさいごめんなさい。

すべての記事の見出し (全1029件)
全カテゴリの一覧と記事の数
カテゴリごとに記事をまとめ読みできます。記事の表題だけを見たい場合は、すべての記事の見出し (カテゴリ別表示) へ。

直近30日分の記事
2007-04-23 (Mon)
2007-03-07 (Wed)
2007-02-27 (Tue)
2007-01-17 (Wed)
2007-01-15 (Mon)
2007-01-14 (Sun)
2007-01-08 (Mon)
2006-12-01 (Fri)
2006-11-22 (Wed)
2006-11-20 (Mon)
2006-11-19 (Sun)
2006-09-30 (Sat)
2006-08-29 (Tue)
2006-08-04 (Fri)
2006-07-27 (Thu)
2006-07-23 (Sun)
2006-07-17 (Mon)
2006-07-10 (Mon)
2006-07-06 (Thu)
2006-07-03 (Mon)
2006-06-29 (Thu)
2006-06-28 (Wed)
2006-06-27 (Tue)
2006-06-25 (Sun)
2006-06-19 (Mon)
2006-06-18 (Sun)
2006-06-15 (Thu)
2006-06-11 (Sun)
2006-06-01 (Thu)
2006-05-30 (Tue)
プロファイル
斎藤 宏明。エンジニアです。宇都宮市に住んでいます。
リンク
RSS
スポンサードリンク
Powered by
さくらインターネット

© 斎藤 宏明 Saito Hiroaki Gmail Address
Landscape - エンジニアのメモ http://sonic64.com/
Landscape はランドスケープと読みます。
ひらがなだと らんどすけーぷ です。