Metonymical Deflection

ゆるく日々のコト・たまにITインフラ

Traditional Networkからの決別

Traditional Networkから決別しなければならいと、今日強く思った。


武田の騎馬隊と信長の鉄砲隊ではないけれど、
戦い方が根本的に異なっているのに太刀打ちできるわけがない。


今のままでは本当にダメだと確信した。


IT業界は、現実社会の7倍の速度で進化していると聞いたことがあるけど、
今まさに刻一刻と時代に取り残されている感触がじわじわと沁みこんできている。


それともう一つ。


今まで、自分がやりたいと思ったことをやっているときが
一番愉しかったし愉しいと思っていた。


即ち、
 やりたいこと=愉しいこと
だと思っていた。


そして、その逆も然り。
 愉しいこと=やりたいこと
だと思っていた。


けれど、それは違うってことに気付いた。


愉しいことは、必ずしもやりたいこととは限らない。


オレは今やっている仕事がとても愉しいと思っている。
けれど「やりたいことではない」ってことが、ハッキリ判った。


自分に対して「愉しいから」という言い訳をして、
「やりたいことではない」って気持ちを
ただただ誤魔化していただけなのかもしれない。


オレが想う最も大きなストレスとは、
「やりたい」って思ったことが即行動に起こせないこと。


このストレスを課さないようにするために
今まで準備をしてきたんじゃないのか?と、
自分に対して、問い掛けている。


今日という日を決して忘れないようにするために
今の気持ちを書き残しておきたい。

3t3fを作ろう

久しぶりの書き込みですが、思いつきで3t3fなるキーワードを思いついたw


3target
 iSCSI
 FC
 FCoE


3filer
 CIFS
 NFS
 FTP


玉の容量:3TB
NIC:BCM57xxと82572
HBA:QLA2342
OS:Kernel2.6.35


1筐体に集約
BCM57xxがボトルネック


BCM57xx:iSCSI,3f
82572:FCoE
QLA2342:FC


元々はFCbootできればOKなイメージだったけど、
どうせならまとめちゃおう的な感覚。


どこまでできるか?はわからんけど。


SCST2.0.0.xベース(最新の2.1.0.xはNG)でないと、
FCoEが我侭言い始めるので、この辺が要注意かなと。


ゆくゆくは、82572からX540へ機能を移管してDCBも稼働させつつ、
BCM57xxと82572でBonding+VlanIntにすれば、ボトルネックが緩和される。


ちょっとp(^-^)qワクワクする。

Windows VLAN Interface設定

以前の記事にはLinuxによるVLAN Interfaceの設定方法を書きましたが、
今回はWindowsIntelNICを使用したVLAN Interfaceの設定方法を書きます。

IntelNICとハードウエアを限定してしまい申し訳ないのですが、
IntelNICドライバに付属のUtility(っていうか、Intel PROSet)で実現しているっぽいのです。

カニBroadcomNIC&ドライバで試してみました*1が、そもそも設定画面が出てこない。
レジストリでゴリゴリするレベルではなく、そもそもドライバで未対応といった具合なので、ハードウエアを限定した次第です。

なお、Windows10におけるVLAN Interface設定などは以下となります。2019/11/27追記
Windows10 VLAN Interface設定 - Metonymical Deflection
Windows10 VLAN aware VMs - Metonymical Deflection


それでは行ってみよう。


1.Intel PROSetのDL

IntelのサイトからPROSetドライバをDLしてください。
自身のPCやNICのチップにあったものを選択してください。
一例として、Intel 825xy系*2のドライバであれば、
「Network Adapter Drivers for Windows XP」のVer16.0.0などが
現時点での最新版となっているようです。
以下のような画面でDLします。

2.Intel PROSetのインストール

exe形式のファイル*3なので、そのまま実行してください。
インストール時の注意点として、セットアップ・オプション時に
「Advanced Network Services」にチェックを入れてください。

3.VLAN Interfaceの作成

3-1.NICのプロパティを開く

プロパティを開いたら「構成」をクリック

3-2.VLANタブを開く

「構成」をクリック後、「VLAN」タブをクリック

3-3.新規作成

「VLAN」タブを開いたら、「新規作成」をクリック

3-4.VLAN IDの追加

「VLAN ID」欄にVLAN番号を記載。
1つのNICに対して、最大64個のVLAN 番号が設定可能なようです。
また、設定できる番号の範囲は、1-4095です。
タグ無しVLAN(Ciscoライクにはnative VLAN)は後述


以下の画面が表示され1-2分くらい待たされます。
その間、NICの無効→有効などが実施され通信断が発生します。


VLAN IDを設定後の画面は以下のようになります。

3-5.タグ無しVLANの設定

VLAN IDを設定後の画面から「編集」をクリック
「タグなし VLAN」のチェックを付けて「OK」をクリック


以下の画面のようになればOKです。

3-6.ネットワークのプロパティ確認その1

VLAN Interface設定前後の「ネットワークのプロパティ」は以下の通り。

VLAN Interface設定前

VLAN Interface設定後

「設定前」の画面にて「Local」となっていたNIC
「設定後」の画面にて「Physical」となっています。
これが物理Interface(Linuxで言えば、ethX)に該当します。


これに加えて、VLAN0,VLAN10,VLAN20のNICが追加されています。
これがVLAN Interface(Linuxで言えば、vlanXX)に該当します。


実際はNICのDefault名である「ローカルエリア接続1」などが設定されます。
しかし、判りづらいので名前は変更しておきましょう。

3-7.ネットワークのプロパティ確認その2

「物理Interface」のプロパティを確認してみます。
ポイントとして、「物理Interface」の場合は、
Intel Advanced Network Services Protocol」がチェックされ、
インターネットプロトコル(TCP/IP)」が未チェックとなっています。
ようするに、IPは未設定であるということです。


3-8.ネットワークのプロパティ確認その3

「VLAN Interface」のプロパティを確認してみます。
ポイントとして、「VLANInterface」の場合は、
VLAN Interface作成前のプロパティと同内容の設定が可能です。


また、「VLAN Interface」のプロパティ画面から、
「構成」をクリックすると、VLAN IDの設定が可能となります。


以下はタグ無しVLANの「構成」画面です。


以下はVLAN10の「構成」画面です。

3-9.ipconfig /allの出力

コマンドプロンプトでipconfig /allを打ったときの出力を以下に記載します。

C:\>ipconfig /all

Windows IP Configuration

        Host Name . . . . . . . . . . . . : hostname
        Primary Dns Suffix  . . . . . . . : domainname.com
        Node Type . . . . . . . . . . . . : Hybrid
        IP Routing Enabled. . . . . . . . : No
        WINS Proxy Enabled. . . . . . . . : No

Ethernet adapter loopback:

        Connection-specific DNS Suffix  . :
        Description . . . . . . . . . . . : Microsoft Loopback Adapter
        Physical Address. . . . . . . . . : 02-AA-00-11-22-33
        Dhcp Enabled. . . . . . . . . . . : No
        IP Address. . . . . . . . . . . . : 192.168.12.111
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . :

Ethernet adapter local2:

        Connection-specific DNS Suffix  . :
        Description . . . . . . . . . . . : Realtek RTL8139 Family PCI Fast Ethernet NIC
        Physical Address. . . . . . . . . : 00-AA-BB-CC-DD-EE
        Dhcp Enabled. . . . . . . . . . . : No
        IP Address. . . . . . . . . . . . : 192.168.11.111
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . :

Ethernet adapter VLAN0:

        Connection-specific DNS Suffix  . :
        Description . . . . . . . . . . . : Intel(R) 82566DM-2 Gigabit Network Connection - VLAN : タグなし VLAN
        Physical Address. . . . . . . . . : 00-11-22-33-44-55
        Dhcp Enabled. . . . . . . . . . . : No
        IP Address. . . . . . . . . . . . : 192.168.0.222
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . :

Ethernet adapter VLAN10:

        Connection-specific DNS Suffix  . :
        Description . . . . . . . . . . . : Intel(R) 82566DM-2 Gigabit Network Connection - VLAN : VLAN10
        Physical Address. . . . . . . . . : 00-11-22-33-44-55
        Dhcp Enabled. . . . . . . . . . . : No
        IP Address. . . . . . . . . . . . : 192.168.10.222
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . :

Ethernet adapter VLAN20:

        Connection-specific DNS Suffix  . :
        Description . . . . . . . . . . . : Intel(R) 82566DM-2 Gigabit Network Connection - VLAN : VLAN20
        Physical Address. . . . . . . . . : 00-11-22-33-44-55
        Dhcp Enabled. . . . . . . . . . . : No
        IP Address. . . . . . . . . . . . : 192.168.20.222
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . :

C:\>

4.その他

以下の画面を見てピンとこられた方もいらっしゃると思いますが、
「チーム化」タブからLinux同様にLink Aggregationの設定も可能です。


手元にある鯖ではIntelNICが2枚挿しとなっているので、
Windows系OSとPROSetドライバをインストールすれば、
「チーム化」についても実際に試すことができます。
ですが、面倒なので、ここではあえて取り上げません。ごめんなさい。


興味のある方は自身で動作確認してみてください。
GUIで設定可能ですので、Linuxほどきちんとした手順を記載しなくても、
ある程度フィーリングで設定可能だと考えて良いと思います。


私自身も「できる」ことはわかっているので、
本当に必要に迫られたら「やってみようかな?」程度にしか考えていません。


以上です。


次回は技術的な記事からちょいと離れつつ、
Blogとして想いなどを書き綴りたいと考えています。

*1:サーバ用NICではなく、あくまでもコンシューマ用NICです。

*2:x=4-8,y0-9となります。x=9系は別なドライバになりますが、8259yを使う人に説明は不要かと。

*3:32bit版であればPROWin32.exeなど

Windows Route設定

WindowsでのRoute設定方法を記載します。


Route設定とRouting設定の定義は過去の記事に記載したので、
興味のある方は一読してみてください。


そこで、今回はWindowsOSによるRoute設定を記載します。


それでは行ってみよう!

1.テンポラリRoute設定

設定後、OS再起動やNICの無効/有効を実施すると消えるRoute設定方法です。

route ADD <NWアドレス> MASK <ネットマスク> <GWアドレス> METRIC <メトリック> IF <Interface>


具体例を以下に記載します。

コマンドプロンプト上で、以下のroute printコマンドにて現在のroute設定を確認しておきます。

C:\>route print
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x2 ...00 11 22 33 44 55 ...... Intel(R) 82566DC Gigabit Network Connection - パケット スケジューラミニポート
0x10004 ...00 aa bb cc dd ee ...... Realtek RTL8139/810X Family PCI Fast Ethernet NIC - パケット スケジューラ ミニポート
===========================================================================
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0     192.168.11.1   192.168.11.11       10
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
      169.254.0.0      255.255.0.0    192.168.11.11   192.168.11.11       20
     192.168.11.0    255.255.255.0    192.168.11.11   192.168.11.11       10
    192.168.11.11  255.255.255.255        127.0.0.1       127.0.0.1       10
   192.168.11.255  255.255.255.255    192.168.11.11   192.168.11.11       10
        224.0.0.0        240.0.0.0    192.168.11.11   192.168.11.11       10
  255.255.255.255  255.255.255.255    192.168.11.11   192.168.11.11       1
  255.255.255.255  255.255.255.255    192.168.11.11           10004       1
Default Gateway:      192.168.11.1
===========================================================================
Persistent Routes:
  None

C:\>

以下のコマンドでroute設定を実施

route ADD 172.16.0.0 MASK 255.255.255.0 192.168.11.1 METRIC 20 IF 0x2

再度、route printコマンドにて設定後のroute確認。
★の付いた行が新たに追加されていることが判ります。

C:\>route print
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x2 ...00 11 22 33 44 55 ...... Intel(R) 82566DC Gigabit Network Connection - パケット スケジューラミニポート
0x10004 ...00 aa bb cc dd ee ...... Realtek RTL8139/810X Family PCI Fast Ethernet NIC - パケット スケジューラ ミニポート
===========================================================================
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0     192.168.11.1   192.168.11.11       10
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
      169.254.0.0      255.255.0.0    192.168.11.11   192.168.11.11       20
       172.16.0.0    255.255.255.0     192.168.11.1   192.168.11.11       20  ★
     192.168.11.0    255.255.255.0    192.168.11.11   192.168.11.11       10
    192.168.11.11  255.255.255.255        127.0.0.1       127.0.0.1       10
   192.168.11.255  255.255.255.255    192.168.11.11   192.168.11.11       10
        224.0.0.0        240.0.0.0    192.168.11.11   192.168.11.11       10
  255.255.255.255  255.255.255.255    192.168.11.11   192.168.11.11       1
  255.255.255.255  255.255.255.255    192.168.11.11           10004       1
Default Gateway:      192.168.11.1
===========================================================================
Persistent Routes:
  None

C:\>

!コメント1!
若干面倒くさいのが、の部分です。
OS再起動などにより、コロコロ値が変わります。


route ADD MASK <ネットマスク> METRIC <メトリック> IF


このため、都度route printコマンドにて表示された16進数を記載してあげます。
今回の例で言えば、
 Intel(R) 82566DCから送信したければ「0x2」
 Realtek RTL8139/810Xから送信したければ「0x10004」
となります。


「IF 」自体を省略しても設定できる場合があるようですが、
省略して弾かれる場合には、明示的に設定してやる必要があります。

2.パーシステンスRoute設定

設定後、OS再起動してもRoute設定が消えないようにする方法です。
Linuxのときほど面倒ではなく、「-p」オプションを付与するだけでOKです。

route -p ADD <NWアドレス> MASK <ネットマスク> <GWアドレス> METRIC <メトリック> IF <Interface>


具体例を以下に記載します。

コマンドプロンプト上で、以下のroute printコマンドにて現在のroute設定を確認しておきます。

C:\>route print
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x2 ...00 11 22 33 44 55 ...... Intel(R) 82566DC Gigabit Network Connection - パケット スケジューラミニポート
0x10004 ...00 aa bb cc dd ee ...... Realtek RTL8139/810X Family PCI Fast Ethernet NIC - パケット スケジューラ ミニポート
===========================================================================
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0     192.168.11.1   192.168.11.11       10
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
      169.254.0.0      255.255.0.0    192.168.11.11   192.168.11.11       20
     192.168.11.0    255.255.255.0    192.168.11.11   192.168.11.11       10
    192.168.11.11  255.255.255.255        127.0.0.1       127.0.0.1       10
   192.168.11.255  255.255.255.255    192.168.11.11   192.168.11.11       10
        224.0.0.0        240.0.0.0    192.168.11.11   192.168.11.11       10
  255.255.255.255  255.255.255.255    192.168.11.11   192.168.11.11       1
  255.255.255.255  255.255.255.255    192.168.11.11           10004       1
Default Gateway:      192.168.11.1
===========================================================================
Persistent Routes:
  None

C:\>

以下のコマンドでroute設定を実施

route -p ADD 172.16.0.0 MASK 255.255.255.0 192.168.11.1 METRIC 20 IF 0x2

再度、route printコマンドにて設定後のroute確認。
★の付いた行が新たに追加されていることが判ります。

C:\>route print
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x2 ...00 11 22 33 44 55 ...... Intel(R) 82566DC Gigabit Network Connection - パケット スケジューラミニポート
0x10004 ...00 aa bb cc dd ee ...... Realtek RTL8139/810X Family PCI Fast Ethernet NIC - パケット スケジューラ ミニポート
===========================================================================
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0     192.168.11.1   192.168.11.11       10
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
      169.254.0.0      255.255.0.0    192.168.11.11   192.168.11.11       20
       172.16.0.0    255.255.255.0     192.168.11.1   192.168.11.11       20 ★
     192.168.11.0    255.255.255.0    192.168.11.11   192.168.11.11       10
    192.168.11.11  255.255.255.255        127.0.0.1       127.0.0.1       10
   192.168.11.255  255.255.255.255    192.168.11.11   192.168.11.11       10
        224.0.0.0        240.0.0.0    192.168.11.11   192.168.11.11       10
  255.255.255.255  255.255.255.255    192.168.11.11   192.168.11.11       1
  255.255.255.255  255.255.255.255    192.168.11.11           20004       1
Default Gateway:      192.168.11.1
===========================================================================
Persistent Routes:
  Network Address          Netmask  Gateway Address  Metric
       172.16.0.0    255.255.255.0     192.168.11.1      20          ★

C:\>

!コメント1!
「Persistent Routes:」に追記されたのがわかると思います。
ここに記載されれば、OS再起動をしてもRoute設定は消えませんが、
逆の言い方をすると、明示的に消去しない限り残ったままとなります。


このため「Persistent Routes:」を消去したい場合には
以下のようにコマンドを打ってください。

route delete 172.16.0.0


以上です。


今度はWindowsでVLAN Interfaceを作成する方法を記載できればと。
IntelNIC限定の方法になってしまいますが、意外に知られていないようなので。

今欲しいGigaスイッチ

GS116E-100JPS or SG300-20-JPで悩み中。


なので、機能比較をしてみたw

GS116E-100JPS

実売価格
 16000-17000円
仕様&機能
 ファンレス
 802.1q
 802.1p
 ポートミラーリング
 JumboFrame(正確なByte数は不明)

SG300-20-JP

実売価格
 55000円前後(最安値は52150円)
仕様&機能
 上記GS116E-100JPSに加えて以下の通り
 IPv4IPv6 Routing
 LACP
 802.1X
 IGMP
 JumboFrame 10KB


L3機能とLCAPに3倍の価値があるか?をとても悩み中。


と悩みながら、ふと彼の言葉を思い出す。


「機材に買い時って無いっす」と。


確かに。


もし我侭が言えるなら、


GS116E-100JPSにLACP機能が実装されて


諭吉2人くらいなら、即行でポチっとイケるんだが。。。

How to FCoE FCoE Target & FCoE Initiator

Fedora13によるFCoE Target & FCoE Initiatorのセットアップ手順です。
近頃、Intelから正式発表があった「Open FCoE」を使用した具体的なセットアップ手順となります。


正式発表資料では、Intel X520(82599チップ)のみを謳っています。
しかし、個人購入するには少々高額(6万円程度)です。


このため、本手順ではIntel EXPI9301CT(82574Lチップ:実売4000円以下)を使用します。
また、Dell Optiplex 755のOn Borad NIC(82566DM-2チップ)でも動作確認済みです。


従って、e1000系ドライバで動作するIntelNICであれば、概ね動作すると考えて良いと思います。


なお、本手順は自宅SAN友の会にも同内容をアップ済みですが、
正式発表後のTwitter件数などを鑑みて、こちらのBlogにも改めて書きたいと思います。


それでは行ってみよう!


Hardware構成

FCoE Target
バイス 型番など
筐体 ML115G5
CPU AMD Phenom X4 9350e
Mem W2U800CQ-2GL5J*2(こんなに積まなくてもOK)
HDD ST3160023AS OS起動用(SATAなら何でもOKなハズ)
HDD ST3500320NS Target用(SATAなら何でもOKなハズ)
HBA 不要
NIC intel EXPI9301CT(増設)
OS Fedora13 x86 or Fedora13 x86_64(64bit版もOK)
Kernel 2.6.35


NICは以下の用途で使用
 ML115G5のDefaultNIC(Broadcom)をIP通信用
 intel EXPI9301CT(増設)をFCoE用

FCoE Initiator
バイス 型番など
筐体 ML115G5
CPU AMD Phenom X4 9350e
Mem W2U800CQ-2GL5J*2(こんなに積まなくてもOK)
HDD ST3160023AS(SATAなら何でもOKなハズ)
HBA 不要
NIC intel EXPI9301CT(増設)
OS Fedora13 x86 or Fedora13 x86_64(64bit版もOK)
Kernel Fedora13からDefaultでインストールされるモノでOK

接続構成

FCoE TargetとInitiatorは、EXPI9301CT同士でDAS(直結)構成としてください。
筐体(ML115G5)のDefaultNICはIP疎通性があれば接続方法は何でもOKです。
NIC2枚挿しが厳しければ、シリアルコンソール接続設定を参照。


OSインストール

TargetもInitiatorも同じです。
Fedora13 x86のインストールパッケージのカスタマイズ

<デスクトップ環境>

  全てOFF(GNOME,KDEも使わない)

<アプリケーション>

  エディタ→vim-enhancedのみ

<開発>

  開発ツール
  開発ライブラリ

<サーバー>

  Samba
   ※
   Mustではありません。
   TeraTermをWinXPで動作させている関係で、ファイルのやり取りをCIFSでやりたかっただけです。

<ベースシステム>

  ベースのみ

<仮想化,クラスタリング,クラスタストレージ>

  全てOFF

1.事前準備

1-1.KernelSrcのDL
cd /usr/src
wget ftp://ftp.iij.ad.jp/pub/linux/kernel/linux/kernel/v2.6/linux-2.6.35.tar.gz
tar zxvf linux-2.6.35.tar.gz
ln -s /usr/src/linux-2.6.35 linux
ln -s /usr/src/linux-2.6.35 kernel
1-2.SCSTのSrcDL
cd /usr/src
svn co https://scst.svn.sourceforge.net/svnroot/scst/branches/2.0.0.x
mkdir scst
ln -s /usr/src/2.0.0.x /usr/src/scst/trunk

!コメント1!
2011/11/04に修正
最新版のscst(2.1.0.x系)をDLしてしまうと、
正常に動作しない場合があるので、lnしました。
これやらないと、永遠にKernelのBuildをやり直さなければならず、
心がへし折れそうになると思うので修正しました。

2.各種パッチ当て

2-1.SCSTのパッチ当て
cp /usr/src/scst/trunk/scst/kernel/scst_exec_req_fifo-2.6.35.patch /usr/src
patch -p0 < scst_exec_req_fifo-2.6.35.patch
2-2.FCSTのパッチ当て

変数定義

KERNEL=linux-2.6.35
KDIR=/usr/src/$KERNEL
PDIR=/usr/src/scst/trunk/fcst/linux-patches


パッチ当て

cd $PDIR

for patch in `grep -v '^#' series-2.6.35`

do
(cd $KDIR; patch -p1) < $patch
done

cd /usr/src/

3.KernelのBuild

3-1.Linux KernelのMakefile設定
cd /usr/src/linux-2.6.35
make menuconfig

!コメント1!
基本的に変更する箇所はありませんので、
以下に記載する項目を確認していくという作業になります。
なお、SCST+qla2x00tgtによるFC Targetインストール時*1と同様に
32bit版のみHigh Memory Supportの項目をOffにします。

!コメント2!
以下のメッセージが表示された場合は
ターミナル(TeraTermなど)の画面サイズが小さ過ぎます。

Your display is too small to run Menuconfig!
It must be at least 19 lines by 80 columns.
make[1]: *** [menuconfig] エラー 1
make: *** [menuconfig] エラー 2


『make menuconfig』コマンドを打つと以下のような画面が表示されるので、
ここからカーソルキーを使用して各項目を選択し確認していきます。

# make menuconfig

  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/basic/docproc
  HOSTCC  scripts/basic/hash
  HOSTCC  scripts/kconfig/conf.o
  HOSTCC  scripts/kconfig/kxgettext.o
  HOSTCC  scripts/kconfig/lxdialog/checklist.o
  HOSTCC  scripts/kconfig/lxdialog/inputbox.o
  HOSTCC  scripts/kconfig/lxdialog/menubox.o
  HOSTCC  scripts/kconfig/lxdialog/textbox.o
  HOSTCC  scripts/kconfig/lxdialog/util.o
  HOSTCC  scripts/kconfig/lxdialog/yesno.o
  HOSTCC  scripts/kconfig/mconf.o
  SHIPPED scripts/kconfig/zconf.tab.c
  SHIPPED scripts/kconfig/lex.zconf.c
  SHIPPED scripts/kconfig/zconf.hash.c
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/mconf
scripts/kconfig/mconf arch/x86/Kconfig
#
# using defaults found in /boot/config-2.6.33.3-85.fc13.x86_64
#
/boot/config-2.6.33.3-85.fc13.x86_64:569:warning: symbol value 'm' invalid for PCCARD_NONSTATIC
/boot/config-2.6.33.3-85.fc13.x86_64:1952:warning: symbol value 'm' invalid for RT2800PCI_PCI
/boot/config-2.6.33.3-85.fc13.x86_64:2744:warning: symbol value 'm' invalid for MFD_WM8350
/boot/config-2.6.33.3-85.fc13.x86_64:2745:warning: symbol value 'm' invalid for MFD_WM8350_I2C
/boot/config-2.6.33.3-85.fc13.x86_64:2747:warning: symbol value 'm' invalid for AB3100_CORE
/boot/config-2.6.33.3-85.fc13.x86_64:3748:warning: symbol value 'm' invalid for MMC_RICOH_MMC

 .config - Linux Kernel v2.6.35 Configuration
 qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
  lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq Linux Kernel Configuration qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
  x  Arrow keys navigate the menu.  <Enter> selects submenus --->.  Highlighted letters are hotkeys.  Pressing <Y>   x
  x  includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help, </> for Search.      x
  x  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                              x
  x                                                                                                                  x
  x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x
  x x                        General setup  --->                                                                   x x
  x x                    [*] Enable loadable module support  --->                                                  x x
  x x                    -*- Enable the block layer  --->                                                          x x
  x x                        Processor type and features  --->                                                     x x
  x x                        Power management and ACPI options  --->                                               x x
  x x                        Bus options (PCI etc.)  --->                                                          x x
  x x                        Executable file formats / Emulations  --->                                            x x
  x x                    -*- Networking support  --->                                                              x x
  x x                        Device Drivers  --->                                                                  x x
  x x                        Firmware Drivers  --->                                                                x x
  x x                        File systems  --->                                                                    x x
  x x                        Kernel hacking  --->                                                                  x x
  x x                        Security options  --->                                                                x x
  x x                    -*- Cryptographic API  --->                                                               x x
  x x                    [*] Virtualization  --->                                                                  x x
  x x                        Library routines  --->                                                                x x
  x x                    ---                                                                                       x x
  x x                        Load an Alternate Configuration File                                                  x x
  x x                        Save an Alternate Configuration File                                                  x x
  x x                                                                                                              x x
  x mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj x
  tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu
  x                                         <Select>    < Exit >    < Help >                                         x
  mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
3-1-1.802.1QとDCBの設定
Networking support  --->
Networking options  --->
 <M> 802.1Q VLAN Support
 [*]   GVRP (GARP VLAN Registration Protocol) support
 [*] Data Center Bridging support
3-1-2.QoS周りの設定
Networking support  --->
Networking options  --->
[*] QoS and/or fair queueing  --->
 <M>   Multi Band Priority Queueing (PRIO)
 <M>   Hardware Multiqueue-aware Multi Band Queuing (MULTIQ)
 <M>   Elementary classification (BASIC)
 <M>   Universal 32bit comparisons w/ hashing (U32)
 [*]   Extended Matches
 <M>     U32 key
 [*]   Actions
 <M>     SKB Editing
3-1-3.FCoEモジュール周りの設定
Device Drivers  --->
SCSI device support  --->
SCSI low-level drivers  --->
 {M}   LibFC module
 {M}   LibFCoE module
 <M>   FCoE module
3-1-4.10GbitDeviceのDCBの設定
Device Drivers  --->
Network device support  --->
Ethernet (10000 Mbit)  --->
 [*]     Data Center Bridging (DCB) Support
3-1-5.BlockLayerの設定
-*- Enable the block layer  --->
 [*]   Block layer SG support v4
3-1-6.【32bit版限定】HighMemSupportの設定
Processor type and features  --->
High Memory Support (64GB)  --->
 (X) off  
 ( ) 4GB  
 ( ) 64GB 
3-1-7.設定の保存

Exitにて最初の画面に戻ってください。
以下の項目を選択し保存してください。

 Save an Alternate Configuration File

保存が完了したら最初の画面に戻ってExitを選択すれば、元のプロンプトに戻ります。

3-2.Linux KernelのBuild
make bzImage && make modules && make modules_install && make install

!コメント1!
ガッツリ1時間半程度掛かります。
心の準備をしておいてください。
むしろ、TeraTermでログ取得しておいて、
以下のコマンド打ってみた方が良いかも?です。

date && make bzImage && make modules && make modules_install && make install && date && shutdown -h now
3-3.起動Kernelの選択
vi /boot/grub/menu.lst

ファイルを開いたら、以下の項目を0に設定

 default=1
 ↓
 default=0

!コメント1!
新Kernelが最初に起動されるように設定します。
Windowsライクに言うと"c:\boot.ini"を書き換える作業です。

3-4.再起動
shutdown -r now

4.scst,scstadmin,fcst,fcoeadmのインストール(コンパイル含む)

4-1.scstのインストール
cd /usr/src/scst/trunk/scst
make && make install
4-2.scstadminのインストール
cd /usr/src/scst/trunk/scstadmin
make && make install
4-3.fcstのインストール
cd /usr/src/scst/trunk/fcst
make && make install
4-4.fcoeadmのインストール
yum -y install fcoe-utils

!コメント1!
yumは絶対に使わない!」という漢な方は、"/usr/src/scst/trunk/fcst/README"の
7.Install the FCoE admin tools, including dcbd and fcoeadm.を参照してください。
私も何度かSrcからのコンパイルにチャレンジし成功しましたが、
本当にこれで大丈夫かなぁといった部分もあるので、手順としてはyumにしました。

5.VLANやHDDの設定とModuleの読み込み

!コメント1!
Linuxに精通した方は軽く読み飛ばしてください。

なお、VLAN設定はfcoe-utilsのインストール後に
"fipvlan -a"がどうしてもうまく動作せず、苦肉の策として掲載しています。
ちなみに、VLAN設定を実施しなくても、FCoE Targetとしての動作は可能です。
いわゆるTag無しVLAN(CiscoライクにはnativeVLAN)でもOKです。

5-1.VLANの設定*2
5-1-1.networkファイルの設定
vi /etc/sysconfig/network

以下の2行を追加

 VLAN=yes
 VLAN_NAME_TYPE=DEV_PLUS_VID_NO_PAD
5-1-2.ifcfg-ethxの設定
vi /etc/sysconfig/network-scripts/ifcfg-eth1

ファイルを開いたら以下のように設定

# Intel Corporation 82574L Gigabit Network Connection
DEVICE=eth1
HWADDR=00:1B:21:49:82:FA
ONBOOT=yes
BOOTPROTO=none
MTU=2500

!コメント1!
MACアドレスやeth1など、適宜実環境に合わせて修正してください。

!コメント2!
MTU=2500がポイントです。
FCoEの通信時は、きちんとMTU=2112で通信されるので安心してください。

5-1-3.ifcfg-ethx.yyyの設定
vi /etc/sysconfig/network-scripts/ifcfg-eth1.100

ファイルを開いたら以下のように設定

DEVICE=eth1.100
BOOTPROTO=static
ONBOOT=yes
USERCONTROL="no"
INTERFACETYPE="vlan"
#IPADDR=192.168.100.116
#NETMASK=255.255.255.0

!コメント1!
上記はifcfg-eth1.100としていますが、
適宜、実環境に合わせて修正してください。
NIC=eth1のVLAN100という意味です。
Pcap(パケットキャプチャ)すれば、
802.1QのTag内に100が記載されています。

!コメント2!
IPアドレスやネットマスクは、"#"していますが、外しても問題ありません。
pingとfcpingを同時に試してみたいぜ!」という方は外してください。
説明は不要かと思いますが、Etherフレームの上に乗っかるProtocolが
IPとFCなのでVLAN100上にて同時通信させても問題ありません。


但し、IPアドレスを設定した場合、項番「7-4-1.NIC動作確認」にて
正常動作時の状態か?の判別が付き難くなることがあるため、
ここでは"#"を付けた状態=IPアドレス未設定状態を想定して進めます。

5-1-4.FCoEのcfg-ethx.yyyの設定
vi /etc/fcoe/cfg-eth1.100

ファイルを開いたら、以下をコピペしてください。

## Type:       yes/no
## Default:    no
# Enable/Disable FCoE service at the Ethernet port
FCOE_ENABLE="yes"

## Type:       yes/no
## Default:    yes
# Indicate if DCB service is required at the Ethernet port
DCB_REQUIRED="no"

## Type:        yes/no
## Default:     yes
# Indicate if VLAN discovery should be handled by fcoemon
AUTO_VLAN="no"

!コメント1!
DCB_REQUIRED="no"としている点がポイントです。
今回のNICではDCBの実装はHardware的に不可能なので。

5-1-5.FCoEのconfigの設定
vi /etc/fcoe/config

ファイルを開いたら、★の行を"yes"→"no"へ修正

## Type:       yes/no
## Default:    no
# Switch on/off debug messages (script & C code)
DEBUG="no"

## Type:       yes/no
## Default:    yes
# All the messages go to syslog and stderr (script & C code)
USE_SYSLOG="yes" ★
↓
USE_SYSLOG="no"

!コメント1!
動作的には問題無いのですが、fcoemonがdcb関連の設定ファイルを探して、
dmesや/var/log/messageにゴミLogを残すため"no"へ修正。

5-2.HDDの設定

!コメント1!
ここでは500GBのHDDのシリンダ数=60800として、
250GB*2つのパーティションに分割します。
すいません、説明は端折ります。
時間があれば詳細を記載するようにしますが、
詳細を早く知りたい方は以下のサイトなどでお勉強してください。
http://www.itmedia.co.jp/help/tips/linux/l0112.html

fdiskにて、以下のようなイメージでパーティションを切ってください。

fdisk /dev/sdb

m
p
n
p
1
30399
p
2
空Enter
空Enter
p
t
1
83
p
t
2
83
p
w

sfdisk -l /dev/sdb

!コメント2!
最終的にはこんな↓感じに仕上げてください。
"/dev/sdb1"と"/dev/sdb2"の2つのパーティションで構成されている想定で進めます。

sfdisk -l /dev/sdb

ディスク /dev/sdb: シリンダ数 60801、ヘッド数 255、63 セクタ/トラック
ユニット = 8225280 バイトのシリンダ、1024 バイトのブロック、0 から数えます

デバイス ブート 始点    終点 #シリンダ #ブロック  Id  システム
/dev/sdb1          0+  30399   30400- 244187968+  83  Linux
/dev/sdb2      30400   60800   30401  244196032+  83  Linux
/dev/sdb3          0       -       0          0    0  空
/dev/sdb4          0       -       0          0    0  空
5-3.Moduleの読み込み確認
5-3-1.libfc,libfcoe,fcoeのModuleの読み込み
/etc/rc.d/init.d/fcoe start
5-3-2.scst関連Moduleの読み込み
modprobe scst && modprobe scst_vdisk && modprobe scst_disk
5-3-3.fcst関連Moduleの読み込み
modprobe fcst

!コメント1!
上記5-3-2.の後、5秒程度待ってから"modprobe fcst"してください。
流し込みのように早過ぎるとfcstだけうまく読み込まれない場合があります。

5-3-4.Moduleの確認

以下のようなイメージでModuleが読み込まれればOKです。

lsmod

  Module                  Size  Used by
◆ fcst                   14292  0 
◆ scst_disk               8690  0 
◆ scst_vdisk             49497  0 
◆ scst                  344380  3 fcst,scst_disk,scst_vdisk
◆ fcoe                   15375  0 
◆ libfcoe                10524  1 fcoe
◆ libfc                  66050  3 fcst,fcoe,libfcoe
  ipv6                  219344  22 
  k10temp                 2443  0 
  i2c_nforce2             5574  0 
  i2c_core               20569  1 i2c_nforce2
  tg3                    97786  0 
★ e1000e                158454  0 
  microcode              10563  0 
  pcspkr                  1342  0 
  serio_raw               3316  0 
  qla2xxx               263249  0 
★ scsi_transport_fc      33685  3 fcoe,libfc,qla2xxx
  pata_acpi               2235  0 
★ scsi_tgt                8506  1 scsi_transport_fc
  ata_generic             2359  0 
  sata_nv                16359  4 

!コメント1!
特に重要なModuleには◆
重要なModuleには★
を付けてます。

5-3-5.一旦再起動
shutdown -r now

!コメント1!
MTUを変更してることもあり、ここいらで一旦Reboot。
と言いつつ、再起動しないと先に進んでもしくじる=検証済み。

6.SCST設定とFCoE Target有効化設定

6-1.SCST設定
6-1-1.状況確認

以下のコマンドで状況確認

/usr/libexec/fcoe/fcc.sh

FC HBAs:
HBA       Port Name                Port ID   State     Device         

!コメント1!
このタイミングでは何も表示されなくてOK

6-1-2.Module読み込み

以下のコマンドにてModule読み込み

/etc/rc.d/init.d/fcoe start
modprobe scst && modprobe scst_vdisk && modprobe scst_disk
modprobe fcst
6-1-3.Module読み込み状況確認

Rebootしても5-3-4と同じだよね?ってことを確認してください。

lsmod

  Module                  Size  Used by
◆ fcst                   14292  0 
◆ scst_disk               8690  0 
◆ scst_vdisk             49497  0 
◆ scst                  344380  3 fcst,scst_disk,scst_vdisk
◆ fcoe                   15375  0 
◆ libfcoe                10524  1 fcoe
◆ libfc                  66050  3 fcst,fcoe,libfcoe
  ipv6                  219344  22 
  k10temp                 2443  0 
  i2c_nforce2             5574  0 
  i2c_core               20569  1 i2c_nforce2
  tg3                    97786  0 
★ e1000e                158454  0 
  microcode              10563  0 
  pcspkr                  1342  0 
  serio_raw               3316  0 
  qla2xxx               263249  0 
★ scsi_transport_fc      33685  3 fcoe,libfc,qla2xxx
  pata_acpi               2235  0 
★ scsi_tgt                8506  1 scsi_transport_fc
  ata_generic             2359  0 
  sata_nv                16359  4 
6-1-4.状況確認その2
/usr/libexec/fcoe/fcc.sh	

FC HBAs:	
HBA       Port Name                Port ID   State     Device         	
host7     20:64:00:1b:21:49:82:fa  -         Offline   eth1.100	

!コメント1!
Module読み込み後、HBAが認識されたことを確認してください。
また、Port Nameは次項で設定するWWPNとなるので、メモなどに控えておいてください。

6-1-5.SCST設定投入

以下のコマンドでTergetデバイスを設定

scstadmin -open_dev dev00 -handler vdisk_blockio -attributes filename=/dev/sdb1
scstadmin -add_lun 0 -driver fcst -target 20:64:00:1b:21:49:82:fa -device dev00

scstadmin -open_dev dev01 -handler vdisk_blockio -attributes filename=/dev/sdb2
scstadmin -add_lun 1 -driver fcst -target 20:64:00:1b:21:49:82:fa -device dev01

!コメント1!
簡単に説明を入れようと考えましたが、
コマンド投入後の出力結果に説明が記載されているので、
出力結果を以下に記載します。


以下のコマンド投入後、

scstadmin -open_dev dev00 -handler vdisk_blockio -attributes filename=/dev/sdb1

以下のメッセージが表示されればOK

Collecting current configuration: done.
-> Making requested changes.
	-> Opening device 'dev00' using handler 'vdisk_blockio': done.
	-> Done.
All done.


以下のコマンド投入後、

scstadmin -add_lun 0 -driver fcst -target 20:64:00:1b:21:49:82:fa -device dev00

以下のメッセージが表示されればOK

Collecting current configuration: done.
-> Making requested changes.
	-> Adding device 'dev00' at LUN 0 to driver/target 'fcst/20:64:00:1b:21:49:82:fa': done.
	-> Done.
All done.

!コメント2!
「WWPN=20:64:00:1b:21:49:82:fa」の構成を記載しておきます。
結構重要ですw

2                   決まり文句(WWNNの場合は「1」)
0:64                16進数表記のVLAN番号(256*0+16*6+1*4=100)※
00:1b:21:49:82:fa   NICのMACアドレス
 ※
 例えば、拡張VLANの場合、
 VLAN4010=f:aa({256*15}+{16*10}+{1*10}=4010)となる。

!コメント3!
「Zoningしたいぜ!」って方は、こんな感じでイケます。

scstadmin -open_dev dev00 -handler vdisk_blockio -attributes filename=/dev/sdb1
scstadmin -add_group host00 -driver fcst -target 20:64:00:1b:21:49:82:fa
scstadmin -add_lun 0 -driver fcst -target 20:64:00:1b:21:49:82:fa -group host00 -device dev00

後はscstadminのmanやREADMEを読みつつ想像しながら格闘してください。
iscsiやqla2x00tについては、そこそこサンプルコマンドが記載されているのですが、
fcstは一切記載や説明が無く、上記はTry&Errorで確認したSyntaxなので。
でも「VLAN別ければ、Zoningしなくてもいいんじゃねぇ?」と思ってしまう。
Initiatorを明示的に指定するなら別だけど。

6-1-6.SCST設定保存

以下のコマンドで設定を保存

scstadmin -write_config /etc/scst.conf
6-1-7.SCST設定の確認

以下コマンドで保存したファイルを確認します。

vi /etc/scst.conf

"/etc/scst.conf" 22L, 267C# Automatically generated by SCST Configurator v2.0.0.

HANDLER vdisk_blockio {
	DEVICE dev00 {
		filename /dev/sdb1
	}
	DEVICE dev01 {
		filename /dev/sdb2
	}
}

TARGET_DRIVER fcst {
	TARGET 20:64:00:1b:21:49:82:fa {
		enabled 0
			LUN 0 dev00
			LUN 1 dev01
		}
}
6-2.FCoE Target有効化設定
6-2-1.WWPNのディレクトリ確認
ls -Fal /sys/kernel/scst_tgt/targets/fcst

合計 0
drwxr-xr-x 3 root root 0 2010-10-25 23:33 ./
drwxr-xr-x 3 root root 0 2010-10-25 23:33 ../
drwxr-xr-x 5 root root 0 2010-10-25 23:33 20:64:00:1b:21:49:82:fa/

*1:今度手順をアップしますね。

*2:VLAN Interface設定と同じ手順です。

Linux Route設定

LinuxでのRoute設定方法を記載します。


Route設定とRouting設定は明確に異なるので、注意してください。
私の勝手な定義となってしまいますが、以下の認識です。

Route設定
 自己生成パケット&自分宛パケットの経路制御

Routing設定
 自己生成パケット&自分宛パケットの経路制御に加えて、
 他のデバイスより受信したパケットの転送&経路制御


そこで、今回はRoute設定を記載します。
Routing設定の場合、quaggaを使うと、RIPやOSPF果てはBGPまでもが、
CiscoライクなShellで動作するステキなルータになってくれます。


余談ですが、そこそこのメモリを積んだマシンでquaggaにてBGPを動作させると
The Internet上でフルルートの送受信もできちゃったりするスグレものですw


それでは行ってみよう!

1.テンポラリRoute設定

設定後、OS再起動すると消えるRoute設定方法です。
OS再起動後は再度Router設定する必要があります。

route add -net <NWアドレス> gw <GWアドレス> metric <メトリック> netmask <ネットマスク> <Interface>


具体例を以下に記載します。

以下のrouteコマンドにて現在のroute設定を確認しておきます。

# route

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.11.0    *               255.255.255.0   U     0      0        0 eth0

以下のコマンドでroute設定を実施

route add -net 172.16.0.0 gw 192.168.11.1 metric 10 netmask 255.255.0.0 eth0

再度、routeコマンドにて設定後のroute確認

# route

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.11.0    *               255.255.255.0   U     0      0        0 eth0
172.16.0.0      192.168.11.1    255.255.0.0     UG    10     0        0 eth0

2.パーシステンスRoute設定

設定後、OS再起動してもRoute設定が消えないようにする方法です。


以下のコマンドにてファイルを開きます。

vi /etc/sysconfig/network-scripts/route-eth0


ファイルを開いたら以下のように設定することでRoute設定ができます。

ADDRESS0=172.16.0.0
NETMASK0=255.255.0.0
GATEWAY0=192.168.11.1

ADDRESS1=172.17.0.0
NETMASK1=255.255.0.0
GATEWAY1=192.168.11.1

ADDRESS2=172.18.0.0
NETMASK2=255.255.0.0
GATEWAY2=192.168.11.1


このときのポイントとして、NexthopにGWアドレスを設定しますが、
route addコマンドのようにInterfaceを指定する箇所はありません。
その代わり、ファイル名でとして、指定しています。


従って、GWアドレスとInterfaceが同一ネットワークとなるよう、
ファイルなどを事前に確認するようにしてください。

networkサービスの再起動を実施

以下のコマンドでnetworkサービスを再起動

/etc/rc.d/init.d/network restart


念のため、Route確認を実施

routeコマンドにて設定後のroute確認

# route

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.11.0    *               255.255.255.0   U     0      0        0 eth0
172.18.0.0      192.168.11.1    255.255.0.0     UG    0      0        0 eth0
172.16.0.0      192.168.11.1    255.255.0.0     UG    0      0        0 eth0
172.17.0.0      192.168.11.1    255.255.0.0     UG    0      0        0 eth0

以上です。


次回以降はWindowsネタにも触れていきたいと思います。
加えて、最近話題のFCoEネタを取り上げたいなぁと思っています。