学校のネットワークがある10.0.0.0/8
私は、eth0 に静的に割り当てられた IP10.122.72.2
ゲートウェイとeth1 にローカル ネットワークを使用して Debian を実行しています。10.122.72.1
10.122.2.0/24
問題は、例えば他のネットワークにはアクセスできる10.122.1.0/24
が、外部からローカルネットワークにアクセスできないことです。例えば、ネットワークping 10.122.2.1
から10.122.1.0/24
tracert 10.122.1.1
ローカルネットワークからパケットがどのようにルーティングされたかを教えてください10.122.2.1 -> 10.122.72.1 -> 10.122.1.1
そしてネットワークtracert 10.122.2.1
から10.122.1.0/24
私に10.122.1.1 -> 10.122.254.9 -> request timed out
sudo route -n
これをください:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.122.72.1 0.0.0.0 UG 0 0 0 eth0
10.122.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
10.122.72.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
そしてこれが私の/etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 10.122.72.2
netmask 255.255.255.0
network 10.122.72.0
broadcast 10.122.72.255
gateway 10.122.72.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 202.46.129.2
auto eth1
iface eth1 inet static
address 10.122.2.1
netmask 255.255.255.0
network 10.122.2.0
broadcast 10.122.2.255
これが私のファイアウォールルールです
outif="eth0"
lanif="eth1"
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -t nat -A POSTROUTING -o $lanif -j MASQUERADE
iptables -t nat -A POSTROUTING -o $outif -j MASQUERADE
ローカルネットワークを外部からアクセス可能にするにはどうすればいいですか?
前もって感謝します
答え1
ここでの問題はルーターではありません (少なくとも今のところは)。
tracert
実行した は、パケット10.122.254.9
を次にどこにルーティングするかがわかっていないようです。学校ネットワーク内の他のルーターを、10.122.2.0/24
自分のルーターにルーティングするように設定する必要があります。
これが完了すると、ルーターから NAT を削除できるようになります。
あなたが示した2 つのtracert
結果を考慮すると、ネットワークは次のようになるようです。
IP ルーティングはホップごとに機能します。 にパケットを送信しようとすると10.122.2.1
、次の 2 つの可能性が考えられます。
- 同じサブネット上にいる場合
10.122.2.1
: レイヤー 2 アドレスを見つけてパケットを送信するだけです。 - あなたは別のサブネット上にいます。ルーティング テーブルを調べて、 に近づくサブネット上のルーターを探し
10.122.2.1
、そのレイヤー 2 アドレスを見つけてパケットを送信します。その後、 はあなたと同じ手順に従います。
あなたの場合、10.122.1.0/24
ネットワークに接続しているときに、上記の表現が正しければ、学校が管理するルーター 1 と 2 (送信先がわからない場合は、2 がデフォルト ゲートウェイ) にメッセージを送信できます。
ネットワーク上にいないため10.122.2.0/24
、誰に送信すればよいかわからないので、デフォルト ゲートウェイ、10.122.1.1
つまり学校が管理するルーター 2 に送信します。これは10.122.2.1
どちらとも異なるサブネット上にあり、特別なエントリもないため、デフォルト ゲートウェイに送信され、次におそらくインターネットに送信しようとしますが、プライベート IP 範囲内にある10.122.254.9
ため、その時点で破棄されます。10.122.2.1
ネットワーク上にいる場合は、を通じてアクセス可能な10.122.72.0/24
コンピュータを通知するエントリを追加できますが、別のサブネット上にいるため、を通じてアクセス可能なことを学校管理のルーターに通知する必要があります。 この場合は、学校管理のルーター 1 を、ネットワークが Debian マシンを通じてアクセス可能であることを示す直接エントリで更新し、学校管理のルーター 2 を、ネットワークが学校管理のルーター 1 を通じてアクセス可能であることを示すエントリで更新することになります。10.122.2.0/24
10.122.72.2
10.122.2.0/24
10.122.72.2
学校のルーターを制御しなければ、これは実行できません。最善の方法は、Debian マシンに VPN サーバーを設定し、10.122.2.0/24
VPN 接続を使用してトラフィックをトンネルすることです。