환경: OPNsense 25.1.7_2-amd64 기준
일반 가정용 인터넷은 IP 주소가 종종 변경됩니다. 그래서 집에서 홈페이지를 운영하려면 변경된 IP 주소를 자동으로 등록해주기 위해서는 Dynamic DNS라는 기능을 사용해야 합니다. 보통은 공유기에 이러한 기능이 내장되어 있습니다. 그러나 공유기에 들어있는 Dynamic DNS는 제조사가 지정한 도메인 주소로만 사용할 수 있습니다.
나만의 도메인으로 서비스하고 싶은 경우에는 직접 도메인 네임서버의 구성해야 합니다. 그러나 가정용 인터넷과 같은 유동 IP 환경에서 네임서버를 운영하기는 어렵습니다. 그래도 항상 방법은 있죠!
Dynamic DNS를 지원하는 무료 네임서버 서비스를 찾아보니 몇 가지 나옵니다. 그 중에 다음과 같은 이유로 Cloudflare를 사용하고 있습니다.
- 무료
- 아주아주 많이 유명한 업체: 1.1.1.1 네임서버 들어보셨나요?
- API 서비스를 제공: 인터넷에 연결되지 않은 서버의 Let’s Encrypt 인증서를 DNS challenge로 발급 받을 때 아주 요긴함.
그래서 OPNsense에서 Cloudflare의 DNS 레코드를 자동으로 업데이트하도록 구성해서 사용하고 있습니다. 구성한 과정 한번 단계별로 살펴보겠습니다.
준비물
- 나만의 도메인
- Cloudflare에 도메인 등록하고 기본 구성한 다음 -> API 서비스 접근을 위한 토큰 발급
os-ddclient 설치
OPNsense의 경우에는 플러그인 중에 os-ddclient(Dynamic DNS client)를 통해서 Cloudflare DNS에 등록되어 있는 A 레코드 주소값을 업데이트하는 기능을 제공합니다.
- System > Firmware > Plugins 메뉴에서 os-ddclient를 찾아 + 아이콘을 클릭합니다.
2. 그림과 같이 설치가 완료(**DONE**
표시)될 때까지 기다립니다.
3. 웹 페이지를 새로 고침 한번 해줍니다. 그래야 메뉴에 Services > Dynamic DNS 항목이 표시됩니다.
Dynamic DNS 서비스 구성
- Services > Dynamic DNS > Settings 메뉴를 클릭하고, General settings 탭을 클릭합니다.
2. Backend에서 ddclient를 선택하고, Apply 단추를 클릭합니다.
3. Accounts 탭을 클릭합니다.
4. + 아이콘을 클릭합니다.
5. Edit Account에서 다음 항목들을 설정합니다. 참고: OPNsense가 인터넷에 직접연결되지 않고, 공유기 안쪽에 있어서 Interface to monitor는 선택하지 않았습니다.
- Description: 설명 입력
- Service: Cloudflare
- Password: Cloudflare에서 만든 API 토큰 입력
- Zone: 도메인 존 입력. 보통 도메인.
- Hostname(s): Dynamic DNS로 IP를 설정할 호스트 이름 입력.
- Check ip method: cloudflare
6. Save 단추를 클릭하고, Apply 단추를 클릭해서 적용합니다.
7. Services > Dynamic DNS > Log File 메뉴를 클릭합니다.
8. 그림 처럼 SUCESS
로 표시되는 항목이 나오는지 확인합니다.
참고: Log File에서 기본 상태에서는 원하는 기록이 표시되지 않을 수 있습니다. 이 경우 그림 처럼 Multiselect를 선택하고, 표시할 메시지 중요도 중에 Notice를 선택해주면 됩니다. 제 경우는 보통 전부 선택한 상태로 사용합니다.