/etc/sysconfig/network-scripts/ifcfg-xxx

2008/12/20PC::Linux/BSD

Red Hat系のディストリビューションでのネットワークデバイスの設定ファイルの書式メモ。

設定項目

  1. DEVICE
  2. BOOTPROTO
  3. ONBOOT
  4. HWADDR
  5. IPADDR
  6. NETWORK
  7. NETMASK
  8. BROADCAST
  9. GATEWAY
  10. USERCTL
  11. TYPE

各設定項目の説明と、取るべき値

1. DEVICE

ネットワークデバイス名。デバイス名は/etc/modprobe.confにて設定されているエイリアスでかつ、ifcfg-eth0ファイルであれば"eth0"を指定する必要がある。

2. BOOTPROTO

IPアドレスを外部から取得する場合のプロトコル。

none, static
インターフェイス起動時にプロトコルを指定しない。もしくはこのデバイスは静的にIPアドレスを設定する場合。
dhcp
DHCPサーバからIPアドレスを取得する
bootp
BOOTP(BOOTstrap Protocol)を使用する場合

3. ONBOOT

OS起動時にこのインターフェイスを有効にするかの指定

yes
有効
no
無効

4. HWADDR

デバイス名と関連付けるMACアドレスを指定。HWADDRを指定することで、例えばifcfg-eth0にて関連付けられているNICのPCIスロットを変更した場合に、eth0がeth1になることはなく、常にeth0として認識される。

記述例

HWADDR=XX:XX:XX:XX:XX:XX

5. IPADDR

静的IPアドレスを指定する場合のIPアドレスを指定

6. NETWORK

静的IPアドレスを指定する場合のネットワークアドレスを指定

7. NETMASK

静的IPアドレスを指定する場合のネットマスクを指定

8. BROADCAST

静的IPアドレスを指定する場合のブロードキャストアドレスを指定

9. GATEWAY

静的IPアドレスを指定する場合のゲートウェイアドレスを指定

10. USERCTL

インターフェイスの有効/無効化の制御をユーザ権限で実行可能にするかの指定

yes
ユーザ権限で切替可能
no
ユーザ権限で切替不可

11. TYPE

インターフェイスの種類を指定。イーサネットなら値は"Ethernet"

MIKO GNYO/Linux 3.6 on USBメモリ

2008/12/06PC::Linux/BSD

MIKO GNYO/Linux 3.6をUSBメモリ上にインストールしたときのメモ。MIKO GNYO/LinuxのオフィシャルでUSBメモリにインストールする方法が公開されていますが、いくつかわかりづらい点があったので記事化。

用意するもの

  • MIKO GNYO/Linux 3.6 *1
  • 1GB以上のUSBメモリ*2
  • Linux or Windows端末
  • syslinux

*1 : isoファイルのままでも構いませんが、中のファイルを取り出せる必要があります

*2 : MIKO GNYO/Linux 3.6にて提供されている仮想マシンイメージをインストールする場合は8GBクラスのUSBメモリが必要です

用意したもの

手順

仮想マシン機能を利用しない場合の手順。

  1. USBメモリをFAT/FAT32でフォーマットする*3
  2. USBメモリの空き容量を1GB以上確保する
  3. MIKO GNYO/Linux 3.6のDVDメディア上のファイルのうち、vmフォルダ内のファイル*4以外の全てをUSBメモリに転送する
  4. 以下のファイルをリネームする
    • isolinuxフォルダをsyslinuxに
    • isolinuxフォルダ内のisolinux.cfg、isolinux.txtをsyslinux.cfg、syslinux.txtに
  5. ダウンロードしてきたsyslinuxを展開するとwin32フォルダの中にsyslinux.exeがあるので、コマンドプロンプトから「syslinux -ma X:*5」を実行しブートローダをインストールする。

*3 : 既にフォーマットされている場合は必要ありません

*4 : 仮想マシンイメージです

*5 : XはUSBメモリのドライブレター

動作確認

USBメモリからのブートをサポートする適当なマシンで起動させてMIKO GNYO/Linuxが起動すれば成功です。私はThinkPad X41でテストしました。

所感

  • MIKO GNYO/Linux自体はUbuntuのLive CDをベースとしているようで自分が欲しい環境がない。
  • CD/DVDブートイメージをそのままUSBメモリブートイメージとしているので、それまでの変更はシャットダウンしてしまうと消去されてしまいます*6
  • USBメモリのパーティションを切るとかの操作はしていないので、MIKO GNYO/Linuxのイメージと通常のUSBメモリの共存は可能。

自分の環境が保持できない以上*7持ち運びしやすいLive CDと変わりません。バリバリにカスタマイズしたLinux環境が欲しいのであれば8GBクラスのUSBメモリのパーティションを切ってLinux環境をインストールした方が幸せになれそうです。

と、いうわけで次回予告。「USBメモリにLinux環境をネイティブインストールする」

*6 : つまりLive CDで動作させているのと変わらない

*7 : 方法はあるのでしょうけど面倒くさそう

[CentOS] ボンディングを構成する

2008/12/01PC::Linux/BSD

09/04/16 大幅に修正

複数のネットワークインターフェイスを束ねて冗長性や負荷分散を行う技術を、Linuxではボンディングと呼ばれるドライバにより実現しています。CentOSでボンディングを構成したときのメモ。
CentOS 5.2にてテストしましたがRed Hat系のディストリビューションであれば適用できるかと思われます。

環境

  • CentOS 5.2 on VMware Server 1.0.6
  • 仮想NIC × 2
  • ホストマシン搭載物理NIC数: 3

構成してみる

ここで、eth0, eth1のようにネットワークデバイスがすでに利用できる状況になっていることが前提となります。

eth0とeth1をボンディングし、ネットワークデバイスbond0を、eth2とeth3をボンディングしネットワークデバイスbond1を生成する場合の手順は以下の通り。

1. /etc/modprobe.d/bonding を作成

以下の要領でボンディングインターフェイスの数だけ定義する。

alias bond0 bonding
alias bond1 bonding

ボンディングインターフェイスが1つ、もしくは複数のボンディングインターフェイスにて同一の設定を行う場合は次のようになる。

alias bond0 bonding
alias bond1 bonding
    options bonding mode=[N] miimon=100
# この場合、bond0, bond1にて設定されるmode, miimonの値は同一となる
# 設定パラメータについては後述

2. /etc/sysconfig/network-scripts/ifcfg-eth[0-3] を編集

マスターデバイスの指定とスレーブデバイスであることを設定する。HWADDRの値はMACアドレスとモジュールのエイリアスを固定する為にも必ず設定することを推奨

DEVICE=eth[0-3]
HWADDR=xx:xx:xx:xx:xx:xx
BOOTPROTO=none
USERCTL=no
ONBOOT=no
MASTER=bond[0|1]
SLAVE=yes

3. /etc/sysconfig/network-scripts/ifcfg-bond[0|1] を編集

通常eth0などに記載する内容をここに記載する。

DEVICE=bond[0|1]
IPADDR=xxx.xxx.xxx.xxx
NETMASK=xxx.xxx.xxx.xxx
NETWORK=xxx.xxx.xxx.xxx
BROADCAST=xxx.xxx.xxx.xxx
GATEWAY=xxx.xxx.xxx.xxx
ONBOOT=yes
USERCTL=no
# /etc/modprobe.d/bondingでoptionsを設定指定しない場合、
# 以下にボンディングポリシーを記載する
BONDING_OPTS="mode=[N] primary=ethX miimon=100 updelay=500"
# 設定パラメータについては後述

4. ネットワークの再起動

# service network restart

bondingモジュール設定パラメータ

mode: ボンディングポリシー

modeに設定可能な値と機能・制約について述べる

0: balance-rr

障害耐性とロードバランシングに対するラウンドロビンポリシー

制約
Ether ChannelなどのTrunkingをサポートするネットワークスイッチと接続する必要がある

-送信時: 1パケットごとにスレーブされたインターフェイスが順に使用される。

  • 受信時: ネットワークスイッチ側の判断で使用されるスレーブインターフェイスが決定する
1: active-backup

障害耐性に対するアクティブ バックアップ ポリシー
ネットワークの障害耐性を最大限に高めたい場合に適用

制約
ネットワークスイッチに特別な機能は必要ない

-1つのアクティブインターフェイスのみ使用し、アクティブインターフェイスの障害時にはスレーブされた他のインターフェイスに切り替わる

2: balance-xor

障害耐性とロードバランシングに対するXORポリシー

制約
Ether ChannelなどのTruningをサポートするネットワークスイッチと接続する必要がある

-送信アダプター: 送信先のMACアドレスをキーとするハッシュで選択される

  • 受信アダプター: ネットワークスイッチ側の判断で選択される
3: broadcast

障害耐性用のブロードキャストポリシー

  • 全てのアダプターからパケットを送出する。
  • 特殊なネットワーク構成において使用するもので通常の環境では使用できない。
4: 802.3ad

IEEE 802.3ad ダイナミック リンクアグリゲーションポリシー

制約
IEEE 802.3adに対応したネットワークスイッチが必要

-IEEE 802.3ad Link Aggrigationの規格による接続(同じスピードとデュプレックス設定を共有するアグリゲーションを作成し、アクティブなアグリゲーション内全てのスレーブインターフェイス上で送受信を行う)

5: balance-tlb

障害耐性とロードバランシング用の送信ロードバランシング(TLB)ポリシー

制約
ネットワークスイッチに特別な機能は必要ない

-送信: アダプターの速度、負荷に応じて選択される

  • 受信: 1つのアクティブアダプターのみを選択し、障害時には他のアダプターに切り替えられる
6: balance-alb

障害耐性とロードバランシング用のアクティブロードバランシング(ALB)ポリシー

制約
ネットワークスイッチに特別な機能は必要ない

-送信: アダプターの速度、負荷に応じて選択される

  • 受信: アダプターの速度、負荷に応じて選択される。ただし、通信相手のIPアドレスに応じて固定したアダプターを使用する(通信相手のARPテーブルに登録されるMACアドレスを変更することで受信アダプターを選択する(ARPネゴシエーション)ため、ルータ越しの通信の場合、常に同じアダプターが使用される)
スイッチの冗長構成を取る場合

active-backupポリシーが最適かと思われるが、balance-tlb, balance-albでもいけそう(未検証)。

primary: プライマリアダプター

mode=1 (Active-Backup)モードにて、起動時に優先的にアクティブアダプターとして使用するアダプタのエイリアス(eth0など)を指定。

miimon: MII(Media Independent Interface)リンク監視

MII規格のリンク情報を利用する。つまり、MIIのリンクダウンイベントのみを見ているので物理アダプタのドライバモジュールが検知できない障害(ネットワークスイッチより先の接続障害)は検知できない。デフォルトは100(ms)。

updelay: MII管理リンクアップ遅延時間

MIIリンク監視によるリンクアップを検知後、対象のアダプタをアクティブにするまでの遅延時間を指定する。miimonの整数倍の値にする必要がある

参考

2008/11/30(日)お勉強

とある本を利用して某OSの機能に関するお勉強をしているのですが、微妙。

何が微妙かというと

  • 何度も同じような説明が節毎に存在する
  • 段落毎に1つの機能について説明しているのではなく、何故か段落をまたがって説明されている
  • しかも段落でまとまりがなく、1つの段落で複数の話題を扱っていたりする
  • 妙に一文が長く、「で、結局何が言いたいのか」と問い詰めたくなる
  • 用語が出てくるときにそこまで説明する必要があるのかと
    • IDEが出てくる例: IDE(Integrated Drive Electronics)ディスクでは~

わざとわかりづらくしているようにしか思えない。
試しに箇条書きにしてみたら紙面の半分以下で非常にわかりやすくなったorz

sigmarion IIIをパートナーシップを結ばずにLAN経由で同期する

2008/11/29PDA::sigmarion3

普段Kubuntu環境しか利用していない身として、sigmarion IIIと同期を取る為だけにWindows環境を起動させたくありません。できればVMware Serverの仮想OS*1上にインストールしたActiveSyncと同期を取らせることができれば、再起動の手間とかがなくなり非常に便利です。

が、VMware Serverにて提供されるUSBエミュレーションではsigmarion IIIをUSB接続するとsigmarion IIIがフリーズしてしまい同期どころではありません*2。どうしたものかと考えていましたが、ActiveSync 3.xまではCEデバイスとパートナーシップを結んだ後はLAN経由で同期を取ることができます。

これはVMware Server上に構築されたActiveSync 3.8 on Windows 2000環境とパートナーシップを結ばずに無線LAN接続する方法について奮闘したときのメモ。

*1 : Windows 2000 Professional

*2 : ちなみにAdvanced W-ZERO3[es]はVMware Server上の仮想マシン(ActiveSync 4.5 on Windows 2000)と問題なく利用できました

環境

ActiveSyncホスト(仮想環境)

  • VMware Server 1.0.6 on Debian GNU/Linux 4.0(etch)/i386
  • Windows 2000 Professional SP4
  • コンピュータ名: vm-host
  • ActiveSync 3.8日本語版

ActiveSyncホスト(Windowsネイティブ環境)

  • Windows 2000 Professional SP4
  • コンピュータ名: native-host
  • ActiveSync 3.8日本語版

接続対象CEデバイス

  • NTT DoCoMo sigmarion III
  • CEデバイス名: sig3

パートナーシップ情報の取得

とりあえず、ネイティブ動作するWindows環境下でActiveSyncとsigmarion IIIとのパートナーシップを構成します。パートナーシップが構成できたら、母艦のレジストリエディタにてHKEY_CURRENT_USER\Software\Microsoft\Windows CE Service\Partners\01234567*3をエクスポートします。

エクスポートされたファイルを適当なエディタ*4で開き、以下のコメントに記述されたキーの値を適合するように編集。

[HKEY_CURRENT_USER\Software\Microsoft\Windows CE Services\Partners\01234567]
"Schedule Option"=dword:00000000
#CEデバイス名に変更
"DisplayName"="sig3"
"DeviceType"="Jameson"
"Description"=""
#母艦上に作成する同期用フォルダを指定
"DataFolder"="C:\\Documents and Settings\\Username\\Application Data\\Microsoft\\ActiveSync\\Profiles\\sig3"
"Processor"=""
"ProcessorType"=dword:00000720
"OemInfo"="PDA for NTT DoCoMo"
"TotalSize"=dword:00000000
"Version"=dword:038c0a04
"Capabilities"=dword:00000110
"ServerMajor"=dword:00000000
"ServerMinor"=dword:00000000
"PimsInstalled"=dword:00000000
[HKEY_CURRENT_USER\Software\Microsoft\Windows CE Services\Partners\01234567\Services\Synchronization\Objects\Appointment]
@="Appointment Object"
"Store"="<*Invalid*>"
"Display Name"="予定表"
"Plural Name"="予定"
#ActiveSyncのインストールパスが異なる場合は正しいパスとなるように編集。
#この例では予定表ですが、チャンネル、連絡先、ファイル、受信トレイ、Pocket Access、仕事も同様に編集します
"DefaultIcon"="C:\\Program Files\\Microsoft ActiveSync\\outstore.dll,-131"
"Disabled"=dword:00000001
"Preserve"="Store,Disabled,DefaultIcon,Display Name,Plural Name"

*3 : 01234567はパートナーシップ構成時に自動的に振られるID。パートナーシップが複数結ばれている場合、このパスに含まれるDisplayNameキーの値がCEデバイス名となっているので、これを基準にエクスポートするパスを判断して下さい

*4 : メモ帳など

VMware Server上の母艦の設定

  1. エクスポートされたレジストリをインポート
  2. レジストリの\HKEY_CURRENT_USER\Software\Microsoft\Windows CE Services\Partners\01234567\DataFolderキーの値のフォルダを作成(上記の例だとC:\Documents and Settings\Username\Application Data\Microsoft\ActiveSync\Profiles\sig3)

CEクライアント側の設定

CEデバイスで動作する適当なレジストリエディタを用いて以下のキーを編集する。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows CE Services\Partners\P1]
#ネイティブ環境のコンピュータ名(native-host)からVMware Server環境のコンピュータ名(vm-host)に変更
"PName"="native-host"
#パートナーシップのID
"PId"=dword:01234567

ここまで設定したら

sigmarion IIIからネットワーク経由でのActiveSyncをかければVMware Server環境下の母艦と同期できるようになります。

参考