임베디드 장비이든 혹은 웹 서버이든 IP를 고정해야 할 경우들이 있다.
DHCP로 IP를 자동 할당 받는 경우 IP가 고정이 아닌 유동적으로 바뀔수가 있기 때문에 고정 IP(static IP) 설정하는 법은 여러 모로 필요한 작업이다.
본 포스트에서는 Linux Ubuntu 상에서 IP를 어떻게 고정으로 할당할수 있을 것인지를 정리하고자 한다.
IP를 고정시키기 위해서는 다음의 정보가 필요하다.
-. 고정시킬 IP Address
-. Net mask
-. Default gateway
-. DNS Server
여기서 외부로 나갈 필요가 없는 상황이라면 즉 인터넷을 할 필요가 없이 임베디드 장비와 PC간의 통신만 되면 된다거나 아무튼 외부 통신을 필요로 하지 않는다면 gateway 정보나 DNS server 정보는 없어도 된다.
우선 현재의 네트워크 자원들에 대해 확인부터 해 보자.
# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 08:00:27:ff:a4:58 brd ff:ff:ff:ff:ff:ff
# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:ff:a4:58 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
valid_lft 83702sec preferred_lft 83702sec
inet6 fe80::c33f:ad86:8225:3597/64 scope link
valid_lft forever preferred_lft forever
위의 정보를 보면 2개의 네트워크 interface가 보인다. 하나는 lo인데 이는 loop back으로 자기 자신을 나타내는 interface이다.
우리가 고정 IP를 설정할 네트워크는 enp0s3로 명명되어진 이 interface이다.
link/ether는 이 장비가 이더넷 장비라는 뜻이고 IP 주소는 10.0.2.15이다.
참고로 위의 정보는 Virtual Box에서 실행되는 Ubuntu이다.
보통 공유기 하위에 물려 있는 경우라면 192.168.x.x와 같은 형태가 될 것이다.
이제 IP정보를 설정해 보자. 아래 파일을 열어 보면 대체로 이런 정보가 들어 있다.
# vi /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
위의 파일 내용에 고정 IP 할당에 대한 정보를 아래와같이 입력하고 파일을 저장한다.
auto enp0s3
iface enp0s3 inet static
address 192.168.0.77
netmastk 255.255.255.0
gateway 10.0.2.2
dns-nameserver 8.8.8.8 8.8.4.4
gateway는 현재의 gateway를 그대로 사용했고 dns-nameserver는 구글 것을 사용했다.
현재의 gateway 정보를 알려면 다음 명령으로 확인할 수 있다.
root@joe-VirtualBox:/etc/network# ip route
default via 10.0.2.2 dev enp0s3 proto static metric 100
10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15 metric 100
169.254.0.0/16 dev enp0s3 scope link metric 1000
현재의 gateway(인터넷을 할수 있는 출입문, 통신이 외부로 나갈수 있는 출입문 IP)정보는
default via 10.0.2.2 dev enp0s3로 되어 있는 10.0.2.2이다.
아래는 또 다른 경우에 대한 정보이고 192.168.0.1이 현재의 gateway이다.
root@localhost:/etc/network# ip route
default via 192.168.0.1 dev eth0 metric 100
169.254.0.0/16 dev eth0 scope link metric 1000
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.88
위의 정보만으로 네임서버가 안된다면 다음 정보를 추가하도록 하자.
네임서버란 www.google.com, www.naver.com과 같이 숫자로 된 IP가 아닌 사람이 쉽게 파악할수 있는 형태의 IP 지정 방식이다.
아래의 경로에 tail이라는 파일을 생성해서(만일 없다면 새로 만든다) nameserver 8.8.8.8을 입력하고 파일을 저장한다.
# vi /etc/resolvconf/resolv.conf.d/tail
nameserver 8.8.8.8
이상으로 설정을 완료되었고 네트워크 장비를 재시작 한다.
# ip addr flush enp0s3 && systemctl restart networking.service
만일 구버전 리눅스라면 위의 명령이 실행되지 않을수 있다. 그럴 경우는 아래와 같이 하자.
# ip addr flush enp0s3 && /etc/init.d/networking restart
여기까지가 Ubuntu 시스템 상에서의 고정 IP 설정하는 법이다.
정상적으로 설정이 되었다면 터미널 창에서 ping이 정상적으로 송수신될 것이다.
# ping www.google.com
위 명령이 정상적으로 수행된다면 IP 설정과 nameserver 설정이 제대로 된 것이다.
그런데 ping 172.217.24.4과 같이 IP로는 실행되나 도메인 네임으로는 수행되지 않는다면 이건 nameserver 설정이 잘못되었다는 뜻이다.
'Linux' 카테고리의 다른 글
FileZilla를 이용한 FTP(SFTP)와 PuTTY를 이용한 SSH 접속을 위한 Linux(Ubuntu) 환경 설정하기 (0) | 2018.05.10 |
---|---|
VirtualBox의 Ubuntu와 동일 PC의 ping이 안될때 (0) | 2018.02.14 |
리눅스 Shell command를 이용한 Socket 통신하기 (0) | 2017.12.14 |
dd command를 이용한 리눅스 시스템 전체를(디스크 전체 혹은 파티션 전체를) 부팅 가능 USB로 복사하기 (6) | 2017.11.13 |
Ubuntu 12.04에서 부팅시 사용자 프로그램을 자동실행되도록 등록하기 (0) | 2017.10.20 |