IP
Port
Domain
방화벽
이 모두는 네트워크/통신과 관련되어 있다.
LAN 선(망)을 연결한 후, 특정 웹사이트와의 연결이 정상적인지 확인하기 위해 사용했다.
연결이 되지 않았기에 다음과 같이 요청 시간이 만료되었습니다.
메시지를 반환받게 되었다.
"Packet Internet Groper" = "터넷 패킷을 더듬어 네트워크 상태를 진단한다."
--> Ping Pong
(탁구)를 생각하면 된다.
지정한 대상에게 패킷을 전송(Ping
)하고, 대상이 보내는 응답(Pong
)을 분석
유저가 사용하는 PC에서 서버로 정보를 보낸 뒤, 그 정보가 다시 유저의 PC로 되돌아오는 시간
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 [목적지 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)