pptp 서버에서 pptp 서버간 연결 (pptp server to pptp server)
일반적인 연결
pptp 클라이언트 -> pptp 서버 (게이트웨이) -> 목적지 |
구조도
일반적인 연결은 PPTP 서버에 여러개의 클라이언트가 연결되는 1:1 구조라고 볼수 있다.
pptp 서버를 2개 (2단계) 거쳐서 게이트웨이 타고 나가게끔 셋팅
pptp 클라이언트 -> pptp 서버 1 -> pptp 서버 2 (게이트웨이) -> 목적지 |
구조도
PPTP 서버1 은 모든 패킷을 PPTP 서버2로 보내고 모든 클라이언트들은 PPTP 서버2를 게이트웨이로 해서 인터넷으로 빠져나간다.
만약에 PPTP 서버를 여러개 거치거나 하면 아이피 추적이 어려울거라는 생각이 들며 아주 빠른 구간이나
회선망에 적절히 배치한다면 국제망에서는 좀 더 빠른 응답속도를 가질수 있을것 같기도 하다.
마지막 두번째 pptp 서버에는 특별한 설정이 필요 없으며 일반적인 pptp 서버 설정만 되어 있으면 되며
첫번째 PPTP 서버는 PPTP client 겸 server 가 되는 구조이다.
첫번째 pptp 서버 에만 iptables 와 route 명령어 몇개만 추가해주면 모든 pptp client 로 오는 패킷을 두번째 pptp 서버 로 보낼수 있다.
첫번째 VPN 서버 셋팅
pptp 접속파일 생성
vim /etc/ppp/peers/testvpn
pty “pptp “두번째PPTP서버아이피” –nolaunchpppd” name “두번째PPTP 서버로 연결할 아이디” |
PPTP 계정정보 입력
vim /etc/ppp/chap-secrets
# Secrets for authentication using CHAP # client server secret IP addresses |
해당 첫번째 PPTP 서버는 PPTP 클라이언트가 되는 동시에 서버가 되므로 저 위 chap 파일에는 접속할 , 접속될 계정정보를 쭉 나열해주면 된다.
VPN 접속 명령
[root@localhost peers]# pppd call testvpn
접속이 된다면 ppp로 시작하는 이더넷 인터페이스가 하나 생성된다
ppp0 Link encap:Point-to-Point Protocol inet addr:10.0.20.1 P-t-P:xxx.xxx.xxx.xxx Mask:255.255.255.255 |
첫번째 PPTP 서버와 두번째 PPTP 서버가 연결된것이다.
방화벽 ppp0 마스퀘레이드 설정 (물론 ppp1 로 연결이 되었다면 ppp1 로해주면 된다)
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE |
디폴트 게이트 웨이 추가 (두번째 PPTP 서버의 아이피 주소를 디폴트게이를 추가해주면 된다)
그러면 첫번째 PPTP 서버의 디폴트게이트웨이는 2개가 된다.
route add default gw “두번째 PPTP 서버 아이피” |
아래 보면 디폴트 게이트 웨이가 2개로 보인다.
[root@localhost peers]# route Kernel IP routing table |
이제 첫번째 PPTP 서버로 연결해보면 자기 자신 아이피가 모두 두번째 PPTP 서버의 게이트웨이로 타고 나가는것이 확인될것이다.