소개
이 실습에서는 현대적이고 강력한 ip a 명령어를 사용하여 Linux 시스템의 필수 네트워크 주소 정보를 식별하는 방법을 배웁니다. 주요 목표는 시스템의 네트워크 인터페이스를 검사하고, 명령어 출력 내에서 MAC 주소, IPv4 주소, IPv6 주소와 같은 특정 세부 정보를 찾는 데 능숙해지는 것입니다.
먼저 ip a 명령어를 실행하여 루프백(lo) 및 기본 이더넷(eth0) 인터페이스를 포함한 모든 네트워크 인터페이스의 포괄적인 개요를 확인합니다. 그 후, 상세 출력 결과를 해석하여 MAC 주소를 나타내는 link/ether 라인, IPv4 주소를 나타내는 inet 라인, 그리고 IPv6 주소를 나타내는 inet6 라인을 찾아내는 방법을 배우며 Linux 네트워크 분석의 기초를 다지게 됩니다.
ip a를 사용하여 모든 네트워크 인터페이스 정보 표시하기
이 단계에서는 Linux 시스템에서 네트워크 인터페이스, IP 주소 및 경로를 확인하고 조작하기 위한 현대적이고 권장되는 도구인 ip 명령어 사용법을 배웁니다. 먼저 사용 가능한 모든 네트워크 인터페이스에 대한 정보를 표시하는 가장 기본적인 명령어부터 시작합니다.
ip a 명령어는 ip address show의 단축 명령어입니다. 이 명령어는 시스템의 네트워크 구성에 대한 포괄적인 개요를 제공합니다.
먼저 터미널에 있는지 확인하십시오. 기본 경로는 ~/project입니다. 이제 ip a 명령어를 실행하여 모든 네트워크 인터페이스와 연결된 주소를 나열합니다.
ip a
모든 네트워크 인터페이스가 나열된 상세한 출력 결과를 볼 수 있습니다. 일반적으로 다음과 같은 인터페이스를 확인할 수 있습니다.
lo: **루프백 인터페이스(loopback interface)**로, 시스템이 자기 자신과 통신하기 위해 사용하는 가상 네트워크 인터페이스입니다. 항상127.0.0.1IP 주소를 가집니다.eth0(또는enp0s5와 같은 유사한 이름): 시스템을 외부 네트워크에 연결하는 기본 **이더넷 인터페이스(Ethernet interface)**입니다. 인터페이스의 대체 이름을 제공하는altname필드를 확인하십시오.docker0: Docker가 설치되어 있다면 Docker 컨테이너 네트워킹을 위해 생성된 가상 브리지인docker0인터페이스가 보일 수 있습니다.
출력 결과는 아래 예시와 비슷하게 나타나지만, 구체적인 이름과 주소는 다를 수 있습니다.
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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:16:3e:0e:d8:3c brd ff:ff:ff:ff:ff:ff
altname enp0s5
altname ens5
inet 172.16.50.202/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
valid_lft 1892159975sec preferred_lft 1892159975sec
inet6 fe80::216:3eff:fe0e:d83c/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:60:7e:6f:bc 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
잠시 시간을 내어 출력 결과를 살펴보십시오. 다음 단계에서는 이 정보를 분석하여 MAC 주소 및 IP 주소와 같은 특정 세부 정보를 식별하는 방법을 알아봅니다.
MAC 주소(link/ether) 찾기
이 단계에서는 ip a 명령어의 출력 결과에서 **MAC 주소(Media Access Control address)**를 식별하는 방법을 배웁니다. MAC 주소는 네트워크 인터페이스 카드(NIC)에 할당된 고유한 하드웨어 수준의 식별자입니다. 물리적 주소라고도 하며, 12자리 16진수로 표시됩니다.
이전 단계에서 ip a를 실행하여 많은 정보를 확인했습니다. 이제 MAC 주소를 찾는 데 집중해 보겠습니다. 일반적으로 eth0인 기본 네트워크 인터페이스를 찾으십시오. MAC 주소는 link/ether로 시작하는 라인에 위치합니다.
더 쉽게 찾기 위해 ip a의 출력 결과를 grep 명령어로 파이프(|)하여 MAC 주소가 포함된 라인만 필터링할 수 있습니다. 파이프 기호 |는 왼쪽 명령어의 출력 결과를 오른쪽 명령어의 입력으로 전달합니다.
터미널에서 다음 명령어를 실행하십시오.
ip a | grep "link/ether"
이 명령어는 ip a 출력 결과 중 "link/ether" 문자열이 포함된 라인만 표시합니다.
훨씬 간결한 출력 결과를 통해 MAC 주소를 쉽게 찾을 수 있습니다. 콜론으로 구분된 12개의 16진수 문자가 바로 MAC 주소입니다.
link/ether 00:16:3e:0e:d8:3c brd ff:ff:ff:ff:ff:ff
link/ether 02:42:60:7e:6f:bc brd ff:ff:ff:ff:ff:ff
루프백 인터페이스 lo는 전통적인 MAC 주소를 가지고 있지 않으므로 이 필터링된 출력에는 나타나지 않습니다. 이 예시에서 00:16:3e:0e:d8:3c은 eth0 인터페이스의 MAC 주소입니다. 여러분의 주소는 다르겠지만 형식은 동일합니다.
IPv4 주소(inet) 찾기
이 단계에서는 IPv4(Internet Protocol Version 4) 주소를 찾습니다. 물리적 MAC 주소와 달리 IP 주소는 네트워크 통신을 위해 장치에 할당된 논리적 주소입니다. IPv4 주소는 가장 일반적인 형식으로, 점으로 구분된 4개의 숫자로 표시됩니다(예: 192.168.1.10).
ip a 명령어의 출력 결과 내에서 IPv4 주소는 inet으로 시작하는 라인에서 찾을 수 있습니다. MAC 주소를 찾을 때와 마찬가지로 grep 명령어를 사용하여 출력을 필터링할 수 있습니다. inet6와 혼동되지 않도록 검색 패턴에서 inet 뒤에 공백을 포함하는 것이 좋습니다.
터미널에서 다음 명령어를 실행하여 시스템에 구성된 모든 IPv4 주소를 찾으십시오.
ip a | grep "inet "
이 명령어는 IPv4 주소가 포함된 라인만 표시하도록 출력을 필터링합니다. 일반적으로 루프백 인터페이스(lo)용 하나, 기본 네트워크 인터페이스(eth0)용 하나, 그리고 docker0와 같은 다른 인터페이스용 주소 등 여러 개가 표시됩니다.
inet 127.0.0.1/8 scope host lo
inet 172.16.50.202/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
이 출력 결과에서 여러 IPv4 주소를 식별할 수 있습니다.
127.0.0.1: 시스템이 자기 자신과 통신하기 위해 사용하는 루프백 주소입니다.172.16.50.202/24: 네트워크의 다른 장치와 통신하는 데 사용되는eth0인터페이스의 기본 IPv4 주소입니다./24는 네트워크의 서브넷 마스크를 정의하는 CIDR 표기법입니다. 여러분의 주소는 다를 수 있습니다.172.17.0.1/16:docker0브리지의 IPv4 주소입니다.
IPv6 주소(inet6) 찾기
마지막 단계에서는 IPv6(Internet Protocol Version 6) 주소를 식별합니다. IPv6는 IPv4의 후속 버전으로, IPv4 주소 고갈 문제를 해결하기 위해 설계되었습니다. IPv6 주소는 128비트 길이이며 콜론으로 구분된 16진수 표기법으로 작성됩니다(예: 2001:0db8:85a3:0000:0000:8a2e:0370:7334).
IPv4와 마찬가지로 ip a 명령어는 IPv6 정보도 표시합니다. IPv6 주소가 포함된 라인은 inet6로 명확하게 표시됩니다. 마지막으로 grep을 사용하여 이 정보를 추출해 보겠습니다.
터미널에서 다음 명령어를 실행하여 시스템의 모든 IPv6 주소를 찾으십시오.
ip a | grep "inet6"
이 명령어는 인터페이스의 IPv6 주소가 포함된 라인을 보여줍니다.
inet6 ::1/128 scope host
inet6 fe80::216:3eff:fe0e:d83c/64 scope link
이 출력 결과에서 두 개의 IPv6 주소를 식별할 수 있습니다.
::1/128: IPv4의127.0.0.1과 동일한 IPv6 루프백 주소의 압축 형식입니다.fe80::216:3eff:fe0e:d83c/64:eth0인터페이스의 링크 로컬(link-local) IPv6 주소입니다. 링크 로컬 주소는 IPv6가 활성화된 모든 인터페이스에 자동으로 구성되며, 동일한 로컬 네트워크 세그먼트 내에서만 통신하는 데 사용됩니다. 여러분의 주소는 다를 수 있습니다.
축하합니다! 이제 ip a 명령어를 사용하여 Linux 시스템에서 MAC 주소, IPv4 주소 및 IPv6 주소를 식별하는 방법을 익혔습니다.
요약
이번 실습에서는 Linux에서 네트워크 주소를 식별하기 위해 ip a 명령어를 사용하는 방법을 배웠습니다. 네트워크 구성을 위한 현대적이고 권장되는 도구인 ip a를 실행하여 모든 네트워크 인터페이스에 대한 포괄적인 정보를 확인했습니다. 출력 결과는 루프백 인터페이스(lo)와 기본 이더넷 인터페이스(eth0)에 대한 세부 정보를 보여주며, 시스템의 네트워크 설정에 대한 전체적인 개요를 제공했습니다.
ip a 명령어의 출력 결과를 검사함으로써 특정 네트워크 식별자를 찾는 방법을 배웠습니다. link/ether 라벨이 붙은 MAC 주소를 성공적으로 식별했으며, inet 라벨 옆의 IPv4 주소와 inet6 라벨 옆의 IPv6 주소를 찾아내어 Linux 시스템에서 필수적인 네트워크 주소 정보를 검색하는 핵심 기술을 습득했습니다.



