대부분의 소규모 사이트에는 인터넷, DHCP, 음성 회선을 담당하는 장비가 이미 하나 있고, 그 장비가 사이트 터널을 돌리지는 않습니다. 사설 경로용 두 번째 게이트웨이를 추가하는 방법은 케이블을 만지기 전에 어느 경로를 누가 가질지 정하면 동작합니다. 진짜 위험은 터널이 아니라, 전화기를 등록 상태로 유지하는 장비를 조용히 바꾸는 일입니다. 다섯 가지 점검을 순서대로 하고 하나가 실패하는 지점에서 멈추세요.

이미 동작하는 역할을 적어 두기

기본 게이트웨이, DHCP 서버, 리졸버, 그리고 통신사 음성 등록을 가진 장비를 기록합니다. 이 예에서 ISP 공유기는 10.50.0.1, 새 게이트웨이는 10.50.0.2, 원격 사이트는 10.60.0.0/24입니다. 이 계획에서 처음 세 역할은 바뀌지 않으며, 바로 그 점이 핵심입니다. 다음으로 두 번째 장비가 정말 터널을 종료할 수 있는지 확인합니다. 프로토콜, 예상 처리량, 펌웨어나 패키지 업데이트를 받는지 봅니다. VPN 로고만 있고 업데이트 경로가 없는 장비는 추가가 아니라 부담입니다.

음성 서비스의 주인이 누구인지 말할 수 없다면 멈추세요. 등록을 가진 공유기를 되돌릴 계획 없이 바꾸는 것은 VPN 프로젝트를 전화 장애로 만드는 길입니다.

새 게이트웨이에 주소 하나와 일 하나 주기

LAN 주소는 DHCP 풀 밖에서 예약해 재부팅 후에도 움직이지 않게 하고, 인터넷 경로로 만들 생각이 아니라면 자체 기본 경로를 주지 않습니다. 역할은 터널을 유지하고 원격 프리픽스에 응답하는 것입니다. 원격 사이트에 도달해야 하는 LAN 호스트에서는 지금 어느 경로를 쓰고 변경 후 어느 경로를 원하는지 증명합니다. 같은 두 명령을 전후로 실행하는 것이 가장 싼 증거입니다.

ip route get 10.60.0.55
ip neigh show 10.50.0.2
traceroute -n 10.60.0.55

조회가 ISP 공유기를 반환하고 traceroute가 인터넷 경계에서 죽는다면 그 호스트에는 아직 원격 경로가 없고, 이는 예상된 일입니다. 예상 밖의 결과가 나오면 먼저 그것을 해결하세요. 이후 모든 단계가 이 기준을 전제로 합니다.

원격 프리픽스 경로의 주인 고르기

옵션 A는 ISP 공유기입니다. 10.60.0.0/24에 대한 정적 경로를 게이트웨이 쪽으로 두고, 각 호스트는 이전처럼 기본 게이트웨이를 따릅니다. 옵션 B는 호스트별입니다. 원격 사이트가 필요한 기계만 10.50.0.2를 거치는 명시적 경로를 받고 나머지는 그대로 둡니다. A는 호스트가 많을 때 깔끔하지만 보통 통신사 공유기가 정적 경로를 받아들여야 하고, 받지 않는 경우도 있습니다. B는 통신사 협조가 필요 없지만 호스트 설정 유지보수가 남으므로 승인된 소수 기계에 적합합니다.

두 경우 모두 되돌아오는 방향이 있어야 합니다. 원격 응답이 게이트웨이에 도착해 게이트웨이가 LAN 호스트로 곧바로 전달하면, ISP 공유기가 나가는 경로에서 유지하던 방화벽 상태를 건너뜁니다. 게이트웨이가 LAN의 기본 라우터가 아니라면 그 비대칭은 설계 결정이지 무시할 결함이 아닙니다.

ip route add 10.60.0.0/24 via 10.50.0.2 dev eth0
ip route get 10.60.0.55 from 10.50.0.77

항목은 호스트 구성 관리 지점에서 영구히 남기고, 로그인 스크립트에 기대지 않습니다. 누군가 로그인한 뒤에만 있는 경로는 무관한 이유로 기계가 재부팅되는 첫 순간에 실패합니다.

도달 가능한 인바운드 엔드포인트 마련

게이트웨이에는 원격 사이트가 도달할 주소가 필요합니다. ISP 공유기 뒤에서는 포트 포워딩이나 DMZ 항목이 필요하고, 둘 다 통신사가 실제로 트래픽을 전달하는지에 달려 있습니다. 로컬 포워딩은 통신사 쪽 캐리어급 NAT를 넘지 못합니다. 통신사가 도달 지점을 주지 않으면 방향을 뒤집어 두 사이트가 직접 관리하는 허브로 시작하게 합니다. 유효한 설계지만 포워딩, 신뢰, 가용성에 세 번째 의존이 늘고, 동적 DNS가 이를 대신하지 못합니다.

포워딩은 게이트웨이에서 패킷 캡처로 확인하고, 포트 스캔 웹사이트로 확인하지 않습니다. 스캐너는 리스너가 묶일 때까지 포트를 닫힌 것으로 보고하고, 트래픽을 한 번도 전달하지 않는 포워딩은 밖에서 보면 닫힌 포트와 같습니다.

사설 서비스와 음성 회선을 함께 받아들이기

LAN 호스트에서 사설 DNS와 애플리케이션 자체 자격 증명으로 의도한 동작을 시험합니다. 라우팅된 터널은 원격 브라우징을 로컬 이더넷 세그먼트처럼 만들지 않으므로 검색과 이름 해석에는 별도 준비가 필요합니다.

curl -sS -o /dev/null -w '%{http_code}\n' https://files.example.net
ping -c 3 10.60.0.55

그다음 같은 호스트에서 일반 인터넷 접속이 여전히 되고 전화기가 여전히 등록되어 있는지 확인합니다. 이 두 점검이 기본 경로의 우발적 변경을 잡아냅니다. 건드릴 생각이 없던 것을 망가뜨리는 가장 흔한 경로이기 때문입니다. 마지막으로 복구 메모를 남깁니다. 어느 장비가 어느 역할을 갖는지, 예약 주소, 원격 프리픽스 경로를 한 단계로 제거하는 방법. 깨끗하게 되돌릴 수 있는 사설 경로가 오늘만 동작하는 경로보다 값집니다.

관련 글