Solaris Network


Solaris Network関連のメモ帳


 基本

dladm,ipadmで設定する。

固定IP設定の流れ

・svcadmでNWAMを無効化して、手動設定に変更
・ipadmでインターフェイスを登録
・ipadmで固定アドレスを登録

 Solaris11系での固定IPの設定

Ethernetの設定(OpenIndiana)

認識されてる物理インターフェイスを確認

root@openindiana-test:~# dladm show-phys
LINK         MEDIA                STATE      SPEED  DUPLEX    DEVICE
e1000g0      Ethernet             unknown    1000   full      e1000g0
e1000g1      Ethernet             up         1000   full      e1000g1
root@openindiana-test:~# ipadm show-if
IFNAME     STATE    CURRENT      PERSISTENT
lo0        ok       -m-v------46 ---
e1000g0    down     bm--------46 -46
e1000g1    ok       bm--------46 -46
root@openindiana-test:~# ipadm create-if e1000g0
root@openindiana-test:~# ipadm show-if
IFNAME     STATE    CURRENT      PERSISTENT
lo0        ok       -m-v------46 ---
e1000g0    down     bm--------46 -46
e1000g1    ok       bm--------46 -46
root@openindiana-test:~# ipadm create-addr -T static -a 192.168.11.43/24 e1000g0/v4addr

Ethernetの設定(Solaris11)

コマンドが微妙に変わってる。

  • インターフェイス作成
# ipadm create-ip net0
  • アドレス設定
# ipadm create-addr -T static -a 192.168.0.1/24 net0/v4addr

Ethernet(LAG)の設定(OpenIndiana)

LAG組んでる状態でのサンプル。

root@openindiana:~# dladm show-phys
LINK         MEDIA                STATE      SPEED  DUPLEX    DEVICE
ibp0         Infiniband           up         16000  unknown   ibp0
e1000g0      Ethernet             up         1000   full      e1000g0
e1000g1      Ethernet             up         1000   full      e1000g1
e1000g3      Ethernet             up         1000   full      e1000g3
e1000g2      Ethernet             up         1000   full      e1000g2
cxge0        Ethernet             down       0      unknown   cxge0
root@openindiana:~# ipadm create-if aggr0
IFNAME     STATE    CURRENT      PERSISTENT
lo0        ok       -m-v------46 ---
pFFFF.ibp0 ok       bm--------46 -46
aggr0      ok       bm--------46 -46 
aggr4010000 ok      bm--------46 -46
root@openindiana:~# ipadm create-addr -T static -a 192.168.1.1/24 aggr0/v4addr

ここまでがipv4用設定。
ipv6用に以下を設定する。(自動設定)

root@openindiana:~# ipadm create-addr -T addrconf aggr0/v6addrauto

で、上記の結果を確認

root@openindiana:~# ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
pFFFF.ibp0/v4internal static ok         192.168.3.1/24
aggr0/v4addr      static   ok           192.168.1.1/24
aggr4010000/v4addr static  ok           192.168.2.1/24
lo0/v6            static   ok           ::1/128
aggr0/v6addrauto  addrconf ok           fe80::225:90ff:fe30:4096/10

Solaris 11 ExpressでのIPoIBの設定(OpenIndiana 151aもほぼ一緒)

ibp2でipoibを設定するにはコマンドは以下のように

root@solaris:~# dladm show-phys
LINK         MEDIA                STATE      SPEED  DUPLEX    DEVICE
e1000g0      Ethernet             up         1000   full      e1000g0
ibp2         Infiniband           up         8000   unknown   ibp2
root@solaris:~# dladm show-ib
LINK         HCAGUID         PORTGUID        PORT STATE  PKEYS
ibp2         2C903000xxxxx   2C903000xxxxx   1    up     FFFF
root@solaris:~# dladm create-part -l ibp2 -P 0xFFFF pFFFF.ibp2
root@solaris:~# ipadm show-if
IFNAME     STATE    CURRENT      PERSISTENT
lo0        ok       -m-v------46 ---
e1000g0    ok       bm--------46 -46
pFFFF.ibp0 disabled ------------ -46
root@solaris:~# ipadm create-if pFFFF.ibp2
root@solaris:~# ipadm show-if
IFNAME     STATE    CURRENT      PERSISTENT
lo0        ok       -m-v------46 ---
e1000g0    ok       bm--------46 -46
pFFFF.ibp2 down     bm--------46 -46
pFFFF.ibp0 disabled ------------ -46
root@solaris:~# ipadm create-addr -T static -a 192.168.17.7/24 pFFFF.ibp2/v4internal
root@solaris:~# ipadm show-if
IFNAME     STATE    CURRENT      PERSISTENT
lo0        ok       -m-v------46 ---
e1000g0    ok       bm--------46 -46
pFFFF.ibp2 ok       bm--------46 -46
pFFFF.ibp0 disabled ------------ -46
root@solaris:~# ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
e1000g0/v4internal static  ok           192.168.11.6/24
pFFFF.ibp2/v4internal static ok         192.168.17.7/24
lo0/v6            static   ok           ::1/128
pFFFF.ibp0/v4wire static   disabled     192.168.17.6/24

 OpenSolaris以降でのLinkAggregationの設定

LinkAggregationを作成する前に、JumboFrame等の設定は終わらせておくこと。

集約作成

# dladm create-aggr -f -l e1000g0 -l e1000g1 -l e1000g2 -l e1000g3 aggr0

上記例だと、e1000g0 〜 e1000g3までをLinkAggregation設定してる。

集約編集

root@openindiana:~# dladm modify-aggr -P L2 aggr0
root@openindiana:~# dladm modify-aggr -L active -T short  aggr0
root@openindiana:~# dladm show-aggr
LINK            POLICY   ADDRPOLICY           LACPACTIVITY  LACPTIMER   FLAGS
aggr0           L2       auto                 active        short       f----

って感じに。

 Link名の変更(Solaris 11では初期設定されているものは標準で変更されている)

物理インターフェイス名を変更

  • cxge0を表示名をiscsi0へ変更する。
root@openindiana:~/# dladm rename-link cxge0 iscsi0

変更されているか確認

 root@openindiana:~/# dladm show-phys
 LINK         MEDIA                STATE      SPEED  DUPLEX    DEVICE
 ibp0         Infiniband           up         16000  unknown   ibp0
 net0         Ethernet             up         1000   full      e1000g0
 net1         Ethernet             up         1000   full      e1000g1
 net3         Ethernet             up         1000   full      e1000g3
 net2         Ethernet             up         1000   full      e1000g2
 iscsi0       Ethernet             down       0      unknown   cxge0

aggrの物の表示名変更

  • aggr0の表示名をdefaultnet0へ変更する。
root@openindiana:~/# dladm rename-link aggr0 defaultnet0

変更されてるか確認

root@openindiana:~# dladm show-link default0
LINK        CLASS     MTU    STATE    BRIDGE     OVER
default0    aggr      9000   up       --         net0 net1 net2 net3

固定IP割り当て

root@openindiana:~# ipadm create-if default0
root@openindiana:~# ipadm create-addr -T static -a 192.168.1.1/24 default0/v4addr

ipv6の自動アドレス割り当て

root@openindiana:~# ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
ipoib0/v4addr     static   ok           192.168.3.1/24
iscsi1/v4addr     static   ok           192.168.2.1/24
default0/v4addr   static   ok           192.168.1.1/24
lo0/v6            static   ok           ::1/128
default0/v6addrauto addrconf ok         fe80::225:90ff:fe30:4096/10

 OpenSolaris以降でのVLANの設定

VLAN作成の方法

root@openindiana:~# dladm create-vlan -l aggr0 -v 4010
root@openindiana:~# dladm show-vlan
LINK            VID      OVER         FLAGS
aggr4010000     4010     aggr0        -----

VLAN ID 4010で aggr0にVLANを作成。
作ったVLANへ固定IPを付与

root@openindiana:~# ipadm create-if aggr4010000
root@openindiana:~# ipadm show-if
IFNAME     STATE    CURRENT      PERSISTENT
lo0        ok       -m-v------46 ---
pFFFF.ibp0 ok       bm--------46 -46
aggr0      ok       bm--------46 ---
aggr4010000 down    bm--------46 -46
root@openindiana:~# ipadm create-addr -T static -a 192.168.15.1/24 aggr4010000/v4addr
root@openindiana:~# ipadm show-addr aggr4010000/v4addr
ADDROBJ           TYPE     STATE        ADDR
aggr4010000/v4addr static  ok           192.168.15.1/24

VLAN表示名変更

  • VLAN aggr4010000の表示名をiscsi1へ変更する。
 root@openindiana:~/# dladm rename-link aggr4010000 iscsi1

VLANの場合は以下のコマンドで確認

root@openindiana:~/# dladm show-vlan
LINK            VID      OVER         FLAGS
iscsi1          4010     aggr0        -----

 Tips的な物

JumboFrameの設定

# dladm set-linkprop -p mtu=9000 e1000g0

ってやってやる。

ipv6の設定(仮)

root@openindiana:~# ifconfig aggr0 inet6 plumb up

で、起動する。

ドライバへ設定出来る項目の確認

root@openindiana:/# dladm show-linkprop myri10ge0
LINK         PROPERTY        PERM VALUE          DEFAULT        POSSIBLE
myri10ge0    speed           r-   10000          10000          --
myri10ge0    autopush        rw   --             --             --
myri10ge0    zone            rw   --             --             --
myri10ge0    duplex          r-   full           full           half,full
myri10ge0    state           r-   up             up             up,down
myri10ge0    adv_autoneg_cap --   --             0              1,0
myri10ge0    mtu             rw   1500           1500           1500
myri10ge0    flowctrl        --   --             no             no,tx,rx,bi
myri10ge0    adv_10gfdx_cap  r-   --             0              1,0
myri10ge0    en_10gfdx_cap   --   --             0              1,0
myri10ge0    adv_1000fdx_cap r-   --             0              1,0
myri10ge0    en_1000fdx_cap  --   --             0              1,0
myri10ge0    adv_1000hdx_cap r-   --             0              1,0
myri10ge0    en_1000hdx_cap  --   --             0              1,0
myri10ge0    adv_100fdx_cap  r-   --             0              1,0
myri10ge0    en_100fdx_cap   --   --             0              1,0
myri10ge0    adv_100hdx_cap  r-   --             0              1,0
myri10ge0    en_100hdx_cap   --   --             0              1,0
myri10ge0    adv_10fdx_cap   r-   --             0              1,0
myri10ge0    en_10fdx_cap    --   --             0              1,0
myri10ge0    adv_10hdx_cap   r-   --             0              1,0
myri10ge0    en_10hdx_cap    --   --             0              1,0
myri10ge0    maxbw           rw   --             --             --
LINK         PROPERTY        PERM VALUE          DEFAULT        POSSIBLE
myri10ge0    cpus            rw   --             --             --
myri10ge0    cpus-effective  r-   --             --             --
myri10ge0    pool            rw   --             --             --
myri10ge0    pool-effective  r-   --             --             --
myri10ge0    priority        rw   high           high           low,medium,high
myri10ge0    tagmode         rw   vlanonly       vlanonly       normal,vlanonly
myri10ge0    forward         rw   1              1              1,0
myri10ge0    default_tag     rw   1              1              --
myri10ge0    learn_limit     rw   1000           1000           --
myri10ge0    learn_decay     rw   200            200            --
myri10ge0    stp             rw   1              1              1,0
myri10ge0    stp_priority    rw   128            128            --
myri10ge0    stp_cost        rw   auto           auto           --
myri10ge0    stp_edge        rw   1              1              1,0
myri10ge0    stp_p2p         rw   auto           auto           true,false,auto
myri10ge0    stp_mcheck      rw   0              0              1,0
myri10ge0    protection      rw   --             --             mac-nospoof,
                                                                restricted,
                                                                ip-nospoof,
                                                                dhcp-nospoof
myri10ge0    allowed-ips     rw   --             --             --
myri10ge0    allowed-dhcp-cids rw --             --             --
myri10ge0    rxrings         rw   --             --             --
myri10ge0    rxrings-effective r- --             --             --
myri10ge0    txrings         rw   --             --             --
myri10ge0    txrings-effective r- --             --             --
LINK         PROPERTY        PERM VALUE          DEFAULT        POSSIBLE
myri10ge0    txrings-available r- 0              --             --
myri10ge0    rxrings-available r- 0              --             --
myri10ge0    rxhwclnt-available r- 0             --             --
myri10ge0    txhwclnt-available r- 0             --             --

 NexentaCoreでの固定IPの設定

ethernet系


NexentaCoreでのIPoIB設定

  • 接続されてるネットワークの確認

以下、NexentaCore

root@nexenta:~# dladm show-phys
LINK         MEDIA                STATE      SPEED  DUPLEX    DEVICE
igb2         Ethernet             unknown    0      half      igb2
e1000g1      Ethernet             unknown    0      half      e1000g1
e1000g0      Ethernet             unknown    0      half      e1000g0
igb0         Ethernet             up         1000   full      igb0
igb1         Ethernet             unknown    0      half      igb1
igb3         Ethernet             unknown    0      half      igb3
ibd0         Infiniband           up         16000  unknown   ibd0

以下、Solaris Express 11とかOnenIndianaとかSolaris 11 EAとか
こっちの場合は、Solaris 11 ExpressでのIPoIBの設定を参照のこと

root@solaris:~/bin# dladm show-phys
LINK         MEDIA                STATE      SPEED  DUPLEX    DEVICE
e1000g0      Ethernet             up         1000   full      e1000g0
ibp2         Infiniband           up         16000  unknown   ibp2

sunwipoibを導入することが必須。ドライバが入るとibdインターフェイスが生えてくるので、それに対してipを付与してやること。
サンプル(一部伏せ字)

root@nexenta:/export/home/admin# ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
ibd0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 65520 index 2
        inet 192.168.*.* netmask ffffff00 broadcast 192.168.*.255
        ipib 80:0:0:4c:fe:80:0:0:0:0:0:0:0:*:c9:3:0:*:*:*
ibd1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 65520 index 3
        inet 192.168.*.* netmask ffffff00 broadcast 192.168.*.255
        ipib 80:0:0:4d:fe:80:0:0:0:0:0:0:0:*:c9:3:0:*:*:*
igb2: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 4
        inet 192.168.*.* netmask ffffff00 broadcast 192.168.*.255
        ether 0:1b:21:*:*:*
lo0: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1
        inet6 ::1/128

NexentaCoreでのベンチ

(旧環境)IPoIBでのパフォーマンスは以下くらい。
Host1は、NexentaCore 3.01
Host2は、Debian sid

admin@nexentacore:~$ iperf -c 192.168.17.5 -w 128k -N
------------------------------------------------------------
Client connecting to 192.168.17.5, TCP port 5001
TCP window size:  128 KByte
------------------------------------------------------------
[  3] local 192.168.17.31 port 46905 connected with 192.168.17.5 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  2.26 GBytes  1.94 Gbits/sec

(新環境)IPoIBでのパフォーマンスは以下くらい。
旧環境とサーバが逆で、両環境ともにInfiniBandのカードはConnectXに変更
Host1は、NexentaCore 3.01
Host2は、Debian sid

root@debian:# iperf -c 192.168.17.231 -w 128k -N
------------------------------------------------------------
Client connecting to 192.168.17.231, TCP port 5001
TCP window size:  256 KByte (WARNING: requested  128 KByte)
------------------------------------------------------------
[  3] local 192.168.17.5 port 50382 connected with 192.168.17.231 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  4.79 GBytes  4.11 Gbits/sec

  • はまった事

NexentaCoreのIPoIBのドライバはOI151aやOracle Solarisに比べてちょっと古いバージョンが入ってるんだけど、iperfでネットワークパフォーマンスを測定しようとするとhermonドライバからコケル。ちょっとこれは頂けないのでoi151aにバージョンアップしてしまうか考え中。