들어오는 모든 연결은 내 기본 라우터의 IP를 사용합니다(라우터 2개 설정).

들어오는 모든 연결은 내 기본 라우터의 IP를 사용합니다(라우터 2개 설정).

다음 하드웨어와 함께 두 개의 라우터 설정을 사용하고 있습니다.

넷기어 WNDR3400V2 - 192.168.1.1 - DD-WRT

Belkin F9K1105 v1 - 192.168.1.50 - 재고 FW

Belkin은 웹서버가 연결된 스위치로 설정되어 있습니다.

[인터넷] -> 넷기어 -> 벨킨 -> 서버

내부적으로 접속시 내 IP를 적절하게 기록합니다.(예: 192.168.1.51) 접속시외부적으로, 모든 IP는 192.168.1.1(메인 라우터의 IP)로 표시됩니다.

물론 이것은 두 번째 라우터 뒤에 있지 않을 때 잘 작동하지만 불행히도 현재 설정은 필요하지 않습니다.

서버에서 외부 IP 주소를 제대로 '볼' 수 있는 방법에 대한 구체적인 지침을 얻을 수 있는지 궁금합니다.

미리 감사드립니다!

답변1

문제는 DD-WRT가 설정하는 기본 iptables 규칙에 있는 것 같습니다.

POSTROUTING에서 MASQUERADE 라인을 제거하면 문제가 해결되며 외부 연결이 더 이상 기본 라우터의 내부 IP로 표시되지 않습니다.

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  0    --  anywhere             anywhere            
SNAT       0    --  192.168.1.0/24       anywhere            to:1.1.1.1 
RETURN     0    --  anywhere             anywhere            PKTTYPE = broadcast

그러면 위 목록의 첫 번째 요소가 제거됩니다.

iptables -t nat -D POSTROUTING 1

위 수정 사항에 대한 자세한 내용은 여기에서 확인할 수 있습니다.https://www.reddit.com/r/HomeNetworking/comments/40swj2/firewall_log_shows_router_ip_for_all_incoming/cyxaz3t/

이제 모든 것이 잘 작동할 것입니다.

참고 사항: 더 이상 내부 IP에서 외부 IP를 통해 서비스에 액세스할 수 없는 경우 다음 중 하나 또는 둘 다를 수행해야 할 수 있습니다(두 가지 모두 필요함).

  1. "DD-WRT -> 보안 -> 방화벽"에서 "WAN NAT 리디렉션 필터링"을 선택 취소하세요.

  2. 다음을 실행합니다:

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.1.0/24 -j MASQUERADE

192.168.1.0/24의 두 항목을 모두 설정과 관련된 항목으로 바꿉니다.

이 작업을 더 쉽게 하려면 방화벽 스크립트의 "관리 -> 명령"에 저장하는 것이 좋습니다.

iptables -t nat -D POSTROUTING 1
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.1.0/24 -j MASQUERADE

관련 정보