라우팅프로토콜의 종류는 여러가지이다. 기본적으로 연결된 네트워크만을 라우팅 테이블을 가지고 있음. 때문에 라우팅 프로토콜로 네트워크의 주소를 라우팅 테이블에 추가시킨다.

 

ubuntu

student@student-Aspire-E5-576:~$ netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG        0 0          0 enp3s0f1
0.0.0.0         192.168.0.1     0.0.0.0         UG        0 0          0 wlp2s0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 enp3s0f1
192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 enp3s0f1
192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 wlp2s0



 

[ 클러스터 ]

: 엮는 것

 

cpu를 클러스터하면은 HPC

LAN을 클러스터하면 IPMP, Bonding(Linux), Etherchannel(cisco), Teaming(window)

DISK - LVM, RAID

 

네트워크 이중화 - HA(High Availability)

 

Load Balance : Fail over, Fail back -> 장비로 하는 것.

 

dns multi hosting : 하나의 도메인에 ip를 여러개를 주게 되면 멀티 ip (rtt수치... 한놈이 질문을 받으면 열이 오르니 다음엔 다른 애한테 질문을 줘서 부하가 분산이 된다.)

 

 

- dynamic routing 장점

 

AD(Administrative Distance):관리거리

작은 것이 훨신 유리하다. best path가 된다.

 

- default routing protocol

경로를 모르는 네트워크들에게 모두 이곳으로 가고 정해 놓은 길 (ex. 미하 보호소)

 

- assless : rip

 

 

classless vs classful 차이점? + VLSM

 

 

rip v1은 classful이라 subnetting을 못한다.

 

CIDR : netmask를 2진수로 바꿔서 bit로 표현한 것

 

rip v2는 classless라 subnetting을 지원한다.44

 

VLSM은 Variable Length Subnet Mask로 가변 길이 서브넷 마스크이다. 각 서브넷마다 가변 길이의 서브넷 마수크를 적용하는 기법임.

 


ROUTING PROTOCOL

 

[EIGRP, Enhanced Interior Gateway Routing Protocol)

- Distance Vector + Link-State 방식이 합쳐진 프로토콜

- cisco꺼

- IGRP의 발전된 버전

- RIP와 동일하게 Split-Horizon이 적용, Major 네트워크 경계에서 auto-summary가 된다.

- DUAL(Diffusing Update Algorithm) 알고리즘을 사용하여 Successor와 Feasible Successor를 선출한다.

- 컨버젼스 타임이 빠르다.

- AD값은 내부 90, 외ㅏ부 170

- AS(Autonomous System)단위로 구성

* AS(Autonomous System)

:하나의 네트워크 관리자에 의해 관리되는 Router의 집단, 하나의 관리 전략으로 구성된 Router의 집단

 

- Classless Routing Protocol : VLSM과 CIDR을 사용할 수 있다.

- 멀티캐스트 주소를 사용하여 정보를 전달

 

 

외부에서 유입되는 영역을 오직 DMZ로 구성해놓기 -> dmz를 nat 개념으로...

 

HA(High Availability) : 서버와 네트워크, 프로그램 등의 정보 시스템이 상당히 오랜 기간 동안 지속적으로 정상 운영이 가능한 상태

 

NAT (Network Address Translation)

 

Router : NAT를 구성하기 위한 매커니즘. nat는 공인 ip를 사설 ip로 변환해주는 프로토콜

 

ROUTER 매커니즘, DMZ, Static, Dynamic, OSPF, ..

 


SWITCH

Switch는 MAC 주소와 포트번호가 기록된 mac 주소 테이블을 가지고 있다.

MAC 주소 테이블은 목적지 mac 주소와 포트번호가 기록된 데이터베이스. 스위치는 CAM 테이블이라고도 한다.

Collision domain 충돌하는 것을 줄이려고 노력하는 일환이라고 봐도 됨 -> 가용 대역폭 증가, 통신속도 증가

 

Switch는 Broadcast Size를 줄여줌 -> 통신속도 증가

 

* Bridge는 Switch의 작은 버젼이다. 하지만 요즘은 스위치를 주로 쓴다.

 

[1] 스위치 동작 방식

 

- Running : CAM(Content Addressable Memory)에 프레임에 MAC Address를 학습한다.

- Forwarding : 목적지 주소를 CAM Table에서 참조하여 해당 Port로만 전송한다.

- Filtering : 프레임의 목적지 MAC Address에 해당하는 포트가 이 프레임을 수신한 포트와 같다면 전달하지 않는다.

- Flooding

(1) 프레임의 목적지 mac주소를 찾지 못하는 경우 모든 포트로 전달한다.

(2) 프레임의 목적지 주소가 FFFF.FFFF.FFFF 이면 모든 포트로 전송한다.

(3) 프레임을 수신한 포트는 제외한다.

 

[2] 스위치 프레임 전송 방법

 

- Store-and-Forward

프레임 전부를 수신하여 메모리에 저장한 후 CRC 검사 및 오류 발생 여부를 확인한다. (프레임의 크기에 따라 지연 차이 발생)

 

- Cut-through

프레임의 목적지 주소 필드만 저장하여 목적지 포트로 전달

 

- Fragment Free

 

1. VLAN (Virtual LAN)

- 스위치도 VLAN을 구성하지 않으면 크게 차이가 없음. VLAN 미 구성시 broadcast에 대해 통제가 되질 않는다.

- 스위치 Segment를 분리하는 방법으로 논리적으로 Broadcast Domain을 분리

- VLAN을 사용하면 한 대의 스위치를 여러 대의 분리된 스위치처럼 사용하고 여러 개의 네트워크 정보를 하나의 포트를 통해 전송할 수 있다. 또한 하나의 스위치에 연결된 장비들의 boradcast domain을 나눌 수 있다.

- VLAN을 사용하면 네트워크의 보안성이 강화된다.

- VLAN을 사용하면 스위치 네트워크에서 load balancing이 가능하다. VLAN을 사용하지 않으면 STP에 의해서 이중화 된 구간 중 한 포트가 차단되고 결과적으로 하나의 경로로만 통신이 이루어진다.

- Ethernet에서 대표적인 브로드캐스트 Protocol로 ARP, NetBIOS name query, RIP 등이 있다.

 

[1] VLAN ID Range

- Normal-Range : 1~1005

- Extended-Range : 1006 ~ 4094

 

[2] VLAN Membership mode

- Access

- Trunk

 

 

- TRUNKING : 여러개의 VLAN을 실어나르는 것

스위치에 다수의 VLAN이 존재할 경우 각 VLAN별로 링크를 각각 만들어 주어야 하지만, 그럴 경우 너무 많은 링크가 필요하게 된다. 대문에 하나의 링크에 여러개의 VLAN이 흘러다닐 수 있도록 Trunking을 구성한다. 이러한 Trunking에는 ISL과 IEEE802.1Q 방식이 있다.

 

 

 

 

2. VTP(VLAN Trunking Protocol)

스위치에 VLAN 정보를 동기화하는 프로토콜로 Server/Client로 스위치들을 분리하여 VLAN를 생성시 Client에 자동으로 배포된다.

 

 

 

 

 

 

 

3. STP(Spanning Tree Protocol)

이중화된 스위치에서 LOOPING이 발생하는 것을 미리 막기 위하여 두 개 이상의 경로가 발생하면 자동으로 막아두었다가 통신을 하던 경로에 이상이 생길 경우 막아두었던 경로로 데이터를 전송하는 것.

 

- 개요

Ethernet Frame이 장비들(Switches)에서 빙빙 도는 것을 Looping이라고 하며 이 Looping을 방지시켜 주는 Protocol이 Spanning Tree Protocol이다. STP -> RSTP로 업그레이드 되었다.

 

- 동작 방식

 

[1] 전체 스위치 중에 root 스위치를 하나 선출한다.

[2] root 스위치가 아닌 다른 스위치들은 root 포트를 하나씩 선택한다.

[3] 한 스위치의 segment마다 designeate port를 하나씩 선택한다.

[4] root port와 designated 포트가 아닌 포트를 alternate port라고 한다.

 

'TIL' 카테고리의 다른 글

TIL 200515 - Routing, Switching, ..  (7) 2020.05.15
TIL 200514  (0) 2020.05.14
TIL 200513 - TCP,UDP,DHCP,SSH,Telnet,HTTP 등  (2) 2020.05.13
TIL 200512  (0) 2020.05.12
TIL 200512  (0) 2020.05.12
  1. 2020.05.16 23:17

    비밀댓글입니다

  2. JOHN TV 2020.05.20 14:01 신고

    유익한 정보를 잘보고 갑니다~
    수요일에 잘보내시고
    자주 소통으로 해요~^^
    파이팅 하세요

[ FTP : File Transfer Protocol ]

인터넷상에서 파일을 전송하는 기본 프로토콜임. 파생형으로 TLS, FTPS, SSH와 결합한 SFTP등이 있다.

 

ftp는 다른 응용프로그램과 다르게 포트를 2개 이상 사용한다. 인증 포트(id, password칠 때 사용하는 포트) 제어용으로 21번, 데이터 전송용으로 20번을 사용, SFTP는 22번 포트.

 

active mode, passive mode // active는 20번 데이터를 받을 때 포트로 고정되며 passive는 데이터를 받을 때 random한 port로 받게 된다.

 

 

[ vsFTP ]

GPL기반의 FTP 서버로 매우 안정적이면서 빠른 속도와 강력한 보안기능을 제공

 

 

[ E-Mail ]

 

 

EMail 서비스에는 SMTP, POP3, IMAP 정도가 있다.

이 프로토콜들은 암호화가 되어있지 않아 암호화 프로토콜을 적용한 수신 프로토콜들을 사용하고 있다.

 

이메일 보안 기술 중 S/MIME(secure mime)이 있음. 그리고 pem, pgp 등이 있다.

PGP(Pretty Good Privacy), PEM(Privacy, Enhanced Mail), S/MIME(Secure Multi-Purpose Internet Mail Extension)

 

위 사진과 같이 Client와 Mail Server, Mail server와 mail server간에 이메일을 교환할 수 있다.

 

mail user agent, mail data agent, .... 메일을 주고받게 되면 mda(mail data agent)에 메인으로 적재됨. 

 

[1] SMTP ( TCP, Port 25)

Simple Mail Transfer Protocol은 네트워크의 두 메일 서버 간에 이메일을 송수신하는 데 사용되는 TCP/IP 프로토콜이다. 응용계층임

 

[2] POP3 (TCP, Port 110)

Post Office Protocol3는 이메일을 수신하는 표준 프로토콜이다.

 

[3] IMAP (TCP, Port 143)

Internet Mail Access Protocol는 이메일을 저장 및 복사하는 프로토콜이다. PRP3 처럼 SMTP 프로토콜에 남아있지만 PRP3와 달리 IMAP에서는 내 컴퓨터에서 지운 이메일도 서버에 남아 있다는 것이 특징이며 보안 버젼으로는 IMAPS가 있다.

 


[ SNMP ]

Simple Network Management Protocol

 

Network Card, Hub, Router과 같은 Network 장치들.

 

아래는 Wireshark에서의 sample caputres를 통해 SNMP 프로토콜 패킷을 추적한 것이다. 

 

UDP Stream을 확인해보자.

뭔말인지 모르겠다ㅋ 왜냐하면 암호화되어있기 때문.. 패킷을 추적할 수가 없음.

ip 주소는 172.31.19.20이고 net mask도 보인다..

 

 


대칭키 -> 키 분배문제가 있다. 누가 관리할거야? 그래서 비대칭형 key를 생각해냈다.

 

비대칭형 암호 알고리즘은 흔히 공개키 알고리즘이라고 불림.

 

A와 B가 있으며 A는 public key, private key를 만들어냄. 이 두개는 서로 수학적 염함수 관계라서 서로 풀 수 있다. 즉, A의 공개키 암호화 데이터는 개인키로만 복호화(암호를 푸는 행위)가 가능하며 A의 개인키 암호화 데이터는 공개키로만 복호화가 가능하며 B 또한 마찬가지이다.

 

공개키를 던져서 암호화 후 개인키로 푸는 행위이다. A와 B는 서로 공개키를 알려준다.

 

A : A의 공개, 개인키 // B의 공개키

B : B의 공개, 개인키 // A의 공개키

 

A는 B에게 B의 공캐키를 이용하여 데이터를 암호화 후 전송하면 B는 암호화된 데이터를 B의 개인키를 이용하여 해독할 수 있다.

 

 

 

 

[ HASH ]

 

related with one way funcrion...

-> 계산하기는 쉽지만 역을 구하는 것은 어려운 함수이다. 공개 키 암호 방식은 극히 일부를 제회하면 일방향함수가 존재한다는 가정 위에 연구되어 왔다.

 

 


[ Packet Tracer ]

 

Copper Straight, Copper Cross-Over

 

> : User Mode

# : Privileged Mode

기본적으로는 Priv모드에서 진행한다.

 

 

 

static하게 구성함.

 

PC A와 PC B는 a클래스이지만 subnetting을 적용해주었다. Hub는 자신에게 붙어있는 pc들의 네트워크 대역이 다르면 통신이 안되지만 switch로 연결할 시 같은 네트워크

 

 

<R1> 10.100.1.0/24

enable

conf t

interface serial 0/0

ip address 1.1.12.1 255.255.255.0

 

interface fastethernet 0/0

ip address 10.100.1.254 255.255.255.0

 

# 각 interface마다 no shutdown 해줘야 하며, 확인하려면 초기 CLI에서 show running-config로 확인할 수 있다.

 

위 사진은 초기 화면에서 show running-config를 해주었다.

 

 

# R1입장에서는 앞의 ip들은 1.1.12.1 serial interface로 나가야 한다는 것을 알려줘야 한다.

ip route 172.31.2.0 255.255.255.0 1.1.12.1

ip route 1.1.23.0 255.255.255.0 1.1.12.1

ip route 192.168.10.0 255.255.255.0 1.1.12.1

 

 

<R2> 172.31.2.0/24

enable

conf t

interface serial 0/0

interface serial 0/1

interface fastethernet 0/0

 

# R2입장에서는 앞의 ip들은 1.1.12.1 serial interface로 나가야 한다는 것을 알려줘야 한다.

 

ip route 10.100.1.0 255.255.255.0 1.1.12.2

ip route 192.168.10.0 255.255.255.0 1.1.23.1

 

 

 

<R3> 192.168.10.0/24

enable

conf t

 

# R3입장에서는 앞의 ip들은 1.1.23.2/30 serial interface로 나가야 한다는 것을 알려줘야 한다.

ip route 172.31.2.0 255.255.255.0 1.1.23.2/30

ip route 1.1.23.0 255.255.255.0 1.1.23.2/30

ip route 10.100.1.0 255.255.255.0 1.1.23.2/30

 

 

 

 

 

< route table settings ( static table )

 

[R1]

ip route 172.31.2.0 255.255.255.0 1.1.12.2

ip route 192.168.10.0 255.255.255.0 1.1.12.2

ip route 1.1.23.0 255.255.255.0 1.1.12.2

 

[R2]

 

(1) Left Side

ip route 10.100.1.0 255.255.255.0 1.1.12.1

 

(2) Right Side

ip route 192.168.10.0 255.255.255.0 1.1.23.2

 

[R3]

ip route 172.31.2.0 255.255.255.0 1.1.23.1

ip route 10.100.1.0 255.255.255.0 1.1.23.1

ip route 1.1.12.0 255.255.255.0 1.1.23.1

 

라우터 하나씩 반영한 후 각각의 pc에 되는지 안되는지 어디까지 가는지 확인해보기. 단계단계씩

 

그 후 라우팅 테이블 확인하기

 

 

네트워크 통신 되는지 확인하기 - ping, tracert

 

ping은 모두 다 잘됐음

ping은 1) gateway 핑 때려보기 2) 각각 Router 핑 때려보기 3) 각각 PC끼리 핑 때려보기

 

-> ping이 안되었을 때 체크했던 사항

 

[1] ip설정을 제대로 했는지 확인 -> 확인해보니 Router 1의 Serial 0/0 Interface의 IP Addr이 잘못 설정되어있었음.

 

[2] show running-config 등으로 각각 잘 설정되어있는지, 인터페이스가 잘 설정되어있는지 확인

 

[3] 컴퓨터는 거짓말을 하지 않는다

 

 

 

 

 

 

맨 처음 단에서 show 명령어를 통해 각종 정보를 확인할 것

 

show ip ~~

show running-config -> 하나하나 내려야해서 좀 불편하긴 함

show arp -> arp table

그 외 필요한 것들 보면 된다.

 

show ip route를 통해 routing table을 확인할 수 있음. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'TIL' 카테고리의 다른 글

TIL 200515 - Routing, Switching, ..  (7) 2020.05.15
TIL 200514  (0) 2020.05.14
TIL 200513 - TCP,UDP,DHCP,SSH,Telnet,HTTP 등  (2) 2020.05.13
TIL 200512  (0) 2020.05.12
TIL 200512  (0) 2020.05.12

Port 종류 

 

[1] 0~1023 : Well-known Port 

[2] 1024~49151 : Registered Port 

[3] 49152~65535 : Dynamic Port, 운영체제가 부여하는 동적 포트 또는 개인적인 목적으로 사용할 수 있는 포트 

 

 

 

Protocol 

Port Number 

설명 

TCP 

UDP 

FTP-Data 

20 

FTP Data 전송 

 

 

FTP-Control 

21 

FTP Data 전송 Control 

 

 

SSH 

22 

SSH Temote Login Protocol 

 

 

Telnet 

23 

Telnet Terminal 에뮬레이션 

 

 

SMTP 

25 

Simple Message 전송 Protocol 

 

 

DNS 

53 

Domain Name System 

 

 

HTTP 

80 

HTTP 

 

 

POP3 

110 

POP3 (메일 수신) 

 

 

NetBIOS 

137 

138 

139 

이름 지정 서비스 

데이터그램 서비스 

세션 서비스 

 

 

SNMP 

161 

Simple Network Management Prot 

 

 

HTTPS 

443 

HTTPS (HTTP 암호화 통신) 

 

 

SMB 

445 

SMB Port 

 

 

MS-SQL 

1433 

 

 

 

Oracle 

1521 

 

 

 

MySQL 

3306 

 

 

 

 

3380 

-Window Server에서 사용하는 터미널 기본 포트 

-레지스트리 수정을 통해 변경가능 

 

 

 

 

[ TCP ] 

 

1. TCP Status Diagram 

Step1,2,3 를 거치면 ESTABLISHED가 된다. 

3-Way-Handshaking

 

 

 

[1] CLOSED

[2] LISTEN

[3] SYN-RECEIVED

[4] SYN-SENT

[5]ESTABLISHED

 

2. TCP 정의 ?

-> Transport Layer 에서 사용하는 Protocol (4계층)

 

3. TCP Function

 

[1] 신뢰성이 높다 -> ACK를 통해 통신 가능 여부를 확인함

[2] 흐름 제어(Flow Control) -> 수신자가 윈도우 값을 통해 수신량을 정할 수 있다. 

[3] 에러 감지 -> CheckSum을 활용하여 데이터 변형 감지

[4] Congestion Control -> 네트워크 내의 패킷 수가 넘치지 않도록 방지한다.

 

 

4. TCP Header

 

Source Port / Destination Port  
Sequence Number SYN = 1 : 초기 시퀀스 번호가 된다.
SYN = 0 : 현재 세션의 이 세그먼트 데이터의 최초 바이트 값의 누적 시퀀스 번호
Ack Number  
Header Length  
Reserved 예비 필드, 0으로 채워짐
Flags OP Code라고도 불림
URG
PSH  :  데이터 전송 시사용 (데이터 보낼 때 PSH만 쓴다.)
ACK
RST
SYN
FIN
...  

 

 

5. 3-way-handshake

 

 

 

# 현재 TCP 통신 상태 이해할 때 알 수 있음

student@kickseed:~$ ss -tan
State         Recv-Q      Send-Q            Local Address:Port               Peer Address:Port      
LISTEN        0           128               127.0.0.53%lo:53                      0.0.0.0:*         
LISTEN        0           5                     127.0.0.1:631                     0.0.0.0:*         
TIME-WAIT     0           0                 192.168.0.122:52166            172.217.25.227:443       
TIME-WAIT     0           0                 192.168.0.122:42424           172.217.175.110:443       
ESTAB         0           0                 192.168.0.122:33036              13.107.42.13:443       
ESTAB         0           0                 192.168.0.122:38536             52.114.158.53:443       
ESTAB         0           0                 192.168.0.122:55912             54.244.31.189:443       
ESTAB         0           0                 192.168.0.122:60444              52.109.44.26:443       
ESTAB         0           0                 192.168.0.122:51992              13.107.6.171:443       
ESTAB         0           0                 192.168.0.122:42382             172.217.25.68:443       
TIME-WAIT     0           0                 192.168.0.122:52150            172.217.25.227:443       
ESTAB         0           0                 192.168.0.122:38306           103.102.166.224:443       
ESTAB         0           0                 192.168.0.122:58292              52.109.44.26:443       
TIME-WAIT     0           0                 192.168.0.122:56196            216.58.197.202:443       
ESTAB         0           0                 192.168.0.122:50526           103.102.166.240:443       
LISTEN        0           5                         [::1]:631                        [::]:*         
student@kickseed:~$ 

Status, Recv, Send, Local Address:Port, Peer Address:Port

 

 

[ ss ]

NAME
       ss - another utility to investigate sockets

SYNOPSIS
       ss [options] [ FILTER ]

 

student@kickseed:~$ ss --help
Usage: ss [ OPTIONS ]
       ss [ OPTIONS ] [ FILTER ]
   -h, --help          this message
   -V, --version       output version information
   -n, --numeric       don't resolve service names
   -r, --resolve       resolve host names
   -a, --all           display all sockets
   -l, --listening     display listening sockets
   -o, --options       show timer information
   -e, --extended      show detailed socket information
   -m, --memory        show socket memory usage
   -p, --processes     show process using socket
   -i, --info          show internal TCP information
   -s, --summary       show socket usage summary
   -b, --bpf           show bpf filter socket information
   -E, --events        continually display sockets as they are destroyed
   -Z, --context       display process SELinux security contexts
   -z, --contexts      display process and socket SELinux security contexts
   -N, --net           switch to the specified network namespace name

   -4, --ipv4          display only IP version 4 sockets
   -6, --ipv6          display only IP version 6 sockets
   -0, --packet        display PACKET sockets
   -t, --tcp           display only TCP sockets
   -S, --sctp          display only SCTP sockets
   -u, --udp           display only UDP sockets
   -d, --dccp          display only DCCP sockets
   -w, --raw           display only RAW sockets
   -x, --unix          display only Unix domain sockets
       --vsock         display only vsock sockets
   -f, --family=FAMILY display sockets of type FAMILY
       FAMILY := {inet|inet6|link|unix|netlink|vsock|help}

   -K, --kill          forcibly close sockets, display what was closed
   -H, --no-header     Suppress header line

   -A, --query=QUERY, --socket=QUERY
       QUERY := {all|inet|tcp|udp|raw|unix|unix_dgram|unix_stream|unix_seqpacket|packet|netlink|vsock_stream|vsock_dgram}[,QUERY]

   -D, --diag=FILE     Dump raw information about TCP sockets to FILE
   -F, --filter=FILE   read filter information from FILE
       FILTER := [ state STATE-FILTER ] [ EXPRESSION ]
       STATE-FILTER := {all|connected|synchronized|bucket|big|TCP-STATES}
         TCP-STATES := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|closed|close-wait|last-ack|listening|closing}
          connected := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
       synchronized := {established|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
             bucket := {syn-recv|time-wait}
                big := {established|syn-sent|fin-wait-{1,2}|closed|close-wait|last-ack|listening|closing}

 

보안의 핵심은 예외 처리이다.

 

 


[ DHCP ]

 

Dynamic Host Configuration Protocol의 약자로써 클라이언트 컴퓨터에 자동으로 IP주소를 할당해주는 네트워크 프로토콜.

UDP Port 67,68번을 이용하며 자동으로 ip주소, 게이트웨이와 dns서버와 같은 클라이언트의 네트워크 설정을 보내준다.

 

 

[ DNS (Domain Name System) ]

Domain Name <-> IP address 서로 변환해주는 시스템. 

 

- Cache -> /etc/resolv.conf를 통해 외부 dns가 설정이 되어 있는지  -> 외부 dns

 

DNS는 재귀 질의(갔다 돌아오는 것)와 순환 질의(반복해서 질의하는 것)으로 구성이 된다.

nslookup을 통하여 Name Server를 재귀 질의를 하게 된다.

 

정방향 조회 (Forward Zone) : Domain Name -> IP

역방향 조회 (Reverse Zone) : IP -> Domain Name

 

Domain을 구입하게 되면 subdomain을 만들 수 있다. 예를 들어, cafe.~~.com, mail.~~.com 등이 있다.

student@kickseed:~$ nslookup
> naver.com 
Server:		127.0.0.53
Address:	127.0.0.53#53

Non-authoritative answer:
Name:	naver.com
Address: 125.209.222.141
Name:	naver.com
Address: 210.89.160.88
Name:	naver.com
Address: 210.89.164.90
Name:	naver.com
Address: 125.209.222.142

 

# wireshark를 통한 패킷 분석

 

terminal 창을 2개 켜놓고 한개는 관리자 권한으로 wireshark 켜놓음 (sudo wireshark) 그리고 나머지 터미널로 nslookup을 들어가서 dns 서버를 임시로 바꿔주고 daum.net 질의를 한다. 그러면 이렇게 패킷이 남음.

 

각각 source와 destination ip addr을 보면 총 4번 패킷이 왔다갔다 한다.

 

 

회사에서 자체의 Local Name server를 구성하는 이유

 

수십대의 컴퓨터가 외부 Name Server (예를 들어 google ns)에 요청을 하게 될 시 회사 자체의 Band Width가 한정되어 있는데 속도가 심히 정체되게 된다. 그래서 보통 사내 Name Server를 구성하게 되고 캐싱 네임서버 또한 구성하게 되는데 이는 외부로 질의를 하지 않아도 회사 자체에서 Domain Name을 IP Addr로 변환시켜줄 수 있으므로 트래픽 양을 상당히 감소시킬 수 있다.

 

 

dns가 로드밸런스를 한다. -> 이러한 이유 때문에 root server가 13개 있는 것이다. 달마다 전기세만 수천만원이 나오는 서버들임. 

student@kickseed:~$ dig @192.168.0.175 yahoo.co.kr +trace | more

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> @192.168.0.175 yahoo.co.kr +trace
; (1 server found)
;; global options: +cmd
.			494698	IN	NS	f.root-servers.net.
.			494698	IN	NS	j.root-servers.net.
.			494698	IN	NS	a.root-servers.net.
.			494698	IN	NS	h.root-servers.net.
.			494698	IN	NS	g.root-servers.net.
.			494698	IN	NS	b.root-servers.net.
.			494698	IN	NS	d.root-servers.net.
.			494698	IN	NS	k.root-servers.net.
.			494698	IN	NS	m.root-servers.net.
.			494698	IN	NS	l.root-servers.net.
.			494698	IN	NS	c.root-servers.net.
.			494698	IN	NS	i.root-servers.net.
.			494698	IN	NS	e.root-servers.net.
.			494698	IN	RRSIG	NS 8 0 518400 20200525210000 20200512200000 48903 . 

 

yahoo.co.kr.		60	IN	A	212.82.100.150
yahoo.co.kr.		60	IN	A	74.6.136.150
yahoo.co.kr.		60	IN	A	98.136.103.23
yahoo.co.kr.		7200	IN	NS	ns5.yahoo.com.
yahoo.co.kr.		7200	IN	NS	ns3.yahoo.com.
yahoo.co.kr.		7200	IN	NS	ns6.yahoo.com.
yahoo.co.kr.		7200	IN	NS	ns1.yahoo.com.
yahoo.co.kr.		7200	IN	NS	ns4.yahoo.com.
yahoo.co.kr.		7200	IN	NS	ns2.yahoo.com.


ns3이 master server이라고 가정했을 때 나머지들은 slave가 되며 보통은 tcp로 전송 프로토콜을 쓴다.
하지만 firewall strategy에는 udp와 tcp 2개 모두 open해준다.
순환 질의와 재귀 질의 2가지가 있다.

 

 

[ DNS 레코드 종류 ]

 

Zone File에 연결되어 있는 것들

 

출처 : practice.hooniiworld.io

CNAME으로 앨리어싱 해줘야 www.naver.com과  naver.com이 같게 된다.

SOA는 암묵적인 권한이다. 해당 도메인에 대한 권한이 있는 서버를 표시한다.

 

 

 


[ HTTP ]

 

1. HTTP 서비스

 

http://www.myhome.com:80/board/list.php?idx=1234
프로토콜	서버이름	 포트	파일 경로		파라미터

물음표 뒤에 있는것은 파라미터인데 변수와 value로 구성되어 있는 구조인데 궁극적으로 어디로 넘어가냐면 web application code로 넘거가거나 database로 넘어가는 녀석이다.

 

https://search.naver.com/search.naver?sm=top_hty&fbm=0&ie=utf8&query=linux

 

변수1=값1&변수2=값2&변수3=값3

 

 

http라고 하는 것은 기본적으로 80번 포트의 tcp를 이용하는데 http는 버전에 따라서 0.9도 있고 1.0도 있고 1.1도 있었다. 각 버전에 따라 method라고 하는 통신 방식이 있다. 사용할 수 있는 method는 get과 post, head가 있다.

GET - URL 입력창에 255자 까지 입력하여 전송, 평문으로 대부분을 보여주다 보니 보안에 취약할 수 있다.

POST - http HEADER 에 content-length (우리가 사용할 공간을 지정)를 이용해서 http의 body에 공간을 확보 후 데이터를 담아서 전송

 

결국 GET, POST 둘다 안전한 것은 아니다. http통신은 중요한 정보를 반드시 암호화 해서 https 또는 HSTS(HTTP Strict Transport Security)

 

http 80 tcp -> (80 -> 443) SSL/TLS 방식적용 -> https

https 는 80 -> 443 433으로 간 정보를 80으로 만들수만 있다면 얼마든지 평문으로 볼 수 있다.

 

ex) SSLstrip 공격

 

원래는 80 port로 통신하고 있었지만 이를 통으로 암호화(https)하기 위해 hsts를 사용한다.

 

* HSTS는 강제적으로 https로만 접속할 수 있도록 하는 기능이다.

 


 

ssh

 

ssh는 secure shell의 약자로 telnet보다 더욱 보안이 강화된 버전의 원격 접속 프로그램이다. telnet은 ssh의 레거시 버전이며 패킷 추적을 하였을 때 평문으로 나오지 않는다. 그래서 보안에 좋다.

 

# 귀하는 122이며, 원격(174)로 접속하고 싶다. User ID@IP Addr 을 쳐주면 되는 것 같다.
student@kickseed:~$ ssh student@192.168.0.174
The authenticity of host '192.168.0.174 (192.168.0.174)' can't be established.
ECDSA key fingerprint is SHA256:gG88cFhdyPEdx7TIu2FCgMmXeesvSwrQ0ZlLXf4aO2Y.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.174' (ECDSA) to the list of known hosts.
# 원격 사용자의 Password를 입력해주자.
student@192.168.0.174's password:  
Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-99-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage


 * Canonical Livepatch is available for installation.
   - Reduce system reboots and improve kernel security. Activate at:
     https://ubuntu.com/livepatch

11 packages can be updated.
11 updates are security updates.

Last login: Wed May 13 17:51:20 2020 from 192.168.0.174

#ip가 내 것이 아닌 원격 사용자의 ip이다.
student@kickseed:~$ ip a
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: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 40:8d:5c:20:9b:e9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.174/24 brd 192.168.0.255 scope global dynamic noprefixroute enp2s0
       valid_lft 5668sec preferred_lft 5668sec
    inet6 fe80::428d:5cff:fe20:9be9/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
       
# 로그아웃
student@kickseed:~$ exit
logout
Connection to 192.168.0.174 closed.

# ip를 쳐보니 내 것으로 돌아옴
student@kickseed:~$ ip a
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: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 40:8d:5c:20:18:db brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.122/24 brd 192.168.0.255 scope global dynamic noprefixroute enp2s0
       valid_lft 6087sec preferred_lft 6087sec
    inet6 fe80::428d:5cff:fe20:18db/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'TIL' 카테고리의 다른 글

TIL 200515 - Routing, Switching, ..  (7) 2020.05.15
TIL 200514  (0) 2020.05.14
TIL 200513 - TCP,UDP,DHCP,SSH,Telnet,HTTP 등  (2) 2020.05.13
TIL 200512  (0) 2020.05.12
TIL 200512  (0) 2020.05.12
  1. HTML6 2020.05.13 14:04 신고

    오늘도 좋은 포스팅 감사합니다 !! :)

* 정리 없이 올리는 개인용 공부, Onenote에서 바로 복사만 함

 

ARP, RARP 

 

[ARP HEADER 구조] 

 

Hardware Type 

Protocol Type 

Hardware Type 

Protocol Type 

Operation 

Sender Hardware Addr 

Sender IP Addr 

Target Hardware Addr 

Target IP Addr 

 

 

[ARP 통신 원리] 

 

student@student-Aspire-E5-576:~$ arp 

Address                  HWtype  HWaddress           Flags Mask            Iface 

192.168.0.26             ether   d8:c4:97:46:36:30   C                     enp3s0f1 

_gateway                 ether   00:08:9f:7c:96:f8   C                     enp3s0f1 

 

 

필자는 192.168.0.20이다. 192.168.0.26에 대한 IP와 MAC의 Mapping된 정보를 얻을  있음. Iface는 Interface의 줄임말임. 20이 26에게 ip addr로 ping을 쏘게 되면 arp request를 보내게 된다. broadcast로 보내게 되며  사이에 중재자가 switch이다. 각 컴퓨터들 모두 arp request이지만 본인 ip인 컴퓨터만 arp request를 discard하지 않고 본인의 mac addr과 함께 arp reply를 unicast로 보내게 된다. 이 과정에서 26 또한 20의 mac과 ip 맵핑된 정보를 확인하게 된다. 

 

  

 

 

[Wireshark로 arp 정보 확인] 

 

# sudo wireshark 

 

 

 

broadcast를 이용해서 mac address를 알려달라고 요청하고 있다. 

 

 사진은 요약한 정보를 확인할  있다. INfo를 보면 "Who has 182.168.0.1? Tell 192.168.0.6"은 즉 192.168.0.1 ip 누가 가지고 있습니까? 192.168.0.6으로 대답해주세요 라고 하는 것임. 

Dest는 Broadcast이며 ARP Protocol입니다. 

 

# arp –a 

 

Arp request : broadcast 

Arp reply : unicast 

 

 

 

'TIL' 카테고리의 다른 글

TIL 200515 - Routing, Switching, ..  (7) 2020.05.15
TIL 200514  (0) 2020.05.14
TIL 200513 - TCP,UDP,DHCP,SSH,Telnet,HTTP 등  (2) 2020.05.13
TIL 200512  (0) 2020.05.12
TIL 200512  (0) 2020.05.12

TCP/IP Reference Model 

 

 

 

IPv4 Header 

 

 

 

 

 

 

Traceroute 

 

# package 깔아주어야 사용 가능함 

 

Sudo apt install traceroute, inetutils-traceroute 

 

 

 

 

[IP Address 체계] 

 

A Class 

1~127, 8bit가 Network 구분자이며 24Bit가 Host 구분자이다. (N,H,H,H) 

B Class 

128~191, 16Bit가 Network 구분자 (N,N,H,H) 

C Class 

192~223, 24Bit가 Network 구분자 (N,N,N,H) 

네트워크 구분자와 호스트 구분자로 나눠서 쓴다. 

처음과 마지막 ip 주소 2개를 제외한 것이 사용할 수 있는 Host ip address이다. (왜냐하면, Broadcast 주소와 network 주소를 남겨놓아야 하기 때문)  

 

공인 IP (public ip) 

전 세계에서 유일하게 쓸 수 있는 IP이다. 

갯수 부족 (약 43억개)  

사설 IP (private ip) 

한 네트워크에 속한 사용자들끼리만 인식할 수 있는 임시 IP 

 

 

 

 

[ NAT : Network Address Translation ] 

 

공인 ip와 사설 ip를 서로 변환하여 ip 부족 문제를 해결하고 외부 침입에 대한 보안을 높이는 기술이다. 서버 외에도 네트워크 장비나 방화벽에서도 서비스를 제공한다. 

 

 

[Subnet Mask] 

 

Default Subnet Mask는 클래스(A,B,C)마다 정해져 있다. 

- Class A는 255.0.0.0 

- Class B는 255.255.0.0 

- Class C는 255.255.255.0 

 

IP주소 체계만으로는 IP주소를 세분화하여 관리하기가 힘드므로 서브넷 마스크가 탄생하게 되었다. 

클래스 A,B,C 에서 호스트 부분을 다시 서브넷과 호스트로 구분하는 역할을 한다. 

 

  

 

위 사진은 Subnetting의 예시이다.  

C 클래스의 Host 부분을 각각 서브네팅 한 것이다. 

Prefix는 Subnet Mask 중에서 2진수로 변환했을 때 1에 해당하는 부분의 갯수를 뜻하며 /25는 ~.128 이고 /26은 ~.192 .. 로 이루어진다. 

각각 사용가능한 호스트들은 2의 7승-2, 2의 6승-2, ... 로 줄어들게 된다. 그에 반해 네트워크 부분은 증가하게 될 것이다. 

 

 

11111111.11111111.11111111.11000000 

 

11000000 : 11은 서브넷 구분자, 000000은 호스트 구분자, 맨 앞의 11111111.11111111.11111111 은 네트워크 구분자. 

 

 

 

 

[ 문제 ]  

 

192.168.110.110/27 

 

Network Addr : 192.168.110.96 

Broadcast Addr : 192.168.110..127 

 

 

192.168.200..64/26 

 

Network 부분 : 4개 

Host 부분 : 64개 (Network, Broadcast 주소 빼면 62개) 

 

Network Addr : 192.168.200.64 

Broadcast Addr : 192.168.200.127 

 

 

 

[ ICMP : Internet Control Message Protocol ] 

 

IP는 신뢰성을 보장하지 않음. 따라서 네트워크 장애나 중계 라우터 등의 에러에 대처 할 수 없다. 따라서 이런 경우 수신측에서는 송신측으로 데이터의 사고에 대한 내용을 전달할 필요가 있다. ICMP는 이와 같은 오류 정보를 발견 송신측에 메시지를 전달하는 기능을 한다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'TIL' 카테고리의 다른 글

TIL 200515 - Routing, Switching, ..  (7) 2020.05.15
TIL 200514  (0) 2020.05.14
TIL 200513 - TCP,UDP,DHCP,SSH,Telnet,HTTP 등  (2) 2020.05.13
TIL 200512  (0) 2020.05.12
TIL 200512  (0) 2020.05.12

[ lsof ]

-> lisf open files의 약자로, 열려진 파일들을 보는 명령어이다.
-> 시스템에서 동작하고 있는 모든 프로세스에 의해 열려진 파일들에 대한 정보를 보여주는 시스템 관리 명령어.
-> 일반유저의 접근을 허용하지 않도록 Permission을 700이나 100으로 변경하는 것이 보안상 좋다.
 
 

[0] 설치

만약 lsof 명령어를 설치하지 않았다면 yum -y install lsof 명령어를 통해 설치해주어야 사용할 수 있다.
 
[root@localhost ~]# lsof
bash: lsof: command not found

[root@localhost ~]# yum -y install lsof
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: mirror.kakao.com
* extras: mirror.kakao.com
* updates: mirror.kakao.com
base                                                                | 3.6 kB  00:00:00
..
..
  Verifying  : lsof-4.87-6.el7.x86_64                                                  1/1

Installed:
  lsof.x86_64 0:4.87-6.el7

Complete!
 
 

[1] lsof 맛보기

 
칼럼 필드로는 COMMAND, PID, TID, USER, FD, TYPE, DEVICE, SIZE/OFF, NODE, NAME 이 있다.
참고로 단순 lsof만 치게된다면 터미널상에서의 출력이 엄청 길다.
 
[root@localhost ~]# lsof
COMMAND     PID  TID    USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
systemd       1         root  cwd       DIR              253,0      4096          2 /
systemd       1         root  rtd       DIR              253,0      4096          2 /
systemd       1         root  txt       REG              253,0   1624512     397095 /usr/lib/systemd/systemd
systemd       1         root  mem       REG              253,0     20064     393646 /usr/lib64/libuuid.so.1.3.0
systemd       1         root  mem       REG              253,0    265600     395154 /usr/lib64/libblkid.so.1.1.0
systemd       1         root  mem       REG              253,0     90248     393631 /usr/lib64/libz.so.1.2.7
systemd       1         root  mem       REG              253,0    157424     393643 /usr/lib64/liblzma.so.5.2.2
..
..
 
 
[2] 칼럼 필드 정보
칼럼 필드 정보
COMMAND
실행한 명령어
PID
Process ID
USER
실행한 User
FD
File Descriptor
[cwd] : current working directory
[rtd]   : root directory
[txt]    : program text
[mem]: memory-mapped file
TYPE
DIR  : Directory
REG : Regular file
CHR : Character special file
unix : unix domain socket
DEVICE
device number
SIZE/OFF
파일의 크기 or Offset
NODE
Node Number
NAME
File Name
 
 
[3] 명령어 옵션
명령어 옵션
-i
설정한 네트워크 소켓에 대한 정보를 출력하며 프로토콜, 서비스, 호스트 및 IP에 대해 출력한다.
[4, 6] : IPv4 혹은 IPv6만을 출력하고 싶을 때 사용.
[@hostname, @ip addr] : 접속하는 Host나 IP에 대한 정보를 검색하며 IP 버전과 구분하기 위해 IFS값으로 '@'을 사용한다.
[ :service port ] : /etc/services에 등록되어 있는 서비스이름을 지정하거나 포트 번호를 직접 입력하여 출력할 수 있다.
-u
사용자 ID or UID 값으로 지정할 수 있다.
다수의 사용자를 설정할 땐 ',' (컴마)로 구분할 수 있다.
특정 사용자를 제외한 정보를 출력하고 싶다면 '^사용자' 로 설정할 수 있다.
-c
특정한 명령어나 프로그램이 참조하고 있는 파일들의 목록을 출력하고자 할 때 쓰임
-P
/etc/services에 등록되어 있는 이름 대신 Port Number로 출력한다.
-r
recursive의 약자로 지속적인 출력을 할 때 지정한 초만큼의 주기로 실행하여 출력
-N
NFS 서버가 구축된 환경에서 NFS로 연결되어 있는 파일들에 대한 정보를 출력한다.
+D
특정 디렉터리 내의 하위 디렉터리까지 존재하는 파일을 사용하고 있는 프로세스의 목록 출력
 
 
[4] lsof 명령어 예시
 
lsof /var/log/messages
특정 디렉터리 또는 파일을 엑세스 하고 있는 프로세스 확인
 
 

 

 
 
lsof +D /var/log
+D 옵션을 사용하면 하위 디렉터리에 있는 파일들을 실행하고 있는 프로세스까지 출력함.
 
 
 
 
lsof -i 4        lsof -i 6
ipv4, ipv6
인터넷 연결 소켓에 대한 프로세스 목록을 출력함.
 
 
 
 
 
 
lsof -c firewalld
특정 데몬과 연결되어 있는 프로세스 파일 정보
필자는 firewalld ( 방화벽) 데몬을 해봄
 
 
 
 
 
 
 
Ref

'Linux > Command' 카테고리의 다른 글

리눅스 lsof 명령어  (4) 2020.04.27
리눅스 ps 명령어 - 리눅스 Process 확인  (1) 2020.04.27
리눅스 vmstat 명령어  (0) 2020.04.27
리눅스 free 명령어 - 리눅스 Memory  (0) 2020.04.27
리눅스 deidecode 명령어  (0) 2020.04.26
리눅스 /proc/meminfo  (0) 2020.04.26
  1. JOHN TV 2020.04.28 13:09 신고

    포스팅 잘보고 갑니다
    좋은하루 보내시고
    자주소통해요~

  2. Muko 2020.04.30 23:31 신고

    여윽시 냥냥이님 최고!

  3. 컴공1학년 2020.05.03 00:21

    오오 도움이 많이 되네요!! 감사합니다~~잘보고가요

  4. 썰스 2020.05.03 18:17 신고

 
 
[ ps ] 
시스템의 프로세스를 확인하는 명령어
 
ps -ef, ps aux 를 보통 많이 사용함. 거기서 | ( 파이프라인 ) 을 혼합하여 원하는 출력값을 얻어낼 수 있음.
 
 

[사용법]

ps [옵션]
 

[ ex ]

# 모든 프로세스를 풀 포맷으로 보여주는 것 들 중에 chrony 문자열이 있는 라인을 출력해준다.
[root@localhost ~]# ps -ef | grep chrony
chrony      896      1  0 02:46 ?        00:00:00 /usr/sbin/chronyd
root      72399  65130  0 05:55 pts/0    00:00:00 grep --color=auto chrony

# 모든 프로세스를 풀 포맷으로 보여주되 마지막 10줄만 보여준다.
[root@localhost ~]# ps -ef | tail
centos    65097  65094  0 05:35 ?        00:00:00 /usr/libexec/openssh/sftp-server
root      65114  65063  0 05:35 pts/0    00:00:00 su
root      65130  65114  0 05:35 pts/0    00:00:00 bash
root      69345      2  0 05:46 ?        00:00:00 [kworker/0:2]
root      71101      2  0 05:51 ?        00:00:00 [kworker/0:0]
root      72006  65130  0 05:54 pts/0    00:00:00 less
root      72074  65130  0 05:54 pts/0    00:00:00 more
centos    72447  65068  0 05:55 ?        00:00:00 sleep 1
root      72448  65130  0 05:55 pts/0    00:00:00 ps -ef
root      72449  65130  0 05:55 pts/0    00:00:00 tail

# 모든 프로세스를 풀 포맷으로 보여주되 처음 10줄만 보여준다.
[root@localhost ~]# ps -ef | head
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 02:46 ?        00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2      0  0 02:46 ?        00:00:00 [kthreadd]
root          4      2  0 02:46 ?        00:00:00 [kworker/0:0H]
root          6      2  0 02:46 ?        00:00:00 [ksoftirqd/0]
root          7      2  0 02:46 ?        00:00:00 [migration/0]
root          8      2  0 02:46 ?        00:00:00 [rcu_bh]
root          9      2  0 02:46 ?        00:00:02 [rcu_sched]
root         10      2  0 02:46 ?        00:00:00 [lru-add-drain]
root         11      2  0 02:46 ?        00:00:00 [watchdog/0]

# aux : 모든 프로세스를 풀 포맷으로 보여주되 -ef와 차이점을 발견할 수 있다.
# %CPU (cpu 사용율), %MEM (메모리 사용율), VSZ (가상 메모리 크기),
# RSS (실제 메모리 크기), STAT (현재 프로세스의 상태) 를 보여줌
[root@localhost ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.6 128124  6788 ?        Ss   02:46   0:01 /usr/lib/systemd/systemd
root          2  0.0  0.0      0     0 ?        S    02:46   0:00 [kthreadd]
root          4  0.0  0.0      0     0 ?        S<   02:46   0:00 [kworker/0:0H]
root          6  0.0  0.0      0     0 ?        S    02:46   0:00 [ksoftirqd/0]
root          7  0.0  0.0      0     0 ?        S    02:46   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    02:46   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        R    02:46   0:02 [rcu_sched]
root         10  0.0  0.0      0     0 ?        S<   02:46   0:00 [lru-add-drain]
root         11  0.0  0.0      0     0 ?        S    02:46   0:00 [watchdog/0]
root         13  0.0  0.0      0     0 ?        S    02:46   0:00 [kdevtmpfs]
root         14  0.0  0.0      0     0 ?        S<   02:46   0:00 [netns]
root         15  0.0  0.0      0     0 ?        S    02:46   0:00 [khungtaskd]
root         16  0.0  0.0      0     0 ?        S<   02:46   0:00 [writeback]
root         17  0.0  0.0      0     0 ?        S<   02:46   0:00 [kintegrityd]
root         18  0.0  0.0      0     0 ?        S<   02:46   0:00 [bioset]
root         19  0.0  0.0      0     0 ?        S<   02:46   0:00 [bioset]
root         20  0.0  0.0      0     0 ?        S<   02:46   0:00 [bioset]
root         21  0.0  0.0      0     0 ?        S<   02:46   0:00 [kblockd]
root         22  0.0  0.0      0     0 ?        S<   02:46   0:00 [md]
root         23  0.0  0.0      0     0 ?        S<   02:46   0:00 [edac-poller]
root         24  0.0  0.0      0     0 ?        S<   02:46   0:00 [watchdogd]
root         25  0.0  0.0      0     0 ?        S    02:46   0:07 [kworker/0:1]
root         30  0.0  0.0      0     0 ?        S    02:46   0:00 [kswapd0]
root         31  0.0  0.0      0     0 ?        SN   02:46   0:00 [ksmd]
root         32  0.0  0.0      0     0 ?        SN   02:46   0:00 [khugepaged]
..
..
..

# centos란 유저의 process를 출력해준다.
[root@localhost ~]# ps -u centos
   PID TTY          TIME CMD
22321 ?        00:00:00 sshd
22328 ?        00:00:00 sftp-server
65060 ?        00:00:07 sshd
65063 pts/0    00:00:00 bash
65068 ?        00:00:06 bash
65094 ?        00:00:00 sshd
65097 ?        00:00:00 sftp-server
76600 ?        00:00:00 sleep

 

 
필드 정보
UID
User ID
PUD
Process ID
PPID
부모 Process ID
STIME
프로세스의 시작시간
TTY
연결되어 있는 터미널이 무엇인지.
TIME
프로세스가 소비한 총 시간
CMD
프로세스 실행 명령어
C
CPU 사용량
 
 
대표 옵션
-e
모든 프로세스를 출력
-f
Full format으로 출력 ( UID, PID, .. )
-l
긴 Format으로 출력
-p
특정 PID의 프로세스를 보여준다.
-u
특정 사용자의 프로세스를 보여준다
 
 

'Linux > Command' 카테고리의 다른 글

리눅스 lsof 명령어  (4) 2020.04.27
리눅스 ps 명령어 - 리눅스 Process 확인  (1) 2020.04.27
리눅스 vmstat 명령어  (0) 2020.04.27
리눅스 free 명령어 - 리눅스 Memory  (0) 2020.04.27
리눅스 deidecode 명령어  (0) 2020.04.26
리눅스 /proc/meminfo  (0) 2020.04.26
  1. JOHN TV 2020.04.27 14:10 신고

    포스팅 잘보고 갑니다~
    좋은하루 보내시고
    자주 소통해요~^^

[ vmstat ]
Virtual Memory Statistics의 줄임말로 리눅스 Resource들의 사용률 모니터링 도구임 (CPU, Memorym ..)
 
[사용법]
vmstat [옵션] [delay [count]]
 
# 한 번 실행
[root@localhost ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
2  0      0 662208  13064 129248    0    0    21     2   60   92  1  2 98  0  0

# 2초마다 횟수 제한없이 실행
[root@localhost ~]# vmstat 2
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
2  0      0 662208  13064 129248    0    0    21     2   60   92  1  2 98  0  0
0  0      0 662084  13064 129248    0    0     0     0   46   63  0  1 99  0  0
0  0      0 662084  13064 129248    0    0     0     0   44   56  0  2 98  0  0

# 3초마다 총 2회 실행
[root@localhost ~]# vmstat 3 2
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
2  0      0 661688  13064 129248    0    0    21     2   60   92  1  2 98  0  0
0  0      0 661688  13064 129248    0    0     0     0   51   56  1  2 97  0  0
 
 
 
필드 정보
Procs
r : 디스패치 큐에서 대기하고 있는 요구 수
b :  리소스와 IO, 페이지 등을 대기하고 있는 미처리 항목의 수
Memory
swpd  : 사용된 가상 메모리
free    : 여유 메모리
buff    : 버퍼로 사용되고 있는 메모리
cache  : 캐쉬로 사용되고 있는 메모리
Swap
si   : 디스크로부터 Swap In 되는 메모리
so  : 디스크로 Swap Out 되는 메모리
io
bi  : 블록 디바이스에서 읽은 블록 수
bo : 블록 디바이스에 전송한 블록 수
system
in  : 초당 인터럽트 수
cs  : 초당 컨텍트 스위치 수
 

 

참고 : https://blueyikim.tistory.com/553

 

'Linux > Command' 카테고리의 다른 글

리눅스 lsof 명령어  (4) 2020.04.27
리눅스 ps 명령어 - 리눅스 Process 확인  (1) 2020.04.27
리눅스 vmstat 명령어  (0) 2020.04.27
리눅스 free 명령어 - 리눅스 Memory  (0) 2020.04.27
리눅스 deidecode 명령어  (0) 2020.04.26
리눅스 /proc/meminfo  (0) 2020.04.26

+ Recent posts