IP
Port
Domain
방화벽
이 모두는 네트워크/통신과 관련되어 있다.
LAN 선(망)을 연결한 후, 특정 웹사이트와의 연결이 정상적인지 확인하기 위해 사용했다.
연결이 되지 않았기에 다음과 같이 요청 시간이 만료되었습니다.
메시지를 반환받게 되었다.
"Packet Internet Groper" = "터넷 패킷을 더듬어 네트워크 상태를 진단한다."
--> Ping Pong
(탁구)를 생각하면 된다.
지정한 대상에게 패킷을 전송(Ping
)하고, 대상이 보내는 응답(Pong
)을 분석
목적 호스트에 응답을 요구하는 메시지를 전송하고, 상대 호스트가 메시지를 받으면 응답 메시지를 돌려줌
유저가 사용하는 PC에서 서버로 정보를 보낸 뒤, 그 정보가 다시 유저의 PC로 되돌아오는 시간
ICMP 프로토콜을 이용
ping 으로 상대 응답이 돌아오지 않는다면 원인은?
1. IP 주소가 제대로 할당되지 않은 경우 --> ipconfig 로 IP 주소 할당이 정상적으로 되었는지 확인
2. 공유기(라우터, router)와 LAN(또는 무선 접속)에 문제가 생긴 경우
ICMP 프로토콜
- "Internet Control Message Protocol"
- 보안 문제
- 최근에는 보안상 문제로 인해, ICMP 패킷에 응답하지 않도록 하는 서버들이 多
패킷
- "패키지(package)" + "버킷(bucket)"
작은 데이터
= 통신망을 통해서 전송하기 쉽도록, 데이터를 잘게 나눈 단위
ping [목적지 IP/도메인] [옵션]
port 없이, IP 만으로 진단하는 방식
사용자가 옵션을 지정하지 않으면, ping 명령이 일반적으로 4~5개의 에코 요청
Port 를 사용하지 않는 이유?
목적지 IP/도메인으로 Packet을 전송하고, 대상이 보내는 응답을 분석하는 과정에서ICMP 프로토콜
을 사용하여 통신한다.한 지점과 다른 지점이 ICMP 규칙(규약)을 이욯하여 소통하는데,
ICMP 는 Network 계층(OSI 7 계층의 3 계층)에 속하는 프로토콜이다.따라서, 4 계층(전송(Transport) 계층)에서 사용하는 port 정보를 이용하지 않는다.
그래서 Ping 명령어는 Port 없이 IP 로만 진단이 가능하다.
예시 1. 로컬호스트(localhost) IP 에서 ping
예시 2. 도메인(domain) 에서 ping
예시 3. 옵션
# -t 옵션 : 기본 4회 수행 후, 반복적으로 수행
ping [주소(목적지)] -t
ping 127.0.0.1 -t
# -l 옵션 : 100 바이트 크기의 패킷을 전송
ping [주소(목적지)] -l [전송될패킷]
ping 127.0.0.1 -l 100
# -n 옵션 : n회 만큼 수행
ping [주소(목적지)] -n [횟수]
ping 127.0.0.1 -n 6
# -a 옵션 : 기본 4회를 수행한 후, IP 확인 가능
ping [도메인] -a
ping 127.0.0.1 www.google.co.kr -a
# 중복 옵션 : 해당 도메인(www.google.co.kr)에 64바이트의 패킷을 6회 전송한다.
ping www.google.co.kr -n 6 l 64
처리결과
바이트 : 응답으로 수신된 바이트 수TTL(Time To Live) : 데이터의 유효 기간 (라우터에서 라우터로 무한정 전달될 위험성을 막아서 패킷이 무한으로 순환하는 것을 막아 주는 역할)
패킷(보냄/받음/손실) : 성공적인 응답 여부
왕복시간 :
(패킷의) 손실률 : 인터넷의 연결 상태를 진단가능
ping : 요청을 보내고 받아서 분석하는 명령어
telnet : 컴퓨터와 컴퓨터 사이를 연결하는 명령어
원격지의 호스트 컴퓨터에 접속하기 위해 사용되는 인터넷 프로토콜
포트, 서비스를 지정하지 않는 경우, telnet 서비스(TCP 23번 포트)에 접속
telnet [목적지 IP/도메인] [목적지 Port]
telnet 명령어가 사용불가능하다면?
- 데스크탑 : 윈도우 시작 > 설정 > 앱 > 프로그램 및 기능 > Windows 기능 켜기/끄기 > '텔넷 클라이언트 체크
- 랩탑 : win+R >
optionalfeautures
검색 > (이후 동일 진행)
보안을 위해 ssh
ssh [원격 사용자 ID]@[목적지 IP/도메인] -p [Port]
- 원격지의 호스트 컴퓨터에 접속하기 위해 사용되는 인터넷 프로토콜
- telnet 의 보안 문제 때문에, ssh 를 사용하는 추세
정상적으로 연결되면 cmd 창에는 아무것도 뜨지 않음
예시 1. 구글 IP 에서 telnet
(ping www.google.com 으로 구글의 IP 를 확인할 수 있었음(142.250.206.196))
telnet 142.250.206.196 80
telnet 142.250.206.196 443
예시 2. 구글 도메인에서 telnet
telnet www.google.com 80
telnet www.google.com 443
Endpoint에 HTTP 프로토콜을 이용하여 PUT/POST/... 요청을 보내고 그 결과를 확인하는 데에 활용
언제 사용?
curl [목적지 IP/도메인]
cocktailpick 사이트에 get 요청 전송
DNS 서버와 대화식으로 질의/응답 받음
언제 사용?
nslookup # nslookup 프롬프트로 이동한 후에도 질의 가능
nslookup [목적지 IP/도메인]
nslookup [목적지 IP/도메인] [네임서버명/IP]
예시 1. 네임서버 IP 확인
168.126.63.1 이다.
예시 2. 네임서버를 통해, 특정 도메인(구글)의 IP 조회
예시 3. nslookup 프롬프트로 이동 후 질의(특정 도메인 조회)
예시 4. 전체 정보 조회
네임서버
= "DNS(Domain Name System) 서버"
- 내가 원하는 특정 서버(네이버, 구글)에 접근하기 위해서는
URL(www.naver.com, www.google.com = 도메인명)을 서버 컴퓨터의 IP 주소로 변환시켜서 사이트에 접속하는데, 이를 지원해주는 것이 네임 서버.
- client 가 로컬 DNS 서버에 도메인을 알려주면, 로컬 DNS 서버는 해당 도메인에 맞는 IP 주소를 불러옴.
- 위치 : 로컬C/Windows/System32/drivers/etc/host
host 파일을 수정해서, URL을 매핑시켜놓고 테스트 가능.
그러나, 규모가 커지면 DNS 서버를 이용해야함.
- 네임서버 설정 파일 : /etc/resolv.conf
- 설정된 네임서버 IP 수정 가능
- 사용자가 URL 입력 시, IP 주소를 획득하는 과정
- 사용자가 URL 입력
- /etc/hosts 파일을 열어, 정보(URL, IP) 확인
- 없다면, /etc/resolv.conf 파일 열어, 정보(IP) 확인
- 해당 네임서버로 URL의 IP 주소를 질의함.
(Client 가 아닌) Server 단에서 통신 여부를 확인하는 명령어
상태
netstat [옵션]
-a
: -r
: -n
: -i
: -s
: -p
: 예시 1. 모든 네트워크 확인
# 모든 네크워크 연결 확인
netstat -a
예시 2. 모든 네트워크의 IP와 Port 확인
netstat -an
예시 3. 특정 포트의 IP와 Port 확인
# 특정 포트가 사용 중인지 확인 (모든 네트워크의 Port 中 '포트번호')
netstat -an | grep 8080
예시 4. 연결가능한 TCP의 PID와 Program 확인
# 연결 가능한(= LISTIEN 상태의) TCP 프로토콜의 포트를 사용하는 프로세스ID(PID)와 프로그램
netstat -tlp
# 위의 해당 결과값을 1초마다 표시
netstat -tclp
예시 2. 연결가능한 TCP의 IP와 Port, PID와 Program 확인
# 연결 가능한(= LISTIEN 상태의) TCP 프로토콜의 포트와 프로그램을 보여줌
netstat -tnlp
# 위의 해당 결과값을 1초마다 표시
netstat -tcnlp
"Process Status"
시스템에서 현재 실행 중인 프로세스에 대한 정보 확인
ps -ef | grep [모듈명]
ps -ef | grep tomcat
ps -ef | grep alert
참고: health check에서 출발한 ping, telnet, curl 이야기
참고: nslookup 으로 도메인 ip 조회 하기
참고: [Linux] 네임 서버(DNS 서버)
참고: 리눅스 명령어(nslookup,ping,traceroute,netstat,arp,tcpdump)