리눅스 ip 명령어 사용 예

리눅스 ip 명령어 사용 예

ip 명령어는 기존의 ifconfig, route, arp 등의 명령을 대체하며, 사용법은 아래와 같다.

Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
       ip [ -force ] -batch filename
where  OBJECT := { link | address | addrlabel | route | rule | neigh | ntable |
                   tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm |
                   netns | l2tp | fou | macsec | tcp_metrics | token | netconf | ila |
                   vrf }
       OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
                    -h[uman-readable] | -iec |
                    -f[amily] { inet | inet6 | ipx | dnet | mpls | bridge | link } |
                    -4 | -6 | -I | -D | -B | -0 |
                    -l[oops] { maximum-addr-flush-attempts } | -br[ief] |
                    -o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] |
                    -rc[vbuf] [size] | -n[etns] name | -a[ll] | -c[olor]}

ip 명령어 뒤의 OBJECT는 전체 단어 대신 줄여서 사용할 수도 있다.

1. NIC(Network Interface Card, 랜카드) 및 연결 상태 확인.

기본적으로 ip link show 명령을 사용한다. 여기서 show는 생략가능하며 link는 줄여여 ‘l’ 만 사용해도 된다.

[root@localhost ~]# ip li show
1: lo:  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: ens32:  mtu 1500 qdisc pfifo_fast master bond0 state UP mode DEFAULT group default qlen 1000
    link/ether 00:50:56:9d:da:8e brd ff:ff:ff:ff:ff:ff
3: ens33:  mtu 1500 qdisc pfifo_fast master bond0 state UP mode DEFAULT group default qlen 1000
    link/ether 00:50:56:9d:da:8e brd ff:ff:ff:ff:ff:ff
4: bond0:  mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 00:50:56:9d:da:8e brd ff:ff:ff:ff:ff:ff

위에서 loopback 을 제외한 ens32, ens33 두개의 NIC을 볼 수 있으며 모두 UP 상태임 을 확인 할 수 있다.

-brief 옵션을 주어 간단하게 볼 수도 있다.

[root@localhost ~]# ip -br link
lo               UNKNOWN        00:00:00:00:00:00 
ens32            UP             00:50:56:9d:da:8e 
ens33            UP             00:50:56:9d:da:8e 
bond0            UP             00:50:56:9d:da:8e 

뒤에 NIC을 지정하면 해당 NIC에 관한 내용만 확인 할 수 있다.

ens32의 link 통계를 보려면, ip -s link show ens32 명령을 내리면 된다. 여기서 show는 생략하면 안된다.

[root@localhost ~]# ip -s link ens32
Command "ens32" is unknown, try "ip link help".

[root@localhost ~]# ip -s link show ens32
2: ens32:  mtu 1500 qdisc pfifo_fast master bond0 state UP mode DEFAULT group default qlen 1000
    link/ether 00:50:56:9d:da:8e brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    1088546    15601    0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    0          0        0       0       0       0
[root@localhost ~]# ip -br link show ens32
ens32            UP             00:50:56:9d:da:8e 

2. 연결(link) 설정.
유선 연결의 경우 물리적으로 케이블을 제거하지 않고도 연결을 끊거나 다시 연결할 수 있다.

위에서 확인한 link 중에서 ens32의 연결을 끊어 본다.

[root@localhost ~]# ip link set ens32 down

연결을 확인 해 보면, ens32가 down 상태인 것을 볼 수 있다.

[root@localhost ~]# ip -br link
lo               UNKNOWN        00:00:00:00:00:00 
ens32            DOWN           00:50:56:9d:da:8e 
ens33            UP             00:50:56:9d:da:8e 
bond0            UP             00:50:56:9d:da:8e 

다시 연결하고 확인 해 보면 아래와 같은 결과를 볼 수 있다.

[root@localhost ~]# ip link set ens32 up

[root@localhost ~]# ip -br link show dev ens32
ens32            UP             00:50:56:9d:da:8e 

3. 라우팅 정보 확인 및 라우팅 추가 삭제.
ip route 명령어로 라우팅 정보를 확인 할 수 있다.

[root@localhost ~]# ip route
default via 172.16.96.1 dev bond0 proto static metric 300
172.16.96.0/24 dev bond0 proto kernel scope link src 172.16.96.223 metric 300

라우팅 추가/삭제.

NIC를 하나 더 추가(ens35)하고 ip 주소(192.168.1.1)를 설정했다.
라우팅 확인해 보면,

[root@localhost ~]# ip route
default via 172.16.96.1 dev bond0 proto static metric 300
172.16.96.0/24 dev bond0 proto kernel scope link src 172.16.96.223 metric 300
192.168.1.0/24 dev ens35 proto kernel scope link src 192.168.1.1

이제, 192.168.10.0/24 네트워크를 192.168.1.1로 라우팅되도록 라우팅을 추가하려면,

[root@localhost ~]# ip route add 192.168.10.0/24 via 192.168.1.1 dev ens35

맨 마지막줄에 위에서 추가한 라우팅 정보를 확인 할 수 있다.

[root@localhost ~]# ip route
default via 172.16.96.1 dev bond0 proto static metric 300
172.16.96.0/24 dev bond0 proto kernel scope link src 172.16.96.223 metric 300
192.168.1.0/24 dev ens35 proto kernel scope link src 192.168.1.1
192.168.10.0/24 via 192.168.1.1 dev ens35

라우팅 삭제는 add 대신 del을 사용하면 된다. 삭제 후 확인해 보면 아래와 같다.

[root@localhost ~]# ip route del 192.168.10.0/24 via 192.168.1.1 dev ens35

[root@localhost ~]# ip route
default via 172.16.96.1 dev bond0 proto static metric 300
172.16.96.0/24 dev bond0 proto kernel scope link src 172.16.96.223 metric 300
192.168.1.0/24 dev ens35 proto kernel scope link src 192.168.1.1

4. ARP 정보 보기
기존에는 arp 명령어로 ARP 정보를 확인할 수 있었지만, 이제는 ip neigh 명령으로 확인 할 수 있다.

[root@localhost ~]# ip -br neigh
172.16.96.47 dev bond0 lladdr 00:0c:29:f2:0f:0b REACHABLE
172.16.96.2 dev bond0 lladdr a0:ec:f9:2e:c9:e9 STALE
172.16.96.1 dev bond0 lladdr 00:10:f3:9d:90:bd DELAY
172.16.96.121 dev bond0  FAILED

PERMAMENT: 영구적으로 등록된 ARP. 관리 명령어로만 제거 가능함.
NOARP: ARP 항목이 유효함. 유효함을 검증하지는 않지만 기간이 지나면 제거될 항목.
RECHABLE: ARP 항목의 도달 시간이 만료될 때까지 유효함.
STALE: ARP항목이 유효하지만 의심스러운 상태. ARP 상태가 유효하고 ip neigh 명령으로 변경하지 않은 경우에는 ARP 상태를 변경하지 않음.
NONE: ARP 항목이 처음 만들어질 때나 제거하려고 할 때 사용되는 의사(pseudo)상태.
INCOMPLETE: ARP 항목이 검증되거나 결정되지 않았음.
DELAY: ARP 항목 검증이 지연되는 상태.
PROBE: ARP 항목을 검색중인 상태.
FAILED: 최대 검색수를 초과하여 ARP 유효성 검사에 실패함.

수동으로 arp 테이블을 등록하거나 삭제 할 수도 있다. 위에서 FAILED 인 항목을 삭제해 본다.

[root@localhost ~]# ip neigh del 172.16.96.121 dev bond0

[root@localhost ~]# ip neigh
172.16.96.47 dev bond0 lladdr 00:0c:29:f2:0f:0b STALE
172.16.96.2 dev bond0 lladdr a0:ec:f9:2e:c9:e9 STALE
172.16.96.1 dev bond0 lladdr 00:10:f3:9d:90:bd DELAY

ARP 캐시 테이블 삭제하려면 flush 를 사용한다.

[root@localhost ~]# ip neigh flush dev bond0

[root@localhost ~]# ip neigh
172.16.96.1 dev bond0 lladdr 00:10:f3:9d:90:bd REACHABLE

5. NIC에 할당된 ip 주소 확인

아래 명령에서 show는 생략 가능하다.

[root@localhost ~]# ip addr show
1: lo:  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: ens32:  mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
    link/ether 00:50:56:9d:da:8e brd ff:ff:ff:ff:ff:ff
3: ens33:  mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
    link/ether 00:50:56:9d:da:8e brd ff:ff:ff:ff:ff:ff
4: ens35:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:50:56:9d:de:ad brd ff:ff:ff:ff:ff:ff
5: bond0:  mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:50:56:9d:da:8e brd ff:ff:ff:ff:ff:ff
    inet 172.16.96.223/24 brd 172.16.96.255 scope global noprefixroute bond0
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:fe9d:da8e/64 scope link
       valid_lft forever preferred_lft forever

간단하게 보려면, -br 옵션을 준다.

[root@localhost ~]# ip -br addr
lo               UNKNOWN        127.0.0.1/8 ::1/128
ens32            UP
ens33            UP
ens35            UP
bond0            UP             172.16.96.223/24 fe80::250:56ff:fe9d:da8e/64

ens32, ens33은 bond0에 본딩되어 있다. 아무 설정 없는 ens35에 IP 주소 설정하려면,

[root@localhost ~]# ip addr add 192.168.1.1/24 dev ens35

이제, 설정된 ip 주소를 확인한다. ens35만 확인해 보자.

[root@localhost ~]# ip addr show dev ens35

4: ens35:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:50:56:9d:de:ad brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 scope global ens35
       valid_lft forever preferred_lft forever

ip 주소 삭제는 add 대신 del을 사용한다.

[root@localhost ~]# ip addr del 192.168.1.1/24 dev ens35

[root@localhost ~]# ip addr show dev ens35
4: ens35:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:50:56:9d:de:ad brd ff:ff:ff:ff:ff:ff

답글 남기기

Your email address will not be published.