web-dev-qa-db-ja.com

私が呼び出したインターフェースppp0にインターネットをルーティングする方法は?

私のシナリオは:

  • _Host1_は、インターフェース_eth0_を介してインターネットに接続しています。
  • _Host1_ダイヤルアップ_Host2_およびPPPそれとの接続を確立します。
  • _Host2_はインターネットにアクセスできません。
  • _Host1_は、このインターフェースを使用して_Host2_とインターネット接続を共有する必要があります_ppp0_;

だから、私は基本的にこれを持っていると思います:

_(internet) <eth0> === Host1 === <ppp0> === Host2_

これは_Host1_からです:

_# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:ac:11:00:02  txqueuelen 0  (Ethernet)
        RX packets 7409  bytes 29789661 (28.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5933  bytes 422162 (412.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 28  bytes 2352 (2.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 28  bytes 2352 (2.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.100.0.2  netmask 255.255.255.255  destination 10.100.0.1
        ppp  txqueuelen 3  (Point-to-Point Protocol)
        RX packets 5  bytes 78 (78.0 B)
        RX errors 2  dropped 0  overruns 0  frame 0
        TX packets 5  bytes 90 (90.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
_

これは_Host2_からです:

_# ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0

ppp0      Link encap:Point-to-Point Protocol
          inet 10.100.0.1  P-t-P: 10.100.0.2 Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
          RX packets:5 errors:1 dropped:0 overruns:0 frame:0
          TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
_

提案された here のように、iptablesを使用してインターフェイス間のトラフィックを転送しようとしました。

_Host2_で、gw _ppp0_を使用して、開発者_10.100.0.2_のデフォルトルートを追加しました。これは、_Host1_のIPです。

なにか提案を?私はネットワーキング技術に本当に慣れていません。

最も重要な発言は次のとおりです。

  • _Host1_は、_Host2_を呼び出すものです。
  • _Host1_では、私は好きなように操作できますが、_Host2_には読み取り専用のファイルシステムがあり、ルートの追加と小さな変更のみが可能です。
1
Thiago Melo

このセットアップは、いくらかトリッキーです:

Host1がpppサーバーとして機能している場合、問題は簡単に解決できます。デフォルトのルートをクライアントにプッシュするようにpppデーモンを構成するだけです

しかし、Host1Host2を呼び出すものなので、Host1がデフォルトルートをプッシュする方法がわかりません(そして、手動でこれを設定することは、実際には受け入れられません)...

私にとっての解決策は、ルーティングプロトコルプロセス(ripまたはospf)を使用することです。これにより、これらのプロセスが適切なルーティングテーブルでリンクするタイミングが上がるようにします。

最後に、NATは、インターネットに到達するために、使用されているすべてのIP範囲を含める必要があります

1