私のシナリオは:
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
_には読み取り専用のファイルシステムがあり、ルートの追加と小さな変更のみが可能です。このセットアップは、いくらかトリッキーです:
Host1
がpppサーバーとして機能している場合、問題は簡単に解決できます。デフォルトのルートをクライアントにプッシュするようにpppデーモンを構成するだけです
しかし、Host1
はHost2
を呼び出すものなので、Host1
がデフォルトルートをプッシュする方法がわかりません(そして、手動でこれを設定することは、実際には受け入れられません)...
私にとっての解決策は、ルーティングプロトコルプロセス(ripまたはospf)を使用することです。これにより、これらのプロセスが適切なルーティングテーブルでリンクするタイミングが上がるようにします。
最後に、NATは、インターネットに到達するために、使用されているすべてのIP範囲を含める必要があります