一点のためにPPPoE ppp0
Linuxデバイスの場合、基本的なEthernetデバイスを確実に取得するには?
ip -d link
andディレクトリの出力を見てみましたが、/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.tdb
MultiLinkにのみ適用されるのではなく、情報が次の場所に保存されることに気づきました。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
(あまり興味深い内容は切り取ってください)