腕に組み込まれたシステムの下で、pppoe ダイヤルアップ クライアントを移植し、pppoe ダイヤルアップを使用してインターネットにアクセスする方法を教えます。

I. 概要

PPPoE (英語: Point-to-Point Protocol Over Ethernet) は、イーサネット上のポイントツーポイント プロトコルであり、ポイントツーポイント プロトコル (PPP) をイーサネット フレームワークにカプセル化するネットワーク トンネル プロトコルです。PPPプロトコルはプロトコルに統合されているため、従来のイーサネットでは実現できなかった認証、暗号化、圧縮などの機能を実現することができ、ケーブルモデムやデジタル加入者線(DSL)などのイーサネットプロトコルにも使用でき、ユーザーにさまざまな機能を提供します。サービスにアクセスするためのプロトコル システム。
基本的に、これはイーサネット ブロードキャスト ドメイン内の 2 つのイーサネット インターフェイス間にポイントツーポイント トンネルを作成できるようにするプロトコルです。
Linux システムで一般的に使用される pppd を例に挙げると、PPP インターフェイス上で IP、IPv6、および IPX ネットワーク層プロトコルをサポートします。
従来の PPP ベースのソフトウェアを使用して、シリアル回線ではなく、イーサネットに似た直接パケット ネットワークを使用する接続を管理します。ログインとパスワードを使用したこの標準接続により、アクセス プロバイダーへの請求が容易になります。さらに、接続の相手側は PPPoE 接続の確立時にのみ IP アドレスを割り当てるため、IP アドレスを動的に再利用できます。
PPPoE は、UUNET、Redback Networks、および RouterWare によって開発されています。RFC 2516 ノートで公開されています。(出典: 百度百科事典)
pppoe ダイヤルアップ インターネット アクセスは一般にホーム ネットワークで使用され、オペレーターがブロードバンドを家庭に接続した後、光モデムで pppoe ダイヤルアップ機能を設定し、アカウントとパスワードを入力してログインします。 , そのため、コンピュータをネットワークや他のデバイスに接続するときに、インターネットにアクセスするためにダイヤルアップする必要はありません。これは、光モデムにはダイヤルアップ機能があり、現在の光モデムにはダイヤルアップ機能があるためです。ルーターに接続すると、dhcp 機能が使用され、インターネットを閲覧するために IP アドレスが割り当てられます。

2. 移植プロセス

移植プロセスは主に次の部分で構成されます。カーネルは PPPoE 機能をサポートする必要があり、pppd をコンパイルし、pppoe をコンパイルする必要があります。

1. カーネル構成

この部分はカーネル構成であり、カーネルが pppoe をサポートする必要があります:
make menuconfig コマンドを使用してカーネルを構成します。次の構成を参照して、pppoe に関連するすべてのオプションを選択できます。
ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します
構成が完了したら、カーネルを再コンパイルしてデバイスに再プログラムすることを忘れないでください。

2.pppdツールのコンパイル

クロスコンパイルが必要なため、オンラインでダウンロードできる ppp ソース コードを使用する必要があります: https://download.samba.org/pub/ppp/
ここに画像の説明を挿入します
ここでダウンロードしたバージョンは ppp-2.4.1 バージョンです。ダウンロードが完了したら解凍し、ppp-2.4.1 ディレクトリに入り、次のコマンドを実行します。

./configure
make CC=arm-linux-gcc   // 交叉编译链替换成自己的

実行が完了すると、pppd 実行可能プログラムが pppd ディレクトリに生成されます。pppd を開発ボードの /usr/sbin ディレクトリにコピーし、実行権限を付与することを忘れないでください。カーネルとpppdを移植した後、ボード上でpppdを実行できるようになりますが、通常であれば文字化けが発生する程度で移植は成功しています。

3. pppoe ツールのコンパイル

pppoe のコンパイルは pppd と似ていますが、コンパイル手順については後で詳しく説明します。まず、rp-pppoe のソース コードをダウンロードするためにオンラインにアクセスします。オンライン記事に記載されている公式 Web サイトのアドレスにログインできません。まだメンテナンス中かどうかはわかりません。別のアドレスは次のとおりです。公式 Web サイトの場合もあります: https://src.fedoraproject.org/repo/pkgs/rp-pppoe/この Web サイトから目的のバージョンのソース コード ファイルをダウンロードできます:
ここに画像の説明を挿入します
ダウンロード後に解凍します。バージョン 3.8 をダウンロードした場合は、「rp-pppoe-3.8 /src ディレクトリを実行」と入力します。

./configure

設定後、Makefile ファイル内のコンパイル チェーンを手動で変更する必要があります。これは、設定ファイル内のクロスコンパイル チェーンの設定が有効にならないためです。ファイル内の gcc および ar を、対応するコンパイル チェーンに変更してください。libevent ディレクトリ内の Makefile も忘れずに変更してください。
修正後はコンパイルが可能で、makeを実行すると、pppoe-relay、pppoe-server、pppoe-sniff、pppoeの実行プログラムが生成されるので、これらのプログラムをまとめて開発ボードの/usr/sbinディレクトリにコピーします。
いくつかの設定ファイルも一緒にコピーされています。script ディレクトリ内の pppoe-init、pppoe-stop、pppoe-start、pppoe-setup、pppoe-status、および pppoe-connect を開発ボードの /usr/sbin ディレクトリにコピーします。
開発ボード ファイル システムの etc ディレクトリに新しい ppp フォルダを作成し、rp-pppoe フォルダの下の configs フォルダ内のすべてのファイルを新しく作成した ppp にコピーします。

3. pppoe パラメータを設定する

すべてのツールが開発ボードにコピーされたら、pppoe-setup を実行して構成を開始します。

最初に設定する必要があるのは、pppoe サーバーに割り当てられたアカウント名です。実際に割り当てられているものに従って入力します。
ここに画像の説明を挿入します

2 番目の構成はネットワーク カード名です。実際のネットワーク カード名に従って入力します。
ここに画像の説明を挿入します

3 つ目は、オンデマンドでリンクが表示されるように設定することです。「no」と入力するだけです。
ここに画像の説明を挿入します

4 番目は、DNS の設定です。ここでは 114.114.114.114 を入力しました。よくわからない場合は、サーバーを入力することもできます。
ここに画像の説明を挿入します

5 番目の構成パスワード:
ここに画像の説明を挿入します

6 番目はファイアウォールを設定することです。0 はファイアウォールを有効にしないことを意味します。
ここに画像の説明を挿入します

最後に、y を入力して設定ファイルに保存します。設定作業はこれで終了します。pppoe-start コマンドを使用してダイヤルアップ接続を行うように求められます。

4. ノード情報の作成

pppoe-start実行時に/dev/ptsノードディレクトリが存在するか確認する必要があり、存在しない場合は手動で作成する必要があります。
pts と入力し、ノード mknod 0 c 136 0; mknod 1 c 136 1 を作成します。136は何を表しているのでしょうか?調べてみたところ、最終的に Linux カーネルのドキュメントでこれを見つけました。
ここに画像の説明を挿入します

五、pppoeサーバー構築

上記で構築したデバイス側の環境が正常に動作するかテストしたい場合は、テスト環境pppoeサーバーを構築する必要があります。
この作品についてはまた別の記事で紹介していきますので、お楽しみに!

おすすめ

転載: blog.csdn.net/weixin_37926485/article/details/130853993