[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[plamo:19536] Re: ppp と使用するデバイス
-
From:早間義博
-
Date:Mon, 7 Jul 2003 20:05:50 +0900 (JST)
- Subject: [plamo:19536] Re: ppp と使用するデバイス
- From: 早間義博<yossi@xxxxxxxxxxxxxx>
- Date: Mon, 07 Jul 2003 20:05:17 +0900 (JST)
早間です。
いつもありがとうございます。
> From: 早間義博 <yossi@yedo.src.co.jp>
> Message-Id: <20030707.132258.74750464.yossi@yedo.src.co.jp>
>
> > PPPoE 切断の監視をしているのですが、EtherCard と pppx (ネットワー
> > クデバイスと言うのでしょうか)をつなぐ情報を探しています。
>
> PPPoE が切れたことを検出するだけでしたら、例えば ppp1 なら ppp1 に対し
> て、適当なソケットを作って適当な IOCTL をかけてあげる、というのはひと
> つの手ですね。例えば、
>
PPPoE で2セッションの接続をしているときに、どちらの接続が ppp0 か
というのが判然としないのです。判らないのでは無いですが、情報として
ではなく手順にあるのが気に入らないのです。
/etc/ppp に
options.eth0
options.eth1
のように書いて置けば、どちらの ethx がどこにつながるかは判るのです
が、どちらが ppp0 になったかはコマンドの実行順序によるので、何かの
時には逆転しかねません。また、ppp2 に成らないとも言えないのです。
今は、/etc/ppp/ip-up /etc/ppp/ip-down にまとまって情報が出てくるの
でここに logger を置いて /var/log/messages に
ppp[0-9]
eth[0-9]
ip address
DNS
を出しています。接続の時は ip-up の実行を待てば得られるのですが、
(perl で見ているのですが)
・ pppd eth0 を実行する。
・ tail -f /var/log/messages で ip-up の実行を待つ。
と言う手順です。
同様に、ip-down の情報で pppX ethX に掛かる切断は判ります。
目的は達成しているのですが、些か「美しくない」のです。
# 単に、好みの問題です。
> int sock;
> struct ifreq ifr;
>
> sock = socket(AF_INET, SOCK_DGRAM, 0);
> strncpy(ifr.ifr_name, "ppp1", IFNAMSIZ);
> ioctl(sock, SIOCGIFADDR, &ifr);
>
> で、(struct sockaddr)(ifr.ifru_addr) に IPアドレスが取り出せますので、
> 取り出せれば繋がっていると判断できます。
>
> 詳しくは、man 2 ioctl_list とか /usr/include/linux/if.h とか。
>
> > #/var/log/messages に作成される
> > # pppd[8813]: Connect: ppp1 <--> eth2
> > # のような情報です。
>
> このへんは、極端な話、pppd をいじればどうにかなりそうですが、
>
pppd の ipcp.c の中で ip-up ip-down をコールしているのでここにパッ
チを掛ければ、情報を特定の場所に書き込む事は可能なのです。
パッチしなくても ip-up ip-down に渡されるので、こちらで書けば バー
ジョンに無関係になるので、安全です。
既に組み込まれているものがあれば「そちらを使いたい」と言うことです。
# 自分で作成して悦に入っていると、同一の機能のものが美しく組み込ま
# れていたりして、残念な事があります。調べもせずに漢字変換プログラ
# ムなど、いくつも作成しても major なコードなら nkf ですべて済みで
# す。
> > EtherCard と pppx の関係を知るためには
> > (1) /var/log/messages の次の情報
> > pppd[8813]: Connect: ppp1 <--> eth2
> > (2)/etc/ppp/ip-up 或いは /etc/ppp/ip-down のアーギュメントに
> > 与えられる情報
> > の2つしか無いのでしょうか。
> > (/proc の中を見たのですが見あたりません)
>
> 伝統的に Linux では、ネット関連の情報は /proc には出てこなくて、有用な
> 情報は ioctl() で取り出すしかないような感触があります。
>
> # OS によっては、ifconfig の出力にかなり情報が乗っていたりするのですが。
結局、pppX ethX を結ぶ情報は /proc や /var/run の中には無いと言う
ことですか。
-- 早間 yossi@yedo.src.co.jp
- Follow-Ups
-
- [plamo:19540] Re: pppと使用するデバイス, Shun-ichi TAHARA (田原 俊一)
- References
-
- [plamo:19529] ppp と使用するデバイス, 早間義博
- [plamo:19534] Re: pppと使用するデバイス, Shun-ichi TAHARA (田原 俊一)
[検索ページ]
[メール一覧]
Plamo ML 公開システム