Linux IP 주소 관리

CompTIABeginner
지금 연습하기

소개

이 실습에서는 Linux 환경에서 IP 주소 관리의 기본 기술을 배우게 됩니다. 먼저 최신 ip 명령어를 사용하여 시스템의 네트워크 인터페이스를 검사합니다. 이어서 수동으로 고정 IP 주소를 구성하고, 외부 네트워크와의 통신을 활성화하기 위해 기본 게이트웨이를 설정한 다음, ping 유틸리티를 사용하여 연결을 확인합니다.

다음으로, 고정 IP 주소를 해제하고 dhclient 명령어를 사용하여 DHCP 서버로부터 새로운 IP 주소를 자동으로 얻음으로써 동적 IP 구성을 탐색합니다. 실습을 마무리하기 위해 arptraceroute 명령어를 사용하여 네트워크 구성을 추가로 검사하고 확인하여 모든 구성 요소가 올바르게 작동하는지 확인합니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 중급 레벨의 실험이며 완료율은 76%입니다.학습자들로부터 97%의 긍정적인 리뷰율을 받았습니다.

ip a로 네트워크 인터페이스 확인

이 단계에서는 Linux 시스템의 네트워크 인터페이스를 검사하는 방법을 배웁니다. IP 주소를 구성하기 전에 먼저 구성하려는 네트워크 인터페이스의 이름을 식별해야 합니다. 유선 또는 무선 연결이든 모든 연결은 네트워크 인터페이스를 통해 관리됩니다.

Linux 에서 네트워크 인터페이스를 보고 조작하는 현대적이고 표준적인 명령어는 ip입니다. 모든 네트워크 인터페이스와 할당된 IP 주소를 표시하기 위해 a (또는 address) 인자와 함께 사용할 것입니다.

  1. 터미널을 엽니다. 이미 ~/project 디렉토리에 있어야 합니다.

  2. 모든 네트워크 인터페이스와 현재 구성을 나열하려면 다음 명령을 실행합니다.

    ip a

    다음과 유사한 출력을 볼 수 있습니다. 인터페이스 이름 (eth0, enp0s5), IP 주소 및 MAC 주소와 같은 정확한 세부 정보는 새 실습 환경을 시작할 때마다 달라집니다.

    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
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:0f:23:a5 brd ff:ff:ff:ff:ff:ff
        altname enp0s5
        inet 172.16.50.11/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
           valid_lft 1892159972sec preferred_lft 1892159972sec
    3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
        link/ether 02:42:bb:cb:56:62 brd ff:ff:ff:ff:ff:ff
        inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
           valid_lft forever preferred_lft forever

출력 이해하기:

  • 1: lo: 이것은 **루프백 인터페이스 (loopback interface)**로, 시스템이 자체적으로 통신하는 데 사용하는 가상 인터페이스입니다. 항상 127.0.0.1 IP 주소를 가집니다.
  • 2: eth0: 이것은 기본 이더넷 (유선) 인터페이스입니다. 인터페이스 이름이 다르거나 enp0s5와 같은 altname(대체 이름) 이 표시될 수 있습니다. 이것이 우리가 작업할 인터페이스입니다.
  • 3: docker0: Docker 컨테이너 엔진에서 사용하는 docker0와 같은 다른 인터페이스가 보일 수 있습니다. 이 실습에서는 이 인터페이스를 무시해도 됩니다.
  • inet 172.16.50.11/24: 이것은 인터페이스에 할당된 IPv4 주소입니다. 보이는 주소는 다를 수 있습니다. 이 주소를 통해 이 원격 실습에 연결할 수 있습니다.
  • link/ether ...: 이것은 인터페이스의 MAC 주소로, 고유한 하드웨어 식별자입니다.

이제 기본 네트워크 인터페이스 (eth0) 를 식별할 수 있으므로 구성 방법을 배울 준비가 되었습니다.

보조 고정 IP 주소 구성

이 단계에서는 네트워크 인터페이스에 추가 고정 IP 주소를 수동으로 할당합니다. 고정 IP 는 동일한 주소에서 일관되게 액세스할 수 있어야 하는 서버에 유용합니다.

중요 참고 사항: 원격 실습 세션 중이므로 기존 IP 주소를 제거하거나 네트워크 인터페이스를 비활성화해서는 안 됩니다. 그렇게 하면 연결이 끊어집니다. 대신 인터페이스에 두 번째 IP 주소를 추가할 것입니다. 이는 일반적이고 안전한 방법입니다.

  1. eth0 인터페이스에 /24 서브넷 마스크를 사용하여 새 고정 IP 주소 192.168.1.10을 할당합니다. 인터페이스 이름이 다른 경우 해당 이름을 사용하십시오.

    sudo ip addr add 192.168.1.10/24 dev eth0

    이 명령어는 기존 주소에 영향을 주지 않고 새 주소를 추가합니다. 성공하면 아무런 출력이 없습니다.

  2. 마지막으로 새 IP 주소가 할당되었는지 확인합니다. ip a 명령어를 다시 사용하고 eth0 인터페이스를 지정합니다.

    ip a show eth0

    이제 eth0 인터페이스에 대해 원래 동적 IP 주소와 새 고정 IP 주소가 모두 나열된 것을 볼 수 있어야 합니다.

    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:0f:23:a5 brd ff:ff:ff:ff:ff:ff
        altname enp0s5
        inet 172.16.50.11/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
           valid_lft 1892159595sec preferred_lft 1892159595sec
        inet 192.168.1.10/24 scope global eth0
           valid_lft forever preferred_lft forever
        inet6 fe80::216:3eff:fe0f:23a5/64 scope link
           valid_lft forever preferred_lft forever

    두 번째 inet 필드에 이제 192.168.1.10/24가 표시되는 것을 확인하십시오. 연결을 유지하면서 임시 고정 IP 주소를 성공적으로 추가했습니다.

기본 게이트웨이 설정 및 ping 으로 연결 확인

이 단계에서는 기본 게이트웨이를 설정하고 네트워크 연결을 테스트합니다. **기본 게이트웨이 (default gateway)**는 대상이 다른 네트워크 (예: 인터넷) 에 있을 때 시스템이 트래픽을 보내는 라우터입니다.

시스템에는 이미 실습 환경에서 제공하는 기본 게이트웨이가 있습니다. 이를 변경하거나 제거하면 연결이 끊어집니다. 이 명령어를 안전하게 연습하기 위해 더 높은 **메트릭 (metric)**을 가진 새 두 번째 기본 경로를 추가할 것입니다. 메트릭이 높을수록 우선순위가 낮아지므로 시스템은 실제 트래픽에 사용하지 않아 연결을 안전하게 유지합니다.

  1. 192.168.1.0/24 네트워크에 대한 기본 게이트웨이 경로를 추가해 보겠습니다. 게이트웨이 IP 를 192.168.1.1로 설정하고 metric200으로 지정합니다.

    sudo ip route add default via 192.168.1.1 dev eth0 metric 200
    • default: 이것이 기본 경로임을 지정합니다.
    • via 192.168.1.1: 게이트웨이 라우터의 IP 입니다.
    • dev eth0: eth0 인터페이스를 통해 경로에 액세스할 수 있습니다.
    • metric 200: 기존 기본 경로 (메트릭이 더 낮음) 보다 이 경로의 우선순위를 낮게 만듭니다.
  2. 라우팅 테이블을 표시하여 경로가 추가되었는지 확인합니다.

    ip route

    출력은 복잡하고 다양할 수 있지만, 이제 default로 시작하는 두 개의 줄이 포함되어야 합니다. 원래 게이트웨이는 더 낮은 메트릭 (예: 100) 을 가지며, 새로 추가한 경로는 메트릭이 200 입니다.

    default via 172.16.50.253 dev eth0 proto dhcp src 172.16.50.11 metric 100
    default via 192.168.1.1 dev eth0 metric 200
    172.16.50.0/24 dev eth0 proto kernel scope link src 172.16.50.11 metric 100
    192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10
    ... (다른 경로가 있을 수 있음)
  3. 이제 ping으로 연결을 테스트해 보겠습니다. 호스트에 도달 가능한지 확인하기 위해 ICMP "echo request"를 보냅니다. 가상 네트워크를 위해 방금 구성한 게이트웨이를 ping 해보겠습니다.

    ping -c 3 192.168.1.1

    예상 결과: 이 명령어는 실패할 것으로 예상됩니다. eth0192.168.1.10/24 IP 를 추가했기 때문에 시스템은 192.168.1.1이 동일한 로컬 네트워크에 있다고 가정합니다. 직접 도달하려고 시도하지만 해당 주소를 가진 장치가 없으므로 "Destination Host Unreachable"이 표시됩니다.

    PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
    From 192.168.1.10 icmp_seq=1 Destination Host Unreachable
    From 192.168.1.10 icmp_seq=2 Destination Host Unreachable
    From 192.168.1.10 icmp_seq=3 Destination Host Unreachable
    
    --- 192.168.1.1 ping statistics ---
    3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2039ms

    이것이 올바르고 예상된 결과입니다. 기본 경로를 추가하고 ping을 사용하여 테스트하는 방법을 배웠습니다.

dhclient 를 사용하여 동적 IP 주소로 되돌리기

이 단계에서는 생성한 정적 구성을 제거한 다음 dhclient를 사용하여 DHCP 서버에서 동적 IP 임대를 새로 고칩니다.

먼저 isc-dhcp-client 패키지의 일부인 dhclient 도구가 기본적으로 설치되어 있지 않을 수 있습니다. 사용 가능한지 확인해 보겠습니다.

  1. 시스템의 패키지 목록을 업데이트하고 DHCP 클라이언트를 설치합니다.

    sudo apt-get update
    sudo apt-get install -y isc-dhcp-client

    이제 이전 단계에서 추가한 정적 IP 및 경로를 연결을 방해하지 않고 안전하게 제거해 보겠습니다.

  2. eth0에서 정적 IP 주소를 삭제합니다.

    sudo ip addr del 192.168.1.10/24 dev eth0
  3. 추가한 정적 기본 경로를 삭제합니다.

    sudo ip route del default via 192.168.1.1 dev eth0

    이제 네트워크 구성이 원래 상태로 돌아갔습니다. dhclient를 시연하기 위해 DHCP 서버에서 IP 주소 새로 고침을 요청해 보겠습니다.

  4. 먼저 현재 DHCP 임대를 해제합니다.

    sudo dhclient -r eth0
  5. 다음으로 DHCP 서버에서 새 임대를 요청합니다.

    sudo dhclient eth0

    RTNETLINK answers: File exists 메시지가 표시될 수 있습니다. 이는 정상입니다. 단순히 dhclient가 이미 존재하는 경로를 추가하려고 시도한다는 것을 의미하므로 변경이 필요하지 않습니다. 연결은 안정적으로 유지됩니다.

  6. eth0 인터페이스를 다시 확인하여 구성을 확인합니다.

    ip a show eth0

    이제 출력에는 원래 동적 IP 주소만 표시되어야 하며, 일반적으로 172.16.x.x 또는 172.17.x.x 범위에 있습니다. 정적 IP 192.168.1.10은 사라져야 합니다.

    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:0f:23:a5 brd ff:ff:ff:ff:ff:ff
        altname enp0s5
        inet 172.16.50.11/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
           valid_lft 1892159460sec preferred_lft 1892159460sec
        inet6 fe80::216:3eff:fe0f:23a5/64 scope link
           valid_lft forever preferred_lft forever

    정적 구성을 성공적으로 정리하고 동적 IP 임대를 새로 고쳤습니다.

arptraceroute 로 네트워크 구성 확인

이 마지막 단계에서는 arptraceroute를 사용하여 네트워크 구성을 검사하는 방법을 배웁니다.

먼저 필요한 도구가 설치되어 있는지 확인합니다. arpnet-tools에 포함되어 있고, traceroute는 자체 패키지에 포함되어 있습니다.

  1. net-toolstraceroute 설치:

    sudo apt-get update
    sudo apt-get install -y net-tools traceroute

arp를 사용하여 ARP 캐시 보기

**주소 결정 프로토콜 (ARP)**은 로컬 네트워크에서 IP 주소를 물리적 MAC 주소에 매핑합니다. 결과는 ARP 캐시에 저장됩니다.

  1. ARP 캐시를 채우려면 먼저 라우팅 테이블에서 기본 게이트웨이의 IP 를 찾습니다.

    ip route | grep default

    출력에서 게이트웨이 IP 를 확인할 수 있습니다. IP 주소는 달라질 수 있습니다.

    default via 172.16.50.253 dev eth0
    default via 172.16.50.253 dev eth0 proto dhcp src 172.16.50.11 metric 100
  2. 이제 해당 게이트웨이 IP(예: 위 예시의 172.16.50.253) 를 ping 하여 트래픽을 생성합니다.

    ping -c 1 <your-gateway-ip>
  3. arp -a를 사용하여 ARP 캐시를 표시합니다.

    arp -a

    게이트웨이의 IP 및 MAC 주소가 표시됩니다. 이전에 ping 을 시도했던 192.168.1.1 주소에 대한 <incomplete> 항목도 표시될 수 있으며, 이는 정상입니다.

    ? (192.168.1.1) at <incomplete> on eth0
    _gateway (172.16.50.253) at ee:ff:ff:ff:ff:ff [ether] on eth0

    이를 통해 시스템이 게이트웨이의 IP 를 MAC 주소로 성공적으로 확인했음을 확인할 수 있습니다.

traceroute를 사용하여 네트워크 경로 추적하기

traceroute 명령어는 패킷이 대상에 도달하기 위해 거치는 라우터 ("홉") 의 순서를 보여줍니다.

  1. google.com과 같은 공개 도메인으로 경로를 추적해 보겠습니다.

    traceroute google.com

    명령어를 실행하면 경로가 출력됩니다. 참고: 많은 클라우드 환경에서 traceroute가 표시하는 첫 번째 홉은 내부 IP 주소일 수 있으며 라우팅 테이블의 기본 게이트웨이와 동일하지 않을 수 있습니다. 이는 정상적인 동작입니다.

    traceroute to google.com (142.250.189.174), 30 hops max, 60 byte packets
     1  10.220.9.2 (10.220.9.2)  0.345 ms  ...
     2  11.73.5.1 (11.73.5.1)  1.978 ms ...
     3  ...
     8  sfo03s24-in-f14.1e100.net (142.250.189.174)  3.001 ms ...
    • 첫 번째 홉은 실험실 제공업체 네트워크 내부의 라우터입니다.
    • 이후 홉은 인터넷을 통해 최종 목적지까지의 경로를 보여줍니다.
    • 경로상의 라우터가 방화벽 또는 기타 네트워크 정책으로 인해 traceroute 프로브에 응답하지 않으면 별표 (* * *) 가 표시될 수 있습니다.

축하합니다! 이제 Linux 시스템에서 IP 주소 지정을 검사, 정적 구성 및 동적 구성하는 방법을 배웠으며, ping, arp, traceroute와 같은 주요 도구를 사용하여 네트워크를 확인하고 문제를 해결하는 방법을 익혔습니다.

요약

이 실험실에서는 Linux 환경에서 IP 주소 지정 관리에 대한 기본 기술을 배웠습니다. ip a 명령을 사용하여 네트워크 인터페이스와 현재 구성을 검사하여 eth0과 같은 대상 인터페이스를 식별하는 것부터 시작했습니다. 그런 다음 ip addr add를 사용하여 정적 IP 주소와 서브넷 마스크를 수동으로 할당하는 연습을 하고, 외부 네트워크와의 통신을 활성화하기 위해 ip route add를 사용하여 기본 게이트웨이를 설정했습니다. 수동 구성과 대조하기 위해 dhclient 명령을 사용하여 DHCP 서버에서 IP 주소, 서브넷 마스크 및 게이트웨이를 자동으로 얻는 방법도 배웠습니다.

또한 필수 네트워크 확인 및 문제 해결 도구를 살펴보았습니다. ping 명령을 사용하여 기본 게이트웨이와 외부 호스트 모두에 대한 기본 네트워크 연결을 확인했습니다. 네트워크 계층에 대한 더 깊은 통찰력을 얻기 위해 arp 명령으로 주소 결정 프로토콜 (ARP) 캐시를 검사하여 IP-MAC 주소 매핑을 확인했습니다. 마지막으로 traceroute를 사용하여 대상까지 네트워크 경로를 홉별로 추적하여 라우팅 구성을 확인했습니다.