ハンドブック:IA64/ネットワーク/拡張

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:IA64/Networking/Extending and the translation is 100% complete.
IA64 ハンドブック
インストール
インストールについて
メディアの選択
ネットワーク設定
ディスクの準備
stage ファイル
ベースシステムのインストール
カーネルの設定
システムの設定
ツールのインストール
ブートローダの設定
締めくくり
Gentoo の操作
Portage について
USE フラグ
Portage の機能
Init スクリプトシステム
環境変数
Portage の操作
ファイルとディレクトリ
変数
ソフトウェアブランチの併用
追加ツール
カスタムパッケージリポジトリ
高度な機能
OpenRC ネットワーク設定
はじめに
高度な設定
モジュール式ネットワーク
無線
機能の追加
動的な管理


標準関数フック

開始/終了操作に関連して呼ばれる 4 個の関数を、/etc/conf.d/net で定義することができます。これらの関数は、ひとつの関数で複数のアダプタを制御できるように、まずインターフェース名とともに呼ばれます。

preup() および predown() 関数の戻り値は、インターフェースの構成または解除を続行できることを示すためには、0 (成功) であるべきです。もし preup() が 0 以外の値を返した場合は、インターフェースの構成は中止されます。もし predown() が 0 以外の値を返した場合は、インターフェースの構成解除の続行は許可されません。

postup() および postdown() 関数の戻り値は、それらが失敗を示してもすることが何も無いので、無視されます。

${IFACE} は、接続/切断されようとしているインターフェースに設定されます。${IFVAR} は bash が使用できる変数名に変換された ${IFACE} です。

ファイル /etc/conf.d/netpre/post up/down 関数の例
preup() {
  # 有効化する前にインターフェースのリンク状態をテストします。これは
  # 一部のネットワークアダプタでのみ機能し、ethtool パッケージが
  # インストールされている必要があります。
  if ethtool ${IFACE} | grep -q 'Link detected: no'; then
    ewarn "No link on ${IFACE}, aborting configuration"
    return 1
  fi
  
  # 成功時には 0 を忘れずに返します
  return 0
}
  
predown() {
  # スクリプトのデフォルトでは NFS ルートであるかを確認し、その場合は
  # インターフェースの無効化を拒否します。predown() 関数を指定した場合、
  # このロジックが上書きされることに注意してください。このロジックを以下に
  # 示します。残したい場合は使ってください……。
  if is_net_fs /; then
    eerror "root filesystem is network mounted -- can't stop ${IFACE}"
    return 1
  fi
  
  # 成功時には 0 を忘れずに返します
  return 0
}
  
postup() {
  # この関数は例えば、動的 DNS サービスに登録するために使えます。
  # 他の可能性としては、インターフェースが有効化したときにメールを
  # 送受信することがあるでしょう。
       return 0
}
  
postdown() {
  # この関数はほぼ完全性のためだけにここに書いています……。何か気の利いた
  # ことをすることはまだ思い付きません ;-)
  return 0
}
メモ
関数を書くためのさらなる情報いついては、/usr/share/doc/netifrc-*/net.example.bz2 をお読みください。

無線ツール関数フック

メモ
これは WPA サプリカントとともには動作しないでしょう - しかし ${ESSID} および ${ESSIDVAR} 変数は postup() 関数で利用することができます。

アソシエーション機能に関連して呼ばれる 2 個の関数を、/etc/conf.d/net で定義することができます。これらの関数は、ひとつの関数で複数のアダプタを制御できるように、まずインターフェース名とともに呼ばれます。

preassociate() 関数の戻り値は、インターフェースの構成または解除を続行できることを示すためには、0 (成功) であるべきです。もし preassociate() が 0 以外の値を返した場合は、インターフェースの構成は中止されます。

postassociate() 関数の戻り値は、それが失敗を示してもすることが何も無いので、無視されます。

${ESSID} は、システムが接続しようとしている AP の ESSID に完全一致で設定されます。${ESSIDVAR} は bash が使用できる変数名に変換された ${ESSID} です。

ファイル /etc/conf.d/netpre/post アソシエーション関数
preassociate() {
  # 下のコードは leap_user_ESSID と leap_pass_ESSID の 2 個の変数を
  # 追加します。接続しようとしている ESSID に対してこれらの両方を設定して
  # CISCO LEAP スクリプトを実行します
  
  local user pass
  eval user=\"\$\{leap_user_${ESSIDVAR}\}\"
  eval pass=\"\$\{leap_pass_${ESSIDVAR}\}\"
  
  if [[ -n ${user} && -n ${pass} ]]; then
    if [[ ! -x /opt/cisco/bin/leapscript ]]; then
      eend "For LEAP support, please emerge net-misc/cisco-aironet-client-utils"
      return 1
    fi
    einfo "Waiting for LEAP Authentication on \"${ESSID//\\\\//}\""
    if /opt/cisco/bin/leapscript ${user} ${pass} | grep -q 'Login incorrect'; then
      ewarn "Login Failed for ${user}"
      return 1
    fi
  fi
  
  return 0
}
  
postassociate() {
  # この関数はほぼ完全性のためだけにここに書いています……。何か気の利いた
  # ことをすることはまだ思い付きません ;-)
  
  return 0
}
メモ
${ESSID} および ${ESSIDVAR}predown() および postdown() 関数では利用できません。
メモ
カスタム関数を書くためのさらなる情報いついては、/usr/share/doc/netifrc-*/net.example.bz2 をお読みください。