공장에서 설정된 고정 주소가 동일한 여러 스위치가 있으며, 각 스위치는 스위치당 하나씩 두 개의 인터페이스가 있는 서버에 연결되어 있습니다. 서버의 기본 인터페이스는 로컬 홈 네트워크에 연결되고, 보조 인터페이스는 스위치 주소가 포함된 서브넷에 연결됩니다. 각 스위치에 이름을 할당하고, 연결된 서버의 내부 네트워크 주소에 대한 이름을 확인하고, 해당 주소로 전송된 트래픽을 스위치로 투명하게 전달하고 스위치에서 원래 집으로 돌아오는 트래픽을 투명하게 전달하도록 각 서버를 구성할 수 있기를 원합니다. 네트워크 주소. iptables NAT가 이 작업을 수행할 수 있어야 하는 것 같습니다. 그래서 iptables에는 다음과 같은 규칙이 있습니다.
*nat
-A POSTROUTING -p all -s switch -j SNAT --to house
-A PREROUTING -p all -d house -j DNAT --to switch
여기서 "switch"는 스위치의 고정 주소이고 "house"는 스위치에 할당한 홈 네트워크 주소입니다. (둘 다 숫자로 입력됩니다.) 물론 여기까지 쓰고 있으니 그건 안 되겠죠.
iptables를 활성화하기 전에 서버와 홈 네트워크의 다른 장치에서 "홈" 주소로 핑을 보낼 수 있었고 서버에서 "스위치" 주소로 핑을 보낼 수 있었습니다. 서버에 있는 스위치의 고정 주소에 대해 nmap을 실행하면 올바른 스위치 포트가 열려 있는 것을 볼 수 있고, 홈 네트워크에 있는 다른 장치의 "스위치" 주소에 대해 nmap을 실행하면 서버에 포트가 열려 있는 것을 볼 수 있습니다. iptables를 활성화하면 어떤 장치가 응답하는지 잘 모르겠지만 핑은 계속 응답합니다. 서버에서 "스위치" 주소로의 nmap은 여전히 스위치 포트가 아닌 서버 포트를 표시합니다. 다른 장치의 nmap은 모든 포트가 필터링되었다고 보고합니다.
신뢰성을 위해 스위치의 고정 주소를 변경하지 않겠습니다. 어떤 이유로든 스위치가 재설정되면 작업이 계속 진행되기를 바랍니다.
실제로 해야 할 일은 포트 80과 443에 ping을 보내는 것뿐입니다. 더 나은 해결책이 있어야 합니다.
답변1
결국 댓글 체인이 길어졌습니다 :)
그래서 내 마지막 제안은 규칙을 추가하는 것입니다.
iptables -t nat -A POSTROUTING -o $IFSW -j MASQUERADE
$IFSW
각 서버의 스위치 인터페이스는 어디에 있습니까?
이런 방식으로 스위치는 서버로부터 패킷을 수신하고 적절하게 응답하며 서버는 응답 패킷의 원래 주소로 다시 매핑을 처리합니다.