PPPoEデバイスの上位ネットワークデバイスを見つける方法

PPPoEデバイスの上位ネットワークデバイスを見つける方法

一点のためにPPPoE ppp0Linuxデバイスの場合、基本的なEthernetデバイスを確実に取得するには?

ip -d linkandディレクトリの出力を見てみましたが、/sys/class/net/ppp0親デバイスまたはpppdプロセスのPIDは言及されていません。

システムで実行されているpppdが1つしかない場合は、「解決方法」があります。

$ cat /proc/net/pppoe
Id       Address           Device
0000516D dc:99:16:c4:58:35 wan.25

この場合、wan.25必要な情報はまさにそれです。

しかし、その「ID」は0000516D他の場所ではPPPデバイスに接続されているのを見たことがありません。それでは、複数のPPPoEインタフェースを区別する方法は何ですか?

答え1

もう一度読むときpppdマンページ私はこれが/var/run/pppd2.tdbMultiLinkにのみ適用されるのではなく、情報が次の場所に保存されることに気づきました。TDB形式

マニュアルページにはファイルを調べる方法が詳しくは記載されていませんが、把握することはできました。

注:オプションが必要です。TDBツールキットまたはあなたのディストリビューションに該当するもの。

$ D="inet"   # The name of your PPPoE interface
$ T="/copy/of/pppd2.tdb"

$ tdbdump $T -k IFNAME=$D
pppd34491
$ cID="pppd34491"

その後、このID "pppd34491"を使用して、このデータベースのコピーでその接続に関する追加の接続情報を見つけることができます。情報はセミコロンで区切られたKey-Valueペアとして保存されるため、表示するには次の情報を渡すことができますawk

$ tdbdump $T -k $cID | awk 'BEGIN{RS=";";FS="="}{print $1" "$2}' |column -t
CALL_FILE   Provider
DEVICE      wan.25
MACREMOTE   So:me:ma:cc:cc:cc
IFNAME      inet
IPLOCAL     MyIPV4
IPREMOTE    PeerIPv4

(あまり興味深い内容は切り取ってください)

関連情報