IP 주소 설정하기

LinuxBeginner
지금 연습하기

소개

컴퓨터 네트워킹에서 IP(Internet Protocol) 주소는 컴퓨터 네트워크에 연결된 각 장치에 할당되는 숫자 레이블입니다. 이 주소는 호스트 또는 네트워크 인터페이스 식별과 위치 주소 지정이라는 두 가지 주요 목적으로 사용됩니다.

IP 주소는 할당되는 두 가지 주요 방식이 있습니다:

  • DHCP (Dynamic Host Configuration Protocol): 네트워크의 서버에 의해 IP 주소가 자동으로 할당됩니다. 이는 클라이언트 장치에 가장 일반적인 방법입니다.
  • 정적 IP (Static IP): IP 주소가 수동으로 구성되며 변경되지 않습니다. 이는 일관된 주소가 필요한 서버, 프린터 또는 기타 장치에 자주 사용됩니다.

최신 Ubuntu 시스템에서는 네트워크 구성이 netplan이라는 유틸리티에 의해 관리됩니다. netplan은 네트워크 인터페이스를 설명하기 위해 간단한 YAML 파일을 사용합니다.

본 실습에서는 동적 (DHCP) IP 주소에서 정적 IP 주소로 전환한 다음 변경 사항을 되돌리는 방법을 학습하게 됩니다. 이는 모든 Linux 시스템 관리자에게 필수적인 기술입니다.

현재 네트워크 구성 확인하기

실제 환경에서는 원격 서버의 기본 IP 주소를 변경하면 접속이 끊길 수 있습니다 (lock out). 이를 방지하기 위해 일반적으로 DHCP 로 할당된 기존 IP 주소를 정적 (Static) 주소로 변환하는 작업을 수행합니다. 이 단계에서는 가상 머신의 현재 네트워크 설정을 확인합니다.

먼저, ip 명령어를 사용하여 eth0 인터페이스의 네트워크 구성을 표시합니다:

ip addr show eth0

출력 결과는 다음과 유사할 것입니다. 현재 IPv4 주소와 서브넷 접두사 ( / 뒤의 숫자) 가 포함된 inet 줄에 주목하십시오.

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:16:3e:0d:25:f1 brd ff:ff:ff:ff:ff:ff
    altname enp0s5
    altname ens5
    inet 172.16.50.173/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
       valid_lft 1892159962sec preferred_lft 1892159962sec
    inet6 fe80::216:3eff:fe0d:25f1/64 scope link
       valid_lft forever preferred_lft forever

다음으로, 기본 게이트웨이 (default gateway) 를 찾습니다. 이는 VM 이 다른 네트워크와 통신하기 위해 사용하는 라우터입니다.

ip route show

default via로 시작하는 줄이 게이트웨이 주소를 보여줍니다.

default via 172.16.50.253 dev eth0 proto dhcp src 172.16.50.173 metric 100
172.16.50.0/24 dev eth0 proto kernel scope link src 172.16.50.173 metric 100

위 출력에서 IP 주소는 172.16.50.173이고, 접두사 (prefix) 는 24이며, 게이트웨이는 172.16.50.253입니다. 사용자의 값은 다를 수 있으므로, 다음 단계에서는 반드시 자신의 터미널 출력에서 확인된 값을 사용해야 합니다.

정적 IP 주소 구성하기

이제 정적 IP 주소를 할당하기 위해 네트워크 구성 파일을 수정할 것입니다. 여기에는 DHCP 를 비활성화하고, 방금 찾은 값을 사용하여 IP 주소, 게이트웨이 및 DNS 서버를 수동으로 지정하는 작업이 포함됩니다.

먼저, nano 편집기로 구성 파일을 엽니다:

sudo nano /etc/netplan/01-netcfg.yaml

이제 파일을 수정하여 현재 IP, 접두사 및 게이트웨이를 정적 값으로 사용하도록 설정합니다. YAML 파일은 들여쓰기에 매우 민감하므로 탭 대신 공백을 사용하고 표시된 것과 정확히 동일한 들여쓰기 수준을 일치시켜야 합니다.

플레이스홀더 YOUR_IP/PREFIXYOUR_GATEWAY를 이전 단계에서 찾은 실제 값으로 대체하십시오.

## This is the network config written by 'subiquity'
network:
  ethernets:
    eth0:
      dhcp4: false
      addresses:
        - YOUR_IP/PREFIX
      routes:
        - to: default
          via: YOUR_GATEWAY
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
  version: 2

예를 들어, IP 가 172.16.50.173/24이고 게이트웨이가 172.16.50.253이었다면 파일은 다음과 같이 보일 것입니다:

## This is the network config written by 'subiquity'
network:
  ethernets:
    eth0:
      dhcp4: false
      addresses:
        - 172.16.50.173/24
      routes:
        - to: default
          via: 172.16.50.253
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
  version: 2

구성 요소에 대한 설명은 다음과 같습니다:

  • dhcp4: false: IPv4 에 대한 자동 DHCP 클라이언트를 비활성화합니다.
  • addresses: 정적 IP 주소와 서브넷을 설정합니다.
  • routes: 이 섹션은 기본 게이트웨이를 정의합니다.
  • nameservers: DNS 서버를 설정합니다. 여기서는 Google 의 공개 DNS 서버를 사용하고 있습니다.

변경 사항을 저장하려면 Ctrl+O를 누른 다음 Enter를 눌러 파일 이름을 확인합니다. 마지막으로 Ctrl+X를 눌러 nano를 종료합니다.

netplan apply 명령어로 변경 사항 적용

이 단계에서는 새로운 네트워크 구성을 적용할 것입니다. 구성 파일만 저장하는 것만으로는 충분하지 않으며, netplan에게 새로운 구성을 읽고 시스템에 적용하도록 지시해야 합니다.

이는 netplan apply 명령어로 수행됩니다. 이 명령어는 /etc/netplan/에 있는 모든 .yaml 파일을 구문 분석하고, 시스템이 이해할 수 있는 형식으로 변환한 다음, 변경 사항을 즉시 적용합니다.

이 명령어는 시스템의 네트워크 상태를 수정하므로 sudo 권한이 필요합니다.

터미널에서 다음 명령어를 실행합니다:

sudo netplan apply

참고: 이 명령어를 실행한 후, LabEx VM 과의 연결이 잠시 끊겼다가 자동으로 다시 연결될 수 있습니다. 자동으로 재연결되지 않으면 브라우저 페이지를 새로 고침하십시오.

명령어가 성공적으로 실행되고 YAML 구문이 올바르다면, 아무런 출력 없이 실행될 것입니다. 오류가 표시된다면, 이전 단계의 예시와 비교하여 01-netcfg.yaml 파일의 들여쓰기나 구문 오류 때문일 가능성이 높습니다. 그런 경우 파일을 다시 열고 변경 사항을 주의 깊게 확인하십시오.

정적 IP 구성 확인

이 단계에서는 정적 IP 주소가 성공적으로 적용되었는지 확인할 것입니다. VM 이 이미 가지고 있던 IP 주소를 사용했으므로 연결이 끊기지 않았어야 합니다.

Linux 시스템에서 현재 IP 주소를 확인하는 가장 좋은 방법은 ip 명령어를 사용하는 것입니다. eth0 인터페이스에 대해 다시 한번 ip addr show 명령어를 실행합니다.

ip addr show eth0

1 단계에서 보았던 출력과 거의 동일한 출력을 보게 될 것입니다. IPv4 주소를 보여주는 inet 줄을 확인하십시오. dynamicmetric과 같은 키워드가 사라지고 valid_lftforever로 설정된 것을 확인하십시오.

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:16:3e:0d:25:f1 brd ff:ff:ff:ff:ff:ff
    altname enp0s5
    altname ens5
    inet 172.16.50.173/24 brd 172.16.50.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::216:3eff:fe0d:25f1/64 scope link
       valid_lft forever preferred_lft forever

주요 차이점은 이제 IP 주소가 DHCP 서버로부터 임대되는 것이 아니라 netplan에 의해 정적으로 구성되었다는 점입니다. 이는 정적 IP 구성이 성공했음을 확인시켜 줍니다.

DHCP 로 되돌리기

마지막 단계에서는 네트워크 구성을 다시 DHCP 를 사용하도록 되돌릴 것입니다. 이는 더 이상 정적 IP 가 필요 없거나 네트워크가 주소를 자동으로 관리하도록 하고 싶을 때 유용합니다. 이 과정은 이전에 했던 작업의 역순입니다.

먼저, nano로 구성 파일을 다시 엽니다:

sudo nano /etc/netplan/01-netcfg.yaml

이제 정적 구성 줄을 삭제하고 dhcp4를 다시 true로 설정합니다. 파일 전체는 간단한 원래 버전과 동일해야 합니다:

## This is the network config written by 'subiquity'
network:
  ethernets:
    eth0:
      dhcp4: true
  version: 2

파일을 저장하고 (Ctrl+O, Enter), nano를 종료합니다 (Ctrl+X).

다음으로, 이전에 했던 것처럼 변경 사항을 적용합니다:

sudo netplan apply

참고: 이 명령어를 실행한 후, LabEx VM 과의 연결이 잠시 끊겼다가 자동으로 다시 연결될 수 있습니다. 자동으로 재연결되지 않으면 브라우저 페이지를 새로 고침하십시오.

마지막으로, 시스템이 이제 DHCP 에 의해 할당된 IP 주소를 사용하고 있는지 확인합니다. 다시 ip addr show eth0 명령어를 실행합니다:

ip addr show eth0

출력에는 이제 이전과 동일한 inet 주소가 표시되지만, 이번에는 네트워크의 DHCP 서버에 의해 자동으로 할당되었으며, 이는 dynamic 키워드와 특정 임대 시간 (valid_lft) 의 복귀로 나타납니다. 이는 DHCP 로 성공적으로 전환했음을 확인시켜 줍니다.

요약

실습을 완료하신 것을 축하드립니다! 최신 Ubuntu 시스템에서 네트워크 설정을 성공적으로 구성했습니다.

본 실습에서 다음 사항들을 배웠습니다:

  • /etc/netplan/에서 netplan 구성 파일의 위치를 찾는 방법.
  • sudo와 함께 nano 편집기를 사용하여 시스템 구성 파일을 수정하는 방법.
  • 정적 IP 주소 설정과 DHCP 사용을 위한 기본적인 YAML 구문 이해.
  • sudo netplan apply 명령어를 사용하여 새로운 네트워크 구성을 적용하는 방법.
  • ip addr show 명령어로 네트워크 인터페이스의 현재 IP 주소를 확인하는 방법.

이러한 기술들은 모든 Linux 서버나 데스크톱을 관리하는 데 필수적인 기술이며, 시스템이 네트워크에서 자신을 식별하는 방식을 제어할 수 있게 해줍니다.