Openwrt : Hostnames

리눅스 계열을 사용한다면, /etc/hosts 를 편집한 뒤 LAN 안에 있는 다른 PC 에 접속할 때 IP 주소 대신 이름을 쓸 수가 있다.

그러나, 이건 모든 기기마다 각각 설정을 해줘야하므로, 번거로운 면이 있다.
Openwrt 에는 Hostnames 항목이 있어서, 여기에 정의를 해두면 공유기에 접속한 모든 기기에서 손쉽게 사용할 수가 있다.

먼저, Openwrt 공유기 자체 hostname 은 Luci 의 System - System - Hostname 항목에서 바꿔줄 수 있다. 여기에서 시간대(Timezone) 설정도 가능하므로, 하는 김에 같이 해주면 된다.

또는, /etc/config/system 에서 수정해줄 수도 있다.

config system
	option hostname 'my_new_openwrt'
	option ttylogin '0'
	option log_size '64'
	option urandom_seed '0'
	option zonename 'Asia/Seoul'
	option cronloglevel '5'
	option log_proto 'udp'
	option conloglevel '8'
	option timezone 'KST-9'

그리고 난 뒤, /etc/init.d/system reload 을 해줘야 바뀐 호스트명이 적용된다.


그 외, 공유기에 연결된 다른 기기들의 Hostname 은 어떻게 설정할 수 있을까?
방법은 두가지다. 하지만, 어떤 차이가 있는지는 모르겠다.

  • Luci 의 Network – Hostnames 에서 추가.
  • Luci Network – DHCP and DNS – Static Lease 에 추가.

위 방법 모두, /etc/config/dhcp 파일에 설정이 저장되는데, 형식은 조금 다르다.

Hostnames 로 추가한 경우.

config domain
	option name 'nightvision'
	option ip '192.168.0.13'

Static Lease 로 추가한 경우

config host
	option name 'nightvision-for-all'
	option mac '01:01:05:CF:83:FF'
	option ip '192.168.0.13'

이렇게 두 군데 모두 설정해줬다면, ping nightvision.lan, ping nightvision-for-all.lan 모두 작동하게 된다. 둘 다 해줄 필요는 없어 보이는데..

Luci 로는, 예를 들어, orangepi 가 192.168.0.4 에 할당되어 있다면, Luci 의 ‘Network – Hostnames‘ 에서 IP 주소와 함께 이름을 명명해주면 된다.

또는, /etc/config/dhcp 에 직접 추가해줘도 된다.

다만, 이 파일을 직접 수정하려면, 먼저 다음 2개를 중지시켜주는 편이 좋다. (안 그래도 되기도 하지만, 경우에 따라 중지시키지 않으면 제대로 작동하지 않는 때도 있었다.)

/etc/init.d/dnsmasq stop
/etc/init.d/odhcpd stop

그리고 다음과 같이 원하는 도메인 내용을 추가한다. (원하는 만큼 반복하여 추가한다.)

config domain
	option name 'orangepi'
	option ip '192.168.0.4'

config domain
	option name 'raspberrypi'
	option ip '192.168.0.5'

마지막으로, 다시 시작.

/etc/init.d/dnsmasq start
/etc/init.d/odhcpd start

각 기기에서 사용할 때는, 뒤에 .lan 을 붙인다. 그냥 이름만 넣어도 연결이 되긴 하지만, 시간이 좀 걸린다. 따라서 꼭 .lan 을 붙이는게 좋다.

** 주의!
현재 내 공유기에 설치된 Wireguard 로 접속하면, Client 에서 192.168.0.4 로는 접속되지만, hostname.lan 으로는 되지 않는다.

Wireguard 를 사용할 생각이라면, Client 설정에서 DNS 를 공유기의 LAN IP 로 설정해야한다.

왜 .lan 인지는, Luci – Network – DHCP and DNS 에 명기되어 있다.

예전부터 이 기능을 따로 구현해보려고 했었는데(라즈베리 파이등으로), 차일피일 미루다가 결국 Openwrt 에서 뜻을 이뤘네.

** GL-B1300 현재 기본 펌웨어(v3.027, 19년 9월 16일 판)에선, ssh, ping 시 약간 지연현상이 있다. Openwrt 19.07.3 에선 이 현상이 없는 듯..?

GL 제공 펌웨어엔 자체 제공하는 설정도구가 있는데, 이게 모양이 예쁘긴 하지만 살짝 오류도 있고 별 특이한 점은 없다.

가장 좋은 점이라면 ‘Wireguard 를 좀 더 쉽게 설정할 수 있다’ 인데.. 그냥 CLI 로 해도 큰 어려움은 없다.

Author: 아무도안

안녕하세요. 글 남겨주셔서 고맙습니다.