나는 Mac 서버를 가지고 있지만 내 문제는 오랫동안 GUI 영역을 벗어났습니다. 나의 마지막 희망은 유닉스 포럼입니다.
두 개의 WAN 포트가 있는 Cisco 라우터가 있습니다. Mac에서는 postfix 2.8.3을 사용합니다. 이 예에서는 포트 25에 대한 포트 전달을 올바르게 구성했습니다. 그러나 외부 호스트에서 내 WAN 포트의 IP 주소로 포트 25를 사용하여 텔넷 세션을 열려고 하면 WAN1에서만 접미사 응답을 받습니다. WAN2에서 "원격 호스트에 연결할 수 없습니다. 연결 시간이 초과되었습니다"라는 메시지가 표시됩니다. 그러나 WireShark를 실행하면 라우터가 요청을 전달하는 것을 볼 수 있지만 postfix는 요청을 "수신"하지 않는 것 같습니다.
main.cf를 살펴보니 postfix가 어떤 WAN을 사용할 것인지에 대해 까다로워야 한다고 제안할 만한 내용은 없습니다. inet_protocols는 all로 설정되었으며 각 WAN 포트의 고정 IP 주소를 네트워크 변수에 추가해 보았습니다.
하지만 제대로 작동하지 않는 것 같습니다. 다음에 무엇을 볼 수 있는지에 대한 팁을 줄 수 있는 사람이 있나요?
감사해요
답변1
확인해야 할 몇 가지 사항은 다음과 같습니다.
- Mac에서는 "tcpdump port 25"를 실행합니다. 그러면 포트 25의 모든 내용이 표준 출력으로 인쇄됩니다. 이제 포트 25에서 두 IP에 모두 텔넷을 연결합니다. tcpdump는 두 IP 모두에서 무엇이든 인쇄합니까, 아니면 첫 번째 IP에서만 인쇄합니까?
- Mac에서는 "postconf inet_interfaces"를 실행합니다. "inet_interfaces = all"이 표시되면 postfix가 모든 인터페이스를 수신해야 합니다.
- Mac에서는 "netstat -tapn|grep 25"를 실행하세요. 그러면 수신 대기 중인 인터페이스 접미사가 반환되어야 합니다. "0.0.0.0:25"와 같은 내용이 표시되면 postfix가 모든 인터페이스를 수신하고 있다는 의미입니다.
마지막 두 테스트가 내가 말한 대로라면 문제는 라우터 수준에 있는 것입니다. 또한 GNU/Linux 호스트에서 테스트를 수행했기 때문에 결과가 약간 다를 수 있습니다.
답변2
라우터는 로드 밸런싱을 위해 두 개의 WAN 링크 사용을 지원합니다. 지금 무슨 일이 일어나고 있는지 알 수 있듯이 라우터에서 로드 밸런싱을 구성하지 않았고 두 개의 WAN 링크를 연결했으며 SMTP 포트 전달은 LAN IP 중 하나(Mac)에 연결되었으며 라우터에는 하나만 있습니다. 기본 게이트웨이는 인터넷(WAN1)입니다. 따라서 패킷이 WAN2를 통해 들어오더라도 WAN1을 통해 클라이언트로 전송되며 클라이언트는 A에게 인사하고 B로부터 응답을 받은 것처럼 볼 수 있으며 분명한 이유로 응답을 무시하므로 시간 초과가 발생합니다. . IMHO, 로드 밸런싱만 활성화하면 문제 해결에 도움이 됩니다.