一方:パソコンあり(HostA)ただインターネット接続が可能なNIC。同じスイッチにネットワークカードを持つ別のコンピュータ(HostB)があります。ホストBはいいえインターネットアクセスが設定されていません。 HostA には、デフォルトゲートウェイと DNS サーバーが正しく構成されています。 IPv4を使用しています。ホストオペレーティングシステムはUbuntu 13とFedora17です。
私が望むもの:今HostBもインターネットに接続できることを願っています。iptables
仮想tun / tapデバイスの「特定の」組み合わせ、またはHostAとHostBの間のVPN設定などを使用できますか?
私がすでに知っていてできること:現在、ssh
HostB(ssh -D 9050 UserA@HostA
)でSOCKSベースのプロキシを使用し、このプロキシを介してHostBによって選択された「削除された」アプリケーションへのトラフィックをHostAおよび他の場所にルーティングできます。ただし、残念ながらすべてのアプリケーションを認証できるわけではありません。 HostAに2つのNICがある場合は、いくつかのルールを使用してHostAをゲートウェイに変換し、NIC-1とNIC-2(NIC-1はHostB、NICに接続されています)間でトラフィックをルーティングできることが明らかになりました。iptables
。 -インターネットに2つ)。しかし、HostAに別のネットワークカードを取り付けることは私にとっては不可能です。
PS:私は以前に投稿した内容です。superuser.comにありますが、有用な情報はありません。
編集1:
インターネット情報
ホストA:
:> ip addr
[...]
2: p4p1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether d4:be:d9:d5:46:05 brd ff:ff:ff:ff:ff:ff
inet 192.168.22.9/24 brd 192.168.22.255 scope global p4p1
:> ip route
default via 192.168.22.254 dev p4p1 proto static
192.168.22.0/24 dev p4p1 proto kernel scope link src 192.168.22.9
ホストB:
:> ip addr
[...]
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 30:f9:ed:d9:2e:20 brd ff:ff:ff:ff:ff:ff
inet 192.168.22.234/24 brd 192.168.22.255 scope global eth0
:> ip route
169.254.0.0/16 dev eth0 scope link metric 1000
192.168.22.0/24 dev eth0 proto kernel scope link src 192.168.22.234 metric 1
答え1
ルーティングは「送信先(および場合)」に関するものです。これは単にNICを選択する以上の意味を持ちます。あなたの場合、ルーティングは非常に簡単です。
最も単純な形式(ホストAのすべてのコマンド)で偽装する必要があります。
iptables -t nat -I POSTROUTING -s 192.168.22.234 -j MASQUERADE
たぶん(まだではなく)、配信を許可する必要があります。
iptables -I FORWARD 1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -I FORWARD 2 -s 192.168.22.234 -j ACCEPT
ホストAがホストBのデフォルトゲートウェイとして構成されていると仮定する。
編集1:
少しの会話と議論の終わりに、状況はより明確になりました。理論的には、Bにデフォルトゲートウェイを設定するだけで十分です。しかし、ゲートウェイ(質問の管理下にない)がホストBをブロックしているようです。したがって、胃腸ソリューションが必要です。