로컬 네트워크에서 특정 컴퓨터의 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
랜 장비 이름 알기
인터넷 연결에 사용할 자신의 랜 장비 이름을 알아야 한다. 컴퓨터가 갖고 있는 네트워크 장비의 목록을 보자. ifconfig
나 ip
명령어를 사용하면 된다. 즉, 아래 세 가지 명령어 중 맘에 드는 명령어를 쓰면 된다. ip
가 더 나중에 나온 프로그램이라고 하니 나는 그걸 사용해 보려고 한다.
ifconfig -a
ip link show # 각 디바이스의 정보를 본다.
ip addr show # 각 디바이스에 연결된 주소까지 보는 것.
아래는 ip link show
명령의 결과다. lo
와 eth0
을 볼 수 있는데, 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
: 설정 파일 경로를 받아서 해당 설정을 사용하는 명령
수박 겉핥기 식으로 훑어 보며 처리한 거라 엉성하게 알고 적은 게 있을 지도 모른다. 여튼 다음에 또 쓸 일이 생길 거라 메모해 둔 것이다.