[Network] ip address 명령어에 대해서 알아보기
ip address 명령어와 해당 내용에 대해서 간략하게 알아보자
환경 및 선수조건
- Linux
- Bash shell(/bin/bash)
- [Network] ifconfig 명령어에 대해서 알아보기
ip 명령어
ip 명령어란?
ip
: 라우팅, 장치(NIC, Bridge …) 그리고 터널링과 같이 네트워크에 관련된 부분들을 수정하고 조회할 떄 사용하는 명령어입니다.ip(in english)
: show or manipulate routing, devices, policy routing and tunnels- 사용법
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJETCT
:link, address, route, rule, tunnel
와 같은 대상들을 조회 및 수정할 수 있습니다.
ip address란?
- 위의
ip
명령어에서OBJETCT
가address
인 명령어로 NIC들에 대해 IP주소를 조회할 수 있으며 나아가 추가 혹은 삭제도 가능한 명령어입니다.
ip address 예시
- 아래는 제가 생성한 VM에서
ip address
의 출력결과 입니다.
$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
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 pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:45:44:cc brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe45:44cc/64 scope link
valid_lft forever preferred_lft forever
ip address 항목 설명
LOOPBACK
- 자신의 호스트로 보내는 인터페이스를 의미합니다.
localhost
와 같습니다.
BROADCAST
- 브로드캐스트 패킷을 처리할 수 있음을 의미하며 해당 기능을 통해 DHCP 서버로부터 IP주소를 받을 수 있습니다.
MULTICAST
- 멀티캐스트 패킷을 처리할 수 있음을 의미합니다.
UP
- 해당 NIC가 작동중임을 나타냅니다.
LOWER_UP
- L1 레이어 즉, 물리계층에서 신호가 UP이라는 의미로 물리계층에서 신호가 들어오고 있음을 의미합니다.
mtu
- 해당 프로토콜이 해당 레이어에서 전송할 수 있는 최대의 단위(바이트)로 이더넷의 기본값은 1500으로 설정됩니다.
qdisc
- Queuing Disciplines를 의미하며 NIC에 들어오기전에 데이터 패킷들이 Queue에 저장되는데 FIFO형식인 Queue에 넣기전에 패킷에 우선순위를 부여해서 스케쥴링하는 부분으로 현재 eth0의 경우 pfifo_fast라는 방식을 사용한다는 의미입니다.
state
- 현재 NIC의 작동상태를 의미합니다.
group
- 인터페이스 그룹을 의미합니다. 기본값은 default입니다.
qlen
- 전송큐의 크기를 의미합니다.
link/ether
- L2 레이어 즉, Link Layer의 프로토콜이 Ethernet이라는 의미이며 바로 옆에 나오는 주소는 해당 NIC의 MAC주소이고 brd는 브로드캐스트를 할 때의 주소를 의미합니다.
inet
- L3 레이어 즉, Network Layer가 인터넷임을 의미하며 바로 옆에 나오는 주소는 ipv4와 ipv6에 따른 주소를 의미합니다.
scope
- 해당 인터페이스가 어느 수준에서 접근가능하며 유효하냐는 의미입니다. Global의 경우 외부 네트워크에서 접근이 가능한 범위이며(클라우드에서 호스팅한 인스턴스에 들어가면 Global로 나와있는 경우가 있습니다.) Link의 경우 현재 인터페이스가 속한 LAN안에서만 접근이 가능하고 유효하며 Host의 경우는 현재 인터페이스가 속해있는 호스트에서만 유효하고 접근이 가능하다
valid_lft, preferred_lft
- 자료의 내용을 참고하면 valid_lft(Valid Lifetime)은 해당 주소가 유효한 시간을 의미하며 뒤에 나온 preferred_lft(Preferred Lifetime)보다 크거나 같다고 합니다. preferred_lft은 의미 그대로 해당 주소가 유효했으면 하는 설정값입니다.
참고자료
- https://unix.stackexchange.com/questions/335077/ip-link-and-ip-addr-output-meaning
- https://www.coverfire.com/articles/queueing-in-the-linux-network-stack/
- https://www.tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.qdisc.classless.html
- https://unix.stackexchange.com/questions/465563/how-to-understand-ifconfig-or-ip-addr-show
- https://learningnetwork.cisco.com/thread/124273
- http://h22208.www2.hpe.com/eginfolib/networking/docs/switches/WB/16-01/5200-0135_wb_2920_ipv6/content/ch01s15.html