Linux ํ๊ฒฝ์์ ์ธํ๋ผ๋ฅผ ์ด์ํ๋ค ๋ณด๋ฉด ์๋ฒ ์ฅ์ ๋ ํต์ ๋ฌธ์ ๋ฅผ ๋ง์ฃผํ๊ฒ ๋๊ณ , ์ด ๋ ๊ฐ์ฅ ๋จผ์ ๋ ์ฌ๋ฆฌ๋๊ฒ ping, curl, telent ๋ช ๋ น์ด ์ ๋๋ค.
ํ์ง๋ง ์ด ์ธ ๊ฐ์ง ๋ช ๋ น์ด๋ ๋จ์ํ ํฌ์ค์ฒดํฌ ๋๊ตฌ๊ฐ ์๋๋ผ, ๊ฐ๊ฐ ์๋ก ๋ค๋ฅธ ๊ณ์ธต๊ณผ ๋ชฉ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
Ping (Packet Internet Groper)
# ์ฌ์ฉ ์์
$ ping 8.8.8.8
# ์๋ต ์์
64 bytes from 8.8.8.8: icmp_seq=1 ttl=115 time=34.2 ms
# 64 bytes๋ ์๋ ์๋ฒ๊ฐ ๋์๊ฒ ๋ณด๋ด์ค ICMP ์๋ต ํจํท์ ํฌ๊ธฐ์
# icmp_seq๋ ICMP ์ํ์ค ๋ฒํธ๋ก ๋ช ๋ฒ์งธ ping ์์ฒญ์ ๋ํ ์๋ต์ธ์ง๋ฅผ ๋ํ๋ (ํจํท ์ ์ค ์ฌ๋ถ ํ๋จ ๊ฐ๋ฅ)
# ttl์ ํจํท์ด ๋คํธ์ํฌ์์ ์ด์ ์์ ์ ์๋ ์ต๋ hop์๋ก ์ด์์ฒด์ ๋ง๋ค ์ด๊ธฐ ttl ๊ธฐ๋ณธ๊ฐ์ด ๋ค๋ฅด๊ณ ๋ผ์ฐํฐ๋ฅผ ํ๋ ์ง๋ ๋ ๋ง๋ค 1์ฉ ๊ฐ์ํ๋ค๊ฐ 0์ด๋๋ฉด ํจํท์ด ์๋ ํ๊ธฐ๋จ (๋ฌดํ ๋ฃจํ ๋ฐฉ์ง)
# time์ ์๋ณต ์ง์ฐ ์๊ฐ(RTT)๋ก, ๋ด ์ปดํจํฐ์์ ๋ชฉ์ ์ง ์๋ฒ๋ฅผ ํตํด ๋ค์ ๋ด ์ปดํจํฐ๊น์ง ๊ฑธ๋ฆฐ ์ด ์๊ฐ์ ์๋ฏธํจ
Ping์ ๋์ ํธ์คํธ(์๋ฒ)๊ฐ ๋คํธ์ํฌ์์ ์กด์ฌํ๊ณ ํต์ ๊ฐ๋ฅํ ์ํ์ธ์ง ํ์ธํ๋ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ฉฐ L3 Network Layer์์ ICMP(Internet Control Message Protocol)์ด๋ผ๋ ํ๋กํ ์ฝ๋ก ๋์ํฉ๋๋ค.
ICMP๋ ๋คํธ์ํฌ ์ฅ๋น๋ ํธ์คํธ ๊ฐ์ ์๋ฌ ๋ฉ์ธ์ง ๋ฐ ์ํ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ์ ์ด์ฉ ํ๋กํ ์ฝ์ ๋๋ค.
์ฝ๊ฒ ์๊ฐํ๋ฉด ๋ฐ์ดํฐ ์ ์ก์ฉ์ด ์๋๋ผ ๋คํธ์ํฌ ์ํ๋ฅผ ์ ๊ฒํ๊ธฐ ์ํ ํ๋กํ ์ฝ๋ก ์๊ฐํ ์ ์์ต๋๋ค.
๋ชฉ์ ์ง ์๋ฒ๊ฐ ์กด์ฌํ๋์ง ํ์ธํ๊ฑฐ๋, ํจํท์ด ์ค๊ฐ์ ์ด๋์ ๋งํ๋์ง ์๋ฌ ์ ๋ฌ, ๋คํธ์ํฌ ์ง์ฐ ์๊ฐ ์ธก์ ๋ฑ์ ์ญํ ์ ํฉ๋๋ค.
=> ping์ ์ด ICMP๋ฅผ ์ด์ฉํด์ ์๋ฒ์ ์๋ต ์ฌ๋ถ๋ฅผ ํ์ธํฉ๋๋ค.
๊ทธ๋ ๊ธฐ์ Ping์ ์๋ฒ์ IP ์์ฒด๊ฐ ์ด์์๋์ง๋ฅผ ํ์ธํ ๋, ๋คํธ์ํฌ ์ง์ฐ ์๊ฐ(Latency)์ ์ธก์ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ ๋ฑ์ ์ฌ์ฉํฉ๋๋ค.
์ฃผ์ํ ์ ์ ๋ณด์์์ ์ด์ ๋ก ๋ฐฉํ๋ฒฝ(Firewall)์ด๋ AWS์ ๊ฐ์ ํด๋ผ์ฐ๋ ๋ฒค๋์ ๋ณด์ ๊ทธ๋ฃน์์ ICMP ํ๋กํ ์ฝ์ ์ฐจ๋จํด ๋๋ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ ping์ด ์คํจํ๋ค๊ณ ํด์ ๋ฌด์กฐ๊ฑด ์๋ฒ๊ฐ ์ฃฝ์ ๊ฒ์ ์๋๋๋ค.
=> ์ฆ, ping์ ๋คํธ์ํฌ ์ฐ๊ฒฐ ์ฌ๋ถ๋ง ํ์ธํ ๋ฟ, ์ค์ ์น ์๋ฒ๋ API ์๋น์ค์ ์ ์ ๋์ ์ฌ๋ถ๊น์ง ๋ณด์ฅํด์ฃผ์ง๋ ์์ต๋๋ค.
Curl (Client URL)
# ์ฌ์ฉ ์์
$ curl -I https://www.google.com
# ์๋ต ์์
HTTP/2 200
Content-Type: text/html; charset=ISO-8859-1
...
# -v ์ต์
์ ์ฌ์ฉํ๋ฉด HTTPS ์์ฒญ ๊ณผ์ ์์ ์ํ๋๋ TLS ํธ๋์์ดํฌ ๋ก๊ทธ๊น์ง ๋ชจ๋ ์ถ๋ ฅํด์ฃผ๊ธฐ ๋๋ฌธ์ ์๋ฒ๊ฐ ์ ๊ณตํ๋ SSL/TLS ์ธ์ฆ์ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์
# (DNS ์กฐํ, TCP ์ฐ๊ฒฐ, TLS ํธ๋์์ดํฌ, HTTP ์์ฒญ ๋ฐ ์๋ต ๊ณผ์ ๊น์ง ๋ชจ๋ ํต์ ๊ณผ์ ์ ์์ธ ๋ก๊ทธ๋ก ํ์ธ ๊ฐ๋ฅ)
# -I ์ต์
์ ์ฌ์ฉํ๋ฉด ๋ณธ๋ฌธ(Body)์ ์ ์ธํ๊ณ ํค๋(Header)๋ง ๊ฐ์ ธ์ค๊ธฐ์ ์ ์ฒด ์นํ์ด์ง๋ฅผ ๋ค์ด๋ฐ์ง ์๊ณ ์ํ ์ฝ๋๋ ์ฝํ
์ธ ํ์
๋ฑ๋ง ํ์ธํ ์ ์์ (ํฌ์ค์ฒดํฌ์ฉ์ผ๋ก ์์ฃผ ์ฐ์)
Curl์ ์ค์ ์ดํ๋ฆฌ์ผ์ด์ ์ด ์ ์์ ์ธ ๋ฐ์ดํฐ(HTML, JSON ๋ฑ)์ ๋ฐํํ๋์ง ํ์ธํ๋ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ฉฐ L7 Application Layer์์ HTTP, HTTPS, FTP ๋ฑ์ ํ๋กํ ์ฝ๋ก ๋์ํฉ๋๋ค.
Ping๊ณผ ๋ค๋ฅด๊ฒ ์ค์ ์น ๋ธ๋ผ์ฐ์ ์ฒ๋ผ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ต ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๊ธฐ ๋๋ฌธ์ REST API๊ฐ ์ ๋๋ก ๋ JSON ์๋ต์ ์ฃผ๋์ง ํ ์คํธํ ๋, HTTP ์ํ ์ฝ๋๊ฐ ๊ถ๊ธํ ๋ ๋ฑ์ ์ฌ์ฉํฉ๋๋ค.
Telnet (Teletype Network)
# ์ฌ์ฉ ์์: ๊ตฌ๊ธ์ 80๋ฒ ํฌํธ ํ์ธ
$ telnet google.com 80
# ์ฑ๊ณต ์
Trying 142.250.207.14...
Connected to google.com.
Escape character is '^]'.
Telnet์ ์๋ ์๊ฒฉ ์ ์์ ์ํ ํ๋กํ ์ฝ์ด์์ผ๋, ๋ณด์ ๋ฌธ์ ๋ก SSH๋ก ๋์ฒด๋๋ฉฐ ํ์ฌ๋ ํน์ ํฌํธ๊ฐ ์ด๋ ค ์๋์ง ํ์ธํ๋ ์ฉ๋๋ก ์ฌ์ฉ๋๋ฉฐ L4 Transport Layer์์ TCP ํ๋กํ ์ฝ๋ก ๋์ํฉ๋๋ค.
=> ๋์ ์๋ฒ์ ํน์ ํฌํธ๊น์ง ๋๋ฌ ๊ฐ๋ฅํ์ง(๋ฐฉํ๋ฒฝ ํ์ฉ ์ฌ๋ถ) ํ์ธ
Ping์ ์ฑ๊ณตํด์ IP๊ฐ ์ด์์๋๊ฒ ํ์ธ๋์๋๋ฐ๋ ํน์ ์๋น์ค(80, 443, 8080 ๋ฑ)์ ์ ์์ด ์๋ ๋, ๋ฐฉํ๋ฒฝ์ด ํน์ ํฌํธ๋ฅผ ๋ง๊ณ ์๋์ง ํ์ธํ ๋ ๋ฑ์ ์ฌ์ฉ๋ฉ๋๋ค.
=> telnet ๋ช ๋ น์ด ์ ๋ ฅ ํ ํ๋ฉด์ด ๊ฒ๊ฒ ๋ณํ๊ฑฐ๋ Connected to ... ๊ฐ ๋ณด์ด๋ฉด ํฌํธ๊ฐ ์ด๋ฆฐ๊ฒ์ด์ง๋ง Connect failed๋ ๋ฌดํ ๋๊ธฐ ์ํ๋ผ๋ฉด ๋ฐฉํ๋ฒฝ์ ๋งํ๊ฑฐ๋ ํ๋ก์ธ์ค๊ฐ ์ฃฝ์ ๊ฒ์ผ๋ก ํ๋จํ ์ ์์ต๋๋ค.
์ด๋ป๊ฒ ํธ๋ฌ๋ธ ์ํ ์ ์งํํด์ผํ ๊น?
๋ง์ฝ ์๋ฒ์ ๋ฌธ์ ๊ฐ ์๊ฒผ๋ค๋ฉด ํ์ ๊ณ์ธต๋ถํฐ ์์ํด์ ์์ ๊ณ์ธต์ผ๋ก ํ์ธํด๋๊ฐ์ผํ๋ค.
1. Ping์ผ๋ก ์๋ฒ๊ฐ ์ผ์ ธ์๊ณ ๋คํธ์ํฌ๊ฐ ์ฐ๊ฒฐ๋์ด ์๋์ง ํ์ธํ๊ณ (ICMP ์ฐจ๋จ ๊ฐ๋ฅ์ฑ์ ์ผ๋ํด์ผํจ)
=> ๋ง์ฝ ์คํจํ๋ค๋ฉด ๋คํธ์ํฌ ๋ฌธ์ (IP, ๋ผ์ฐํ
, ๋ฐฉํ๋ฒฝ)์ ์์ฌ
2. Telnet์ผ๋ก ํด๋น ์ดํ๋ฆฌ์ผ์ด์
ํฌํธ๊ฐ ๋ฐฉํ๋ฒฝ์ ๋งํ์ง ์์๋์ง ํ์ธํ๊ณ
=> ๋ฐฉํ๋ฒฝ/๋ณด์ ๊ทธ๋ฃน, ํ๋ก์ธ์ค์ ์ฃฝ์์ ์์ฌ
3. Curl๋ก ์ค์ ์น ์๋ฒ๋ API๊ฐ ์ ์์ ์ธ ์๋ต์ ์ฃผ๋์ง ํ์ธํ๋ ์์ผ๋ก ๋ฌธ์ ๋ฒ์๋ฅผ ์ขํ๋๊ฐ๋ฉฐ ํธ๋ฌ๋ธ ์ํ
์๊ฐ์ ์ค์ผ ์ ์๋ค.
=> ์ดํ๋ฆฌ์ผ์ด์
๋ฌธ์ (API, ์น ์๋ฒ ์ค์ )๋ฅผ ์์ฌ
'๐ป CS > ๋คํธ์ํฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [CS ์ ๊ณต์ง์ ๋ ธํธ] HTTP (1) | 2025.02.09 |
|---|---|
| [CS ์ ๊ณต์ง์ ๋ ธํธ] IP ์ฃผ์ (0) | 2025.02.07 |
| [CS ์ ๊ณต์ง์ ๋ ธํธ] ๋คํธ์ํฌ ๊ธฐ๊ธฐ (0) | 2025.02.05 |
| [CS ์ ๊ณต์ง์ ๋ ธํธ] TCP/IP 4๊ณ์ธต ๋ชจ๋ธ (0) | 2025.02.03 |
| [CS ์ ๊ณต์ง์ ๋ ธํธ] ๋คํธ์ํฌ์ ๊ธฐ์ด (0) | 2025.02.01 |