ifconfigがなくなるわけではありませんが、新しいipadmコマンドになれるため今はifconfigを使わないようにしています。ipadmはサブコマンドを紹介するすっきりしたインターフェースで使い方を紹介しています。
bleonard@solaris:~$ ipadmifconfigと比較してみましょう…
usage: ipadm <subcommand> <args> ...
create-if [-t] <interface>
disable-if -t <interface>
enable-if -t <interface>
delete-if <interface>
show-if [[-p] -o <field>,...] [<interface>]
set-ifprop [-t] -p <prop>=<value[,...]> -m <protocol> <interface>
reset-ifprop [-t] -p <prop> -m <protocol> <interface>
show-ifprop [[-c] -o <field>,...] [-p <prop>,...]
[-m <protocol>] [interface]
create-addr [-t] {-T static <static_args> | -T dhcp <dhcp_args> |
-T addrconf <addrconf_args>} <addrobj>
static_args = <[-d] -a {local|remote}=addr[/prefixlen]>
dhcp_args = <[-w <seconds> | forever]>
addrconf_args = <[-i interface-id]
[-p {stateful|stateless}={yes|no}]>
down-addr [-t] <addrobj>
up-addr [-t] <addrobj>
disable-addr -t <addrobj>
enable-addr -t <addrobj>
refresh-addr [-i] <addrobj>
delete-addr [-r] <addrobj>
show-addr [[-p] -o <field>,...] [<addrobj>]
set-addrprop [-t] -p <prop>=<value[,...]> <addrobj>
reset-addrprop [-t] -p <prop> <addrobj>
show-addrprop [[-c] -o <field>,...] [-p <prop>,...] <addrobj>
set-prop [-t] -p <prop>[+|-]=<value[,...]> <protocol>
reset-prop [-t] -p <prop> <protocol>
show-prop [[-c] -o <field>,...] [-p <prop>,...] [protocol]
bleonard@solaris:~$ ifconfig最初にはまったのはaddrobjでした。addrobjは、ネットワークインターフェース上に構成されたアドレスに対してユーザが付与する名前で、後でアドレスを参照する際に利用できるというものです。2個のパートから構成されていて、アドレス構成済みのネットワークインターフェースと、好みの文字列をスラッシュで分けています。アドレスを表現する文字列を使うことが一般的です(v4dhcp、v6static、など)。
usage: ifconfig <interface> | -a[ 4 | 6 | D ][ u | d ][ Z ]
[ <addr_family> ]
[ <address>[/<prefix_length>] [ <dest_address> ] ]
[ set [ <address>][/<prefix_length>] ] [ <address>/<prefix_length>] ]
[ destination <dest_address> ]
[ addif <address>[/<prefix_length>] [ <dest_address> ] ]
[ removeif <address>[/<prefix_length>] ]
[ arp | -arp ]
[ auto-revarp ]
[ broadcast <broad_addr> ]
[ index <if_index> ]
[ metric <n> ] [ mtu <n> ]
[ netmask <mask> ]
[ plumb ] [ unplumb ]
[ preferred | -preferred ]
[ private | -private ]
[ local | -local ]
[ router | -router ]
[ subnet <subnet_address>]
[ trailers | -trailers ]
[ token <address>/<prefix_length> ]
[ tsrc <tunnel_src_address> ]
[ tdst <tunnel_dest_address> ]
[ auth_algs <tunnel_AH_authentication_algorithm> ]
[ encr_algs <tunnel_ESP_encryption_algorithm> ]
[ encr_auth_algs <tunnel_ESP_authentication_algorithm> ]
[ up ] [ down ]
[ xmit | -xmit ]
[ modlist ]
[ modinsert <module_name@position> ]
[ modremove <module_name@position> ]
[ ipmp ]
[ group <groupname>] | [ group ""]
[ deprecated | -deprecated ]
[ standby | -standby ]
[ failover | -failover ]
[ zone <zonename> | -zone ]
[ usesrc <interface> ]
[ all-zones ]
or
ifconfig <interface> | -a[ 4 | 6 | D ] [ u | d ]
auto-dhcp | dhcp
[ wait <time> | forever ]
[ primary ]
start | drop | ping | release | status | inform
addrobj = <network interface>/<any string>例えば、
addrobj = e1000g0/v4staticこのaddrobjはアドレスの参照に使います。addrobjを用いるipadmのサブコマンドの名前にはすべてaddrという文字が入っています。同様に、インターフェースを用いるipadmのサブコマンドの名前にはすべてifという文字が入っています。
一般に、ifconfigでやることと言えば、インターフェースへアドレスを構成することと、それらのアドレスを表示することです。ifconfigでやっていることをipadmでやってみたいと思います。注意頂きたいのは、ネットワークインターフェースを構成するためにipadmを使おうと考えている場合には、network/nwamとenablenetwork/physical:default:を以下のように無効にしてください。
bleonard@solaris:~$ svcs nwam physical:defaultインターフェースの構成
STATE STIME FMRI
disabled 11:32:38 svc:/network/physical:nwam
online 11:32:55 svc:/network/physical:default
ifconfigの場合
インターフェースを立ち上げるためには少なくとも2度コマンドを発行する必要があります。しかも再起動するとその設定は失われてしまいます。
bleonard@solaris:~$ sudo ifconfig e1000g0 plumbipadmの場合
bleonard@solaris:~$ sudo ifconfig e1000g0 10.0.2.15/24 up
コマンド1回ですみます。しかも設定が永続化されます。
bleonard@solaris:~$ sudo ipadm create-addr -T static -a 10.0.2.15/24 e1000g0/v4staticipadmはifconfigよりも長い設定ですが、これはアドレスに名前を割り当てているからです。
インターフェースの表示
ifconfigの場合
IPアドレスを確認するときは…
bleonard@solaris:~$ ifconfig -aちょっとごちゃごちゃしていますが、慣れてしまいました。
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
e1000g0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 4
inet 10.0.2.15 netmask ffffff00 broadcast 10.0.2.255
lo0: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1
inet6 ::1/128
e1000g0: flags=20002000840<RUNNING,MULTICAST,IPv6> mtu 1500 index 4
inet6 ::/0
ipadmの場合
こんな感じです。
bleonard@solaris:~$ ipadm show-addr<interface>/?の形でaddrobjを表示させる場合、libipadm APIを使用していないアプリケーションにより、インターフェース上にアドレスを構成していることに注意が必要です。
ADDROBJ TYPE STATE ADDR
lo0/v4 static ok 127.0.0.1/8
e1000g0/v4static static ok 10.0.2.15/24
lo0/v6 static ok ::1/128
こちらにifconfigとipadmのコマンドオプションの比較表があります。
Comparison Tables: ipadm Command and Other Networking Commands
http://download.oracle.com/docs/cd/E19963-01/html/821-1458/gkjdw.html#gjtrh#scrolltoc
ipadmは設定を/etc/ipadm/ipadm.confに永続化しています。
bleonard@solaris:~$ cat /etc/ipadm/ipadm.confその他、参考資料はこちらにあります。
#
# CDDL License...
#
# DO NOT EDIT OR PARSE THIS FILE!
#
# Use the ipadm(1m) command to change the contents of this file.
_ifname=e1000g0;_family=2;
_ifname=e1000g0;_family=26;
_ifname=e1000g0;_aobjname=e1000g0/v4static;_ipv4addr=10.0.2.15,;up=yes;
_ifname=e1000g0;_aobjname=e1000g0/v4static;prefixlen=24;
- Oracle Solaris Administration: Network Interfaces and Network Virtualization
Administering Single Interfaces
http://download.oracle.com/docs/cd/E19963-01/html/821-1458/gdyqk.html#scrolltoc - Brussels II - ipadm and libipadm Design Specification
http://arc.opensolaris.org/caselog/PSARC/2010/080/materials/brussels2_design.pdf - ipadm(1M) - the new ifconfig(1M)
http://blogs.oracle.com/GmG/entry/ipadm_1m_the_new_ifconfig
原文はこちら。
http://blogs.oracle.com/observatory/entry/ipadm
0 件のコメント:
コメントを投稿