[리눅스] 컴퓨터 ip 고정해서 dhcp 요청하기

로컬 네트워크에서 특정 컴퓨터의 ip를 고정해야 했는데, dhcp 설정으로 처리할 수 있었다. dhcp란 Dynamic Host Configuration Protocol(동적 호스트 설정 프로토콜)의 약어다.

dhcp 설정 파일에서 요청할 아이피 적기

dhcp 요청을 할 때 원하는 아이피를 요청하게 해 보자. 편집할 설정 파일은 /etc/dhcp/dhclient.conf다.

nano /etc/dhcp/dhclient.conf

위 파일이 dhcp 요청할 때의 설정을 적는 파일인데, 여기에 다음 줄을 추가해 주자.

send dhcp-requested-address 192.168.0.77;

192.168.0.77을 달라고 요청하기로 했다. 어따 적어야 할지 잘 모르겠어서 그냥 예제 보고 따라 했고, 그래서 send host-name = gethostname(); 뒤에 적었다. 적어 넣은 모습은 아래와 같다.

#send host-name "andare.fugue.com";
send host-name = gethostname();
send dhcp-requested-address 192.168.0.77;
#send dhcp-client-identifier 0:0:24:a0:bb:fa:4c;
#send dhcp-lease-time 3600;

dhclient.leases 초기화

다시 터미널로 나와서, /var/lib/dhcp 폴더에 있는 dhclient.leases 파일을 무력화하자.

이게 무슨 파일인고 하니, dhcp는 공유기 같은 라우터로부터 인터넷을 임대 받아 사용한다는 개념이라고 대충 이해할 수 있을 것이다. 이 파일은 임대한 기록을 적어 두는 파일이다. 여러 번의 임대 기록이 있다면 마지막 임대 기록을 사용한다고 한다. 그런데 아마 dhcp 요청을 할 때 이 파일을 사용하나 보다. send dhcp-requested-address 192.168.0.77;라고 적어 넣었는데도, 자꾸 공유기에선 다른 ip를 제안(offer)해서 뭐지 하다가 이 파일을 비우자 제대로 ip를 받아 오기 시작했다. 다음 두 명령어 중 맘에 드는 명령어를 사용해서 이 파일을 무력화하자.

sudo mv /var/lib/dhcp/dhclient.leases /var/lib/dhcp/dhclient.leases.bak
sudo rm /var/lib/dhcp/dhclient.leases

랜 장비 이름 알기

인터넷 연결에 사용할 자신의 랜 장비 이름을 알아야 한다. 컴퓨터가 갖고 있는 네트워크 장비의 목록을 보자. ifconfigip 명령어를 사용하면 된다. 즉, 아래 세 가지 명령어 중 맘에 드는 명령어를 쓰면 된다. ip가 더 나중에 나온 프로그램이라고 하니 나는 그걸 사용해 보려고 한다.

ifconfig -a
ip link show   # 각 디바이스의 정보를 본다.
ip addr show   # 각 디바이스에 연결된 주소까지 보는 것.

아래는 ip link show 명령의 결과다. loeth0을 볼 수 있는데, lo루프백 장비(loopback device)라고 요청을 본인에게 되돌려 주는 역할을 하는 가상 장비다. eth0은 유선 네트워크에 보통 붙는 이름이다. 무선랜이 있다면 w로 시작하는 이름을 볼 수 있을 것이다.

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 25:25:25:25:25:25 brd ff:ff:ff:ff:ff:ff

ip 요청하기

ip를 요청하는 명령어는 dhclient다. 아래 명령어로 요청하자. 명령에서 eth0는 위에서 찾은 자신의 장비 이름으로 적어 준다. /etc/dhcp/dhclient.conf는 당연히 위에서 편집한 설정 파일의 경로를 적어 주면 되는 것이고.

dhclient -4 -d -v -cf /etc/dhcp/dhclient.conf eth0
  • -4: IPv4를 사용한다는 뜻
  • -d: 강제로 전면(foreground) 프로세스로 띄우는 옵션. 보통은 백그라운드로 도나 보지?
  • -v: 로그 메시지 보이게 하는 거.
  • -cf: 설정 파일 경로를 받아서 해당 설정을 사용하는 명령

수박 겉핥기 식으로 훑어 보며 처리한 거라 엉성하게 알고 적은 게 있을 지도 모른다. 여튼 다음에 또 쓸 일이 생길 거라 메모해 둔 것이다.

카테고리 글 목록 👉

대표글

댓글 남기기