- - PR -
mgettyを改造して擬似モデムにしたい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-02-11 15:00
mgettyを改造して擬似モデム(RASサーバー)を作成し、PCからその
擬似モデム(RASサーバー)を使用してLAN通信できるか試してます。 しかし、どのようにダイアルアップ接続からLAN通信へと変化させれ ばよいかわからないため、アドバイスを頂ければ幸いです。 ■テスト環境 ・ネットワーク構成 PC(WindowsXP) → VM CentOS5.1(RAS(改造mgetty)) → ルーター → 他PCのWEBサーバーなど ※ PC と VMWare上のCentOS5.1の間のみシリアルケーブル。 後はLANケーブルでつないでいます ※ PC上でVMWareイメージ(CentOS)を起動してます ※ WindowsXP上でモデムクライアントを作成して、実験しています。 ■環境 ・PC WindowsXP SP2 VMware Workstation 6.0.2 ・RAS(改造mgetty)サーバー CentOS5.1 pppd version 2.4.4 mgetty-1.1.33を改造 ■問題 WindowsXP標準のモデムクライアント(*1)からCentOS上の改造mgettyに シリアルケーブルを通じてダイアルアップ接続します。 *1 http://www.inaker.or.jp/user/windows/xp/xp.html 初期化するATコマンドを一通り行なった後、モデムクライアントから ATD(ダイアルコマンド)を改造mgettyに送り、改造mgettyから"CONNECT" をモデムクライアントに送信します。 "CONNECT"を受信するとモデムクライアントからpppパケットを 改造mgettyに送信します。 その後mgettyでpppパケット自動検出(元々のmgetty機能)します。 ※ ここまでの環境や改造は問題なく動きました ここからが問題です。 pppパケットを検出した後、LANにそのパケットをフォーワードして、 他PCとLAN通信(TCP/IP通信)させてやりたいのですが、どのように (環境を整えたり、ソースを変更したり)すればよいかわかっており ません。 本来mgettyではpppフレームを受信すると、pppdコマンドをexecvで 実行して、引数で指定したシリアルポートを使用し、モデムと連携 してTCP/IP通信を試みようとすると思います。 これをシリアルポートではなくLAN(eth0)に変えLAN通信できるよう にしたいのです。 mgettyコマンド例) mgetty -a /dev/ttyS0 -x9 -s 19200 ↑ 本来ならこのシリアルポートがモデムに繋がっているイメージ。 やろうとしている事は擬似モデムなので、このシリアルポートで ATコマンドを受信し、eth0を使用してLAN通信を行ないたい pppoe通信が絡むのではないかと思い、adsl-startやらadsl-status などを見ているのですが、どのように応用したらよいかわからない 状態です。 ■mgetty改造箇所 ・シリアルポートでATコマンドを待ち受けるよう、ループ制御を入れる ・シリアルポートでATコマンドを認識すると、全て"OK"を返却 ・ダイアルコマンド"ATDXX"が来たら無条件に"CONNECT"を返却 ・"CONNECT"返却後はPPPフレームを検出する処理に進ませる 大変お手数ですが、どなたか何かご存知であればアドバイスを頂け れば幸いです。 不明な点やご指摘等あれば、補足致します。 |
|
投稿日時: 2008-02-13 00:16
winからシリアル経由でCentOSには接続できていて、pppdが接続を受け付け
ており、IPアドレスも割り当てられてるってことですよね? であれば、あとはip foward の設定をすればいけそうな気がします。 ttyS0のIPアドレス→LAN用NICのIPアドレス の転送ができればOK でしょう。 まずカーネルオプションの net.ipv4.ip_forward = 1 にして、 iptablesのFORWARDテーブルに転送の定義を追加すればOK 次を参考におためしあれ。 http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/ja/security-guide/s1-firewall-ipt-fwd.html |
|
投稿日時: 2008-02-19 18:00
返事が遅くなり大変申し訳ありません。
ご指摘頂いたアドバイスをもとに、 net.ipv4.ip_forward = 1 にして、 iptablesのFORWARDテーブルに転送の定義を追加したところ 見事転送することができました!!! ありがとうございました! |
1