소개
이 실습에서는 현대적이고 강력한 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)**로, 시스템이 자체적으로 통신하는 데 사용하는 가상 네트워크 인터페이스입니다. 항상 IP 주소127.0.0.1을 가집니다.eth0(또는enp0s5와 같은 유사한 이름): 이것은 시스템을 외부 네트워크에 연결하는 기본 **이더넷 인터페이스 (Ethernet interface)**입니다. 인터페이스의 대체 이름을 제공하는altname필드를 주목하십시오.docker0: Docker 가 설치되어 있다면, 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) 주소를 식별하는 방법을 배우게 됩니다. 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) 찾기
이 단계에서는 인터넷 프로토콜 버전 4(IPv4) 주소를 찾게 됩니다. 물리적인 MAC 주소와 달리 IP 주소는 네트워크에서 통신하기 위해 장치에 할당되는 논리적 주소입니다. IPv4 주소는 가장 일반적인 형식으로, 점으로 구분된 네 개의 숫자로 표현됩니다 (예: 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) 찾기
마지막 단계에서는 인터넷 프로토콜 버전 6(IPv6) 주소를 식별하게 됩니다. 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: 이것은 IPv6 루프백 주소의 압축된 형식으로, IPv4 의127.0.0.1과 동일합니다.fe80::216:3eff:fe0e:d83c/64: 이것은eth0인터페이스의 링크 - 로컬 (link-local) IPv6 주소입니다. 링크 - 로컬 주소는 모든 IPv6 지원 인터페이스에 자동으로 구성되며 동일한 로컬 네트워크 세그먼트에서만 통신하는 데 사용됩니다. 사용자의 주소는 다를 것입니다.
축하합니다! 이제 Linux 시스템에서 ip a 명령어를 사용하여 MAC 주소, IPv4 주소 및 IPv6 주소를 식별하는 방법을 배웠습니다.
요약
이 실습에서는 Linux 에서 네트워크 주소를 식별하기 위해 ip a 명령어를 사용하는 방법을 배웠습니다. 모든 네트워크 인터페이스에 대한 포괄적인 정보를 표시하기 위해 최신이며 선호되는 네트워크 구성 도구인 ip a를 실행했습니다. 출력은 루프백 인터페이스 (lo) 와 기본 이더넷 인터페이스 (eth0) 모두에 대한 세부 정보를 보여주어 시스템의 네트워크 설정에 대한 완전한 개요를 제공했습니다.
ip a 명령어의 출력을 검토함으로써 특정 네트워크 식별자를 찾는 방법을 배웠습니다. link/ether로 표시된 줄에서 MAC 주소를 성공적으로 식별했습니다. 또한 inet 레이블 옆에서 시스템의 IPv4 주소를, inet6 레이블 옆에서 IPv6 주소를 찾아 Linux 시스템에서 필수 네트워크 주소 정보를 검색하는 기본적인 기술을 익혔습니다.



