다음과 같은 시스템이 있습니다.
+----------+ +--------+ +--------+
| | | | | |
| 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을 보낼 수 있습니다.
핑하고, 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
다른 컴퓨터에도 매우 유사한 설정이 있는데 완벽하게 작동하므로 Netgear 라우터인 것 같습니다. 이 작업을 수행하는 데 필요한 것이 무엇인지 아는 사람이 있습니까?
답변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 주소를 전환하면 매력처럼 작동하기 시작했습니다.