Trouble Shooting
처음에는 autonegotiation 이 문제인줄 알았는데, DMZ안이 아니라 외부에 VPN을 두면 접속도 잘되고 autonegotation 로그도 발생하지만 접속이 잘된다. 따라서 autonegotation 문제는 아니다. 그러면 GRE 문제인 것 처럼 보이지만, 해당 로그도 어디서 문제가 발생했는지 명확하게 말해주지 않는다. 문제는 다음과 같았다.
내부 네트워크에서는 GRE protocol을 보내주었는데 방화벽을 거치면서
icmp protocol 47 unreachable 메시지로 변하였다. 이는 Type3 의 Code 2 이다. nmap으로 포트 스캔을 해봤더니 filtered로 나왔다. 왜 GRE 패킷이 icmp 패킷으로 변한지 잘 모르겠다.
결국 문제는 방화벽에서 GRE 패킷을 포워딩을 안 해주었기에 문제가 발생했다. 끊임없는 검색을 끝에 문제를 해결하였다. 방화벽에서 iptables 설정뿐만 아니라 pptp 모듈을 활성화를 해야 했다.
<modprobe nf_nat_proto_gre / modprobe nf_nat_pptp / modprobe nf_conntrack_proto_gre / modprobe nf_conntrack_pptp>
이렇게 pptp 모듈을 활성화 하고 iptables에 포워딩이 된다면 DMZ안에 VPN 서버를 위치시킬 수 있다.
참고로 ip_nat_pptp는 pptp 패킷을 NAT해주는 모듈이고 ip_nat_gre은 gre패킷을 NAT해주는 모듈이다.
<참고 링크>
https://kensei.co.kr/673
https://kldp.org/node/152235