ネットワーク上の他のコンピュータが要求すると、着信パケットは PPP インターフェイスに到着しません。

ネットワーク上の他のコンピュータが要求すると、着信パケットは PPP インターフェイスに到着しません。

イーサネットケーブルで接続された2台のコンピュータに「ネットワーク」があるとしましょう。マシンMが「マスター」であり、マシンSが「スレーブ」であると仮定する。 Mだけが外部の世界にアクセスできるので、このように名前をつけました。つまり、SにはMに接続するための1つのネットワークインターフェイスしかありません。 MはDebian用、SはWindows用です。

今、MはSが占めるeth0、ワイヤレスルーターに接続するためのwlan0、そして最近の可用性のために追加したppp0を持っています。技術的には、wlan0はwlx.....で、eth0はenpです....しかし、単純化します。

まず、問題にならないのは何ですか?

Mがwlan0を介して接続されたときのすべて。この場合、Sは完全なインターネットアクセス権を持ちます(Mのカーネルで転送を有効にしました)。外部からMにアクセスできます(必要に応じてMを介してSにアクセスすることもできます)。

さて、今はppp0(CDMAモデム)を追加しました。文字通り pppd をインターフェイスに設定する前に設定し、 ifup/ifdown で制御できる「正しい」インターフェイスを持つ前にも pon/poff 操作を実行できました。インターフェイスを設定する必要があるのはなぜですか?この記事の焦点である問題を発見したからです。しかし、「正しい」インターフェースを設定することは役に立ちません。

問題は何ですか?

S(例えば、MではないS)は、Mのppp0が動作していてwlan0がダウンしたときにインターネットアクセスに奇妙な問題がありました。表面的には何も機能しないようです。 Webブラウザが利用できず、外部ホストにpingを送信できません。しかし、外部ホストにpingを送信するときに、MとSのMのppp0で「tcpdump -n icmp」を実行しました。 Sがpingを始めたときに出てくるすべてのicmpパケットを見ることができましたが、着信ICMPパケット!私は外部インターフェイスについて話していることに注意してください。したがって、モデムに入ってくるicmp応答パケットはありません!

それ以外の場合、PPP は M.All プロトコルで期待どおりに動作します。 PPP では、コンピュータが正しいグローバル IP アドレスを取得することが重要です。外部からMへのSSH経由で接続でき、停止やその他の問題なしに通常のSSHセッションを取得できます。ただし、同時に外部ホストでは S を無視します。

どんな提案でも大変感謝します。

修正する:

「ipパス」出力:

1つの無線LAN UP、ppp DOWN

デフォルト値は 192.168.0.1 dev wlan0 onlink です。

10.42.0.0./24 dev eth0プロトタイプカーネルスコープリンクsrc 10.42.0.1

192.168.0.0/24 dev wlan0プロトタイプカーネルスコープリンクsrc 192.168.0.xx

注:192.168.0.1はワイヤレスルーターです。 192.168.0.xxはMのwlan0、10.42.0.1はMのeth0です。

2 wlanダウンリンク、pppアップリンク

デフォルトのdev ppp0範囲リンク

10.42.0.0/24 dev eth0プロトタイプカーネルスコープリンクsrc 10.42.0.1

172.17.4.111 dev ppp0 proto カーネル範囲リンク src xxx.xxx.xxx.xxx

注:xxx.xxx.xxx.xxxはグローバルIPアドレスであり、Mは実際に外部からアクセスできます。

ppp0の「ipアドレス」:inet xxx.xxx.xxx.xxxピア172.17.4.111/32範囲グローバルppp0

ベストアンサー1

MマシンのパブリックIPアドレスの後にSマシンを隠すには、ファイアウォールルールが必要です。

iptables -t nat -A POSTROUTING -o ppp+ -j MASQUERADE

これがうまくいけば、Debian システムから起動するときにロードするいくつかのガイドラインを追加します。

wlan0インターフェースでこれが必要ない理由は、ワイヤレスルーターがすでにこれを実行しているためです。

おすすめ記事