Search
moon
sun
📮

ip 명령어 메세지 살펴보기

간단소개
네트워크 문제가 있어서 아묻따 터미널에 ip a 입력해보는데, 메세지 먼 말인지 몰라서 감상만 잘 하고 나와봤다면 거수 (일단 나부터 ㅋㅋ 🖐)
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
Linux
Network
Scrap
태그
linux
network
9 more properties

ip 명령어란?

•
Linux 시스템의 네트워크 인터페이스를 설정하는 명령어 도구.
•
1) IP 주소를 변경/설정하거나, 2) 네트워크 인터페이스를 추가/삭제하거나, 3) 네트워크 라우팅을 관리할 수 있다.
•
ifconfig 라는 명령어가 보다 친숙할 수 있지만… deprecated된 명령어기 때문에 ip를 사용하는 것이 권장되는 분위기. (사실 요즘은 nmcli 사용을 보다 추천하는 것 같다.)
•
무엇보다 ip 명령어를 사용하면 즉각 설정이 반영된다! 하지만 시스템 리부팅을 하면 설정한 내용이 날아가니, 쉘스크립트로 설정 파일을 따로 만들어놓는걸 추천한다고…
❗
유저라면 sudo 권한으로 사용해야 하는 것을 잊지 마세요!

ip 명령어의 형태

ip [ OPTIONS ] OBJECT { COMMAND | help }
Shell
복사
•
1) IP 주소 관리는 address, 2) 네트워크 인터페이스 관리는 link, 3) 라우팅은 route라는 이름으로 OBJECT 필드에 들어간다.
•
(물론 이외에도 다양한 네트워크 작업을 가능하게 하는 요소들이 OBJECT 필드에 담겨있다.)

ip 명령어 메세지 살펴보기

1) IP 주소 관리

•
OBJECT 필드에 address라는 이름으로 들어간다.
•
ip address, 혹은 ip a를 입력하면, 컴퓨터가 가지고 있는 네트워크 인터페이스를 IP 주소와 함께 나열한다.
# 뒤에 show를 붙여도 된다. > ip address show 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 9001 qdisc pfifo_fast state UP group default qlen 1000 link/ether 02:ab:c7:6d:fe:70 brd ff:ff:ff:ff:ff:ff inet 192.168.42.101/20 brd 192.168.42.255 scope global dynamic eth0 valid_lft 2724sec preferred_lft 2724sec inet6 fe80::5e:e7ff:fe6e:fe70/64 scope link valid_lft forever preferred_lft forever
Shell
복사
❗
외계어가 써있어도 침착하게 메세지를 하나씩 읽어보자.
1.
루프백(loopback) 인터페이스
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
Shell
복사
•
lo : 네트워크 인터페이스 이름. 루프백 주소를 의미하는 준말이다.
◦
루프백 주소 : 시스템 자기 자신을 가리키기 위한 목적으로 쓰이는 주소. localhost라고도 불리며, 이 주소로 발송된 패킷은 외부로 나가지 않고 시스템 내부에 머문다.
•
<LOOPBACK,UP,LOWER_UP> : 현재 네트워크 인터페이스가 루프백이며(LOOPBACK), 네트워크 계층과 물리 계층 모두 활성화 되어 있다(UP,LOWER_UP) → 즉, 네트워크 장치가 기계에 잘 꽂혀서 돌아가고 있다!
•
mtu 65536 : 현재 인터페이스가 한 번에 전송할 수 있는 패킷의 최대 크기(maximum transfer unit).
•
qdisk noqueue : qdisk는 패킷 전송을 스케쥴링하는 큐잉(queueing, 뀨잉 아님) 메커니즘을 의미한다. noqueue는 패킷을 큐에 담지 말고 바로 보내버리는 정책. (루프백 주소와 같은 가상 장치의 기본 정책이라고 한다.)
•
state UNKNOWN : 현재 네트워크 인터페이스를 사용할 수 있지만, 해당 인터페이스와 연결된 네트워크가 없음을 의미한다.
◦
state DOWN : 현재 네트워크 인터페이스를 사용할 수 없는 상태.
◦
state UP : 현재 네트워크 인터페이스를 사용할 수 있으며, 해당 인터페이스와 연결된 네트워크가 존재하는 상태.
•
group default : 네트워크 인터페이스는 논리적으로 그룹지어질 수 있는데, 해당 인터페이스가 default 라는 그룹에 들어가 있음을 나타낸다.
•
qlen 1000 : 전송 큐(transmission queue)의 최대 길이. 최대 1000개의 패킷을 담을 수 있다.
•
link/loopback : 현재 네트워크 인터페이스의 MAC 주소. 루프백이기에 모두 0으로 되어있다.
◦
link의 의미는 네트워크 계층의 link layer을 뜻한다.
•
inet 127.0.0.1/8 : IPv4 주소. 슬래쉬 뒤의 숫자는 서브넷 마스크를 의미한다. 즉, 이 경우 서브넷 마스크는 255.0.0.0.
•
scope host : IP 주소의 범위. 해당 인터페이스의 IP 주소는 오직 호스트 컴퓨터 내에서만 유효함을 나타내고 있다.
•
lo : 해당 IP 주소와 연관된 네트워크 인터페이스의 이름.
•
valid_lft : 인터페이스가 DHCP에 의해 부여된 IP 주소를 사용할 수 있는 시간.
•
inet6 : IPv6 버전의 정보.
2.
물리(physical) 인터페이스
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000 link/ether 02:ab:c7:6d:fe:70 brd ff:ff:ff:ff:ff:ff inet 192.168.42.101/24 brd 192.168.42.255 scope global dynamic eth0 valid_lft 2724sec preferred_lft 2724sec inet6 fe80::5e:e7ff:fe6e:fe70/64 scope link valid_lft forever preferred_lft forever
Shell
복사
•
eth0 : 네트워크 인터페이스 이름. 첫 번쨰 이더넷 인터페이스를 의미한다.
◦
모든 이더넷 장비 이름이 eth0 으로 되어있는 것은 아니다. 운영체제에 따라 네트워크 이름이 달라질 수 있다.
•
<BROADCAST,MULTICAST,UP,LOWER_UP> : 현재 네트워크 인터페이스는 브로드캐스팅과 멀티캐스팅을 지원하며, 네트워크 계층과 물리 계층 모두 활성화되어 있다.
◦
브로드캐스트 : 같은 네트워크에 있는 모든 장비들에게 패킷을 전송.
◦
멀티캐스트 : 같은 네트워크에 있는 장비들 중, 특정 그룹에 패킷을 전송.
•
mtu 1500 : 해당 인터페이스가 한 번에 전송할 수 있는 패킷의 최대 크기.
•
qdisc pfifo_fast : 패킷 필터링을 빠르게 할 수 있는 FIFO 정책인 것 같은데 자세한 작동은 저도 몰겟습니다 ㅎㅎ;;
•
state UP : 해당 인터페이스가 작동 가능함을 나타낸다.
•
group default : 해당 인터페이스는 default라는 그룹에 속한다.
•
qlen 1000 : 전송 큐의 최대 길이.
•
link/ether : 해당 인터페이스의 MAC 주소.
•
inet 192.168.42.101/24 : IPv4 주소. 슬래쉬 뒤의 숫자가 24이므로 서브넷 마스크는 255.255.255.0.
•
brd 192.168.42.255 : 해당 IP 주소의 서브넷의 브로드캐스트 주소.
◦
브로드캐스트 주소는 같은 네트워크에 있는 모든 컴퓨터에게 데이터를 전송하는데 사용된다. 이 경우, 192.168.42.255로 데이터를 전송하면, 같은 네트워크 안에 있는 모든 컴퓨터가 데이터를 받게 된다.
•
scope global : 해당 IP 주소는 외부에서 접근이 가능하다.
•
dynamic : 인터페이스가 DOWN되면 IP 주소도 같이 사라진다. 즉, 해당 IP 주소는 DHCP에 의해 배정되었다는 것!
•
eth0 : 해당 IP 주소와 관련된 네트워크 인터페이스의 이름.
•
valid_lft : 인터페이스가 DHCP에 의해 부여된 IP 주소를 사용할 수 있는 시간. 인터페이스는 해당 IP 주소를 2724초 동안 유효한 주소로 사용할 수 있다.
•
preferred_lft : DHCP에 의해 부여된 IP주소를 보증하는 시간.
•
inet6 : IPv6 정보.
•
scope link : 현재 인터페이스가 속한 LAN에서만 접근이 가능하다.

2) 네트워크 인터페이스 관리

•
OBJECT 필드에 link라는 이름으로 들어간다.
•
ip link, 혹은 ip l를 입력하면, 컴퓨터가 가지고 있는 네트워크 인터페이스를 나열한다.
•
(정확히는 네트워크 인터페이스의 link layer 정보를 보여준다.)
# 역시 show를 뒤에 붙일 수 있다. > 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 02:ab:c7:6d:fe:70 brd ff:ff:ff:ff:ff:ff
Shell
복사
•
mode DEFAULT : 음… link 계층의 주소가 있으면 인터페이스가 패킷 전송을 수행한다고 생각하는데, 정확하지 않아 링크를 달아봅니다… (찾아봐도 자료가 잘 안나오네요…)
•
나머지는… 다 아는 얼굴들이구먼!

3) 라우팅 관리

•
OBJECT 필드에 route라는 이름으로 들어간다.
•
ip route, 혹은 ip r를 입력하면, 네트워크 트래픽이 어떤 IP 주소로 라우팅되는지 확인할 수 있다.
# show! 혹은... list를 사용할 수도 있다. > ip route list default via 192.168.42.1 dev eth0 192.168.42.0/24 dev eth0 proto kernel scope link src 192.168.42.26
Shell
복사
1.
default route
default via 192.168.42.1 dev eth0
Shell
복사
•
default : 특별한 목적지가 정해지지 않은 모든 패킷들을 의미.
•
via 192.168.42.101 : 위의 패킷을 192.168.42.101로 보낼 것을 지시. 따라서, 해당 IP 주소가 호스트 네트워크의 기본(default) 라우터로 여겨지게 된다.
•
dev eth0 : 패킷을 라우터로 보내는데 eth0 네트워크 인터페이스를 사용한다.
→ 즉, 특별히 정해지지 않은 모든 패킷들은 eth0을 통해 192.168.42.1로 향한다.
2.
specific packet route (이름은 제가 마음대로 짓는 중 ㅎㅎ;;)
192.168.42.0/24 dev eth0 proto kernel scope link src 192.168.42.26
Shell
복사
•
192.168.42.0/24 : 해당 IP 주소의 범위에 해당하는 패킷들을 의미. 만약 컴퓨터가 해당 IP 주소의 범위 안에서 송수신을 진행하는 경우, 위의 라우팅 정책이 활성화된다.
•
dev eth0 : 패킷을 라우팅하는데 사용되는 네트워크 인터페이스 이름.
•
proto kernel : 해당 라우팅은 커널에 의해 자동 생성되었다.
•
scope link : 해당 라우팅은 현재 컴퓨터가 연결되어 있는 LAN 내에서만 유효하다.
•
src 192.168.42.26 : 위 패킷들이 향하는 목적지의 IP 주소.
→ 즉, 192.168.42.0/24에 해당하는 모든 패킷들은 eth0을 통해 192.168.42.26으로 향한다.

ip 명령어 사용법

(힘들어서 생략…)

참고자료

•
ip command
•
loopback interface
•
broadcast
•
ip interface flags
•
ip route