Fletsを使っていると、プロバイダとfletsのマルチセッションのpppoeを張りたくなる。
しかし、FreeBSDの/etc/rc.d/ppp スクリプトはマルチセッションには対応していないので、以下の方法を使うとマルチセッションにできる。(と思う、けど、なんと言ってもうちはOSの起動時にネットワーク系の初期化がうまくいかないので・・・。たぶん、jailに合わせてListenアドレスを限定しているせいだと思うんだけど)
前提条件は、以下。
  • プロバイダにtun0、fletsにtun1で繋ぐ。
  • ppp.confでのプロバイダのラベルはinternet、fletsはfletsとする。
  • プロバイダに繋ぐときのコントロールソケットは /var/tmp/internet
  • fletsに繋ぐときのコントロールソケットは /var/tmp/flets
で、手順。
  1. /etc/rc.d/ppp スクリプトの変更(プロバイダ用)
    *** /usr/src/etc/rc.d/ppp       Sat Nov  4 04:28:02 2006
    --- ppp Fri Feb 16 17:07:48 2007
    ***************
    *** 14,19 ****
    --- 14,20 ----
      command="/usr/sbin/${name}"
      start_precmd="ppp_precmd"
      start_postcmd="ppp_postcmd"
    + pidfile=/var/run/tun0.pid
    
      ppp_precmd()
      {
    ***************
    *** 36,41 ****
    --- 37,43 ----
            esac
    
            rc_flags="$rc_flags ${ppp_profile}"
    +       rm -f /var/tmp/internet
      }
    
      ppp_postcmd()
    
  2. /etc/rc.d/ppp-flets スクリプトの作成 /etc/rc.d/ppp を /etc/rc.d/ppp-flets としてコピーし、以下を変更する。
    *** ppp Fri Feb 16 17:07:48 2007
    --- ppp-flets   Fri Feb 16 17:10:43 2007
    ***************
    *** 9,20 ****
    
      . /etc/rc.subr
    
    ! name="ppp"
      rcvar=`set_rcvar`
    ! command="/usr/sbin/${name}"
      start_precmd="ppp_precmd"
      start_postcmd="ppp_postcmd"
    ! pidfile=/var/run/tun0.pid
    
      ppp_precmd()
      {
    --- 9,20 ----
    
      . /etc/rc.subr
    
    ! name="ppp_flets"
      rcvar=`set_rcvar`
    ! command="/usr/sbin/ppp"
      start_precmd="ppp_precmd"
      start_postcmd="ppp_postcmd"
    ! pidfile=/var/run/tun1.pid
    
      ppp_precmd()
      {
    ***************
    *** 36,43 ****
                    ;;
            esac
    
    !       rc_flags="$rc_flags ${ppp_profile}"
    !       rm -f /var/tmp/internet
      }
    
      ppp_postcmd()
    --- 36,43 ----
                    ;;
            esac
    
    !       rc_flags="$rc_flags ${ppp_profile_flets}"
    !       rm -f /var/tmp/flets
      }
    
      ppp_postcmd()
    
  3. /etc/rc.confにflets用の記述を追加(下2行)
    ppp_mode="ddial"
    ppp_nat="NO"
    ppp_enable="YES"
    ppp_profile="-unit0 internet"
    ppp_flets_enable="YES"
    ppp_profile_flets="-unit1 flets"
    
変更点を大雑把に説明すると、以下のような感じ。
  • デフォルトでは、commandのプロセスが起動しているかどうかを判定するので、代わりにpidファイルでチェックするように変更。
  • たまにpppの死に方によってコントロールソケットが残るので、rmするように変更。(本当は、rc.confの変数にする方がスマートだけど、スクリプトに直書き)

/etc/rc.subrのおかげで便利になってるんだろうけど、使い方がわかってないと恩恵にあずかれないね。本当はもっとスマートにできるのかも知れない。

カテゴリ

トラックバック(0)

このブログ記事を参照しているブログ一覧: ppp multi session

このブログ記事に対するトラックバックURL: https://www.wizard-limit.net/cgi-bin/mt/mt-tb.cgi/1147

コメントする

このブログ記事について

このページは、falseが2007年2月16日 16:43に書いたブログ記事です。

ひとつ前のブログ記事は「セカンダリDNSサーバ変更」です。

次のブログ記事は「OpenPNEバージョンアップ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

広告

Powered by Movable Type 6.1.1