私はEthernetリンクを介してPiを自宅のコンピュータに接続します。私のコンピュータはワイヤレス接続を介してインターネットに接続されています。私のPiのすべてのインターネットトラフィックを私のコンピュータを介してルーティングしたいと思います。
イーサネットリンクに/ 30サブネットを設定し、2つのサブネットにパスを追加して互いにpingすることができました。
これが私の設定です。
マイコンピュータ:
# IP addresses
eth0 192.168.1.1/30
wlan0 192.168.0.13/24
# IP routes
default via 192.168.0.254 dev wlan0 proto static metric 600
169.254.0.0/16 dev wlan0 scope link metric 1000
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.13 metric 600
192.168.1.0/30 dev eth0 scope link
私のパイ:
# IP address
eth0 192.168.1.2/30
# IP routes
default via 192.168.1.1 dev eth0
default via 192.168.1.1 dev eth0 proto static metric 1024
169.254.0.0/16 dev wlan0 scope link metric 1000
192.168.1.0/30 dev eth0 scope link
マイコンピュータからすべてのトラフィックをeth0からwlan0にルーティングするには、いくつかのルートのみを追加する必要がありますか?それともNATを使用する必要がありますかiptables
?
編集する:
Henrikの回答の後、迷彩を検索したところ、次のことがわかりました。このチュートリアル。
/proc/net
この記事では、彼はディレクトリから2.2xカーネルを見つけ、偽のカーネルサポートが有効になっていることを確認するように言います。
私の4.2.xカーネルでは、彼が言及したファイルを見つけることができませんでしたが*masquerade*.ko
。これは私のカーネルでマスカレーディングがサポートされているという意味ですか?
そうでない場合は、カーネルを再コンパイルせずにそれを設定する方法はありますか?
チュートリアルが終わると、彼は迷彩のためのいくつかのファイアウォールルールを提供します。
最初のものは次のとおりです。
/sbin/ipchains -A input -j ACCEPT -i eth1 -s 0/0 67 -d 0/0 68 -p udp
これは、DHCP要求が「隠し」コンピュータを通過するようにするためです。ところで、PIでIPを手動で修正して必要なくなりましたね。
したがって、2つのルールがあります。
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -s 10.1.199.0/24 -j MASQ
なぜ1つありますかDENY
?
私のサブネットの場合
/sbin/ipchains -A forward -s 192.168.1.0/30 -j MASQ
正しいですか?
編集2:
もっと新しいものが見つかりました地図時間ヘンリークが提供したように。私が追加したファイル
から:/etc/rc.local
iptables -t nat -A POSTROUTING -s 192.168.1.0/30 -o wlan0 -j MASQUERADE
今、変装は動作しているようですが、完全には動作しません。
実際には、IPアドレス(8.8.8.8)を使用してgoogle.comにpingしようとするとうまく機能しますが、URLを使用しようとすると機能しません。
DNSの問題が原因だと思い、/etc/resolv.conf
ファイルにDNS IPを追加しました。しかし、それは何も変えません。
そのため、FirefoxのIPアドレスを使用してDuckDuckgoにアクセスしようとしましたが、成功しませんでした。
ICMPトラフィックのみが転送されるようです。私はWiresharkを使って何が来て、何がeht0
生き残るかを確認しましたwlan0
。
答え1
転送をオンにして(おそらくデフォルトではオンになっている)マスカレーディングを設定する必要があります(特殊タイプのNATの素晴らしい単語ですが、検索する内容を知るのに役立ちます)。