次のシステムがあります。
+----------+ +--------+ +--------+
| | | | | |
| Internet |<--->| Modem |<--->| Router |
| | | | | |
+----------+ +--------+ +--------+
^
|
v
+--------+
| |
+--------->| Switch |<--------+-------------+........ (other Cn computers)
| | | | |
| +--------+ | |
| ^ | |
| | | |
v v v v
+--------+ +--------+ +--------+ +--------+
| | | | | | | |
| A | | B | | C1 | | C2 |
| | | | | | | |
+--------+ +--------+ +--------+ +--------+
ルータのIPアドレスは192.168.xxです。
コンピュータAとBは同じローカルネットワーク(192.168.xyと192.268.xz)にあります。
コンピュータC1〜Cnは、異なるIPアドレス(10.xyz)を使用する子LANにあります。
そのため、BがC1およびCnと通信できるように設定しており、IPアドレスも10.xyzです。
不要なトラフィックをブロックするために、すべてのコンピュータにファイアウォールをインストールしました。外部の人が私のサービスに接続したくありません。
AとBはうまく機能します。私はインターネットに完全にアクセスでき、NTPはうまく動作しています。しかしC1~Cnには問題がある。彼らは外部の世界から何の答えも得られませんでした。パブリックIPアドレスにpingしようとすると、何も戻りません。ただし、問題なくBにpingを送信できます。
ping、DNSを確認し、インターネット上の任意の項目に接続しようとすると、BまたはC1〜Cnのファイアウォールによってブロックされた項目は何も表示されません。だからルーターは犯人だと思います。
ルータは Netgear で、ファイアウォールが有効になっています。私が理解していないのは、パケットがBによって転送されるため、Bが機能している場合(インターネットを参照)、C1からCnに転送されたパケットがBパケットのように動作すると思うということです。私はここで少し迷っています。
転送ルールを表すいくつかの項目は次のとおりですiptables
。
これは設定の一部ですnat
。
Chain POSTROUTING (policy ACCEPT 141 packets, 9904 bytes)
pkts bytes target prot opt in out source destination
857 54781 SNAT all -- * eno1 10.0.5.21 0.0.0.0/0 to:10.5.10.2
FORWARD
ここに基準がありますfilter
。
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
29 1884 bad_tcp_packets all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT tcp -- eno1 eno1 !10.0.5.1 10.0.5.16/28 state RELATED,ESTABLISHED tcp flags:!0x17/0x02
0 0 ACCEPT udp -- eno1 eno1 !10.0.5.1 10.0.5.16/28 state RELATED,ESTABLISHED udp
8 480 ACCEPT tcp -- eno1 eno1 10.0.5.16/28 0.0.0.0/0 tcp
21 1404 ACCEPT udp -- eno1 eno1 10.0.5.16/28 0.0.0.0/0 udp
これらのフラグは、-syn
どの状態テストが重複しているかを示します。私たちは決してあまり気にしません...
最後に、INPUT
チェーンにはRELATED,ESTABLISHED
ブロックされていない返されたパケットもあります。
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
39 5428 ACCEPT tcp -- eno1 * 0.0.0.0/0 10.0.5.1 state RELATED,ESTABLISHED tcp flags:!0x17/0x02
0 0 ACCEPT tcp -- eno1 * 0.0.0.0/0 10.5.10.2 state RELATED,ESTABLISHED tcp flags:!0x17/0x02
他のコンピュータにも非常に似た設定があり、完璧に動作するため、Netjearルータのようです。これを行うために必要なものが何であるかを知っている人はいますか?
答え1
いいね!私はそれを働かせた。
だから...私の他のコンピュータでは、メインコンピュータ(例えばA)は実際にインターネットから固定IPアドレスを取得します。これは、ルータのように動作することを意味します。つまり、そのコンピュータにアクセスするすべての項目はインターネットにアクセスできます。
ただし、他の新しい設定では、コンピュータAはLANにのみ存在し、インターネットに直接接続されません。したがって、to:<ip>
そのコンピュータのAアドレスを使用する必要があり、そこで「失われる」他のローカルアドレスではありません。
Chain POSTROUTING (policy ACCEPT 141 packets, 9904 bytes)
pkts bytes target prot opt in out source destination
857 54781 SNAT all -- * eno1 10.0.5.21 0.0.0.0/0 to:10.5.10.2
^
this had to be A's address 192.168.x.y ---+
それはすべてです。そのIPアドレスを切り替えると、魅力のように動作し始めました。