-
통신 확인하기네트워크 & 인프라 2022. 3. 23. 17:56
이번에는 네트워크 통신을 확인하는 방법에 대해 알아보자.
① Ping check
- IP 정보만으로 서버에 요청이 가능한 지 확인
- ICMP 프로토콜 사용 (신뢰성을 보장하지 않는 IP의 오류정보를 발견하고 보고를 담당하는 프로토콜)
- TCP가 아니라 Port번호가 존재하지 않음
- RTT(Round Trip Time) : 한 패킷이 왕복한 시간 (높을 경우 어느구간에서 오래 걸리는지 확인 필요)
- ARP(Address Resolution Protocol) : IP(논리적 주소)를 이용하여 MAC(물리적 주소)를 알아와 통신이 가능하게 해주는 프로토콜
- Broadcast로 요청하면 수신한 장비들 중 자신의 IP에 해당하는 장비가 응답하고 응답 받은 NIC 포트정보와 IP, MAC 주소를 기반으로 이후 통신을 진행
$ ping [대상 IP] -- [대상 IP] ping statistics -- 1 packets transmitted, 1 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 걸린 시간 ms ## 어디서 오래걸리는지 찾기 $ traceroute [대상 IP] ## ARP Table 확인 ## Ping으로 다른 서버와 통신한 이후 arp table을 다시 확인해보면 ARP Table이 추가됨을 확인가능 $ arp Address HWtype HWaddress Flags Mask Iface [디폴트 Route IP] ##... $ ip route default via [디폴트 Route IP] dev eth0 proto dhcp src [자신의 IP] metric 100 ## ARP 변경 ## Default Route의 MAC주소를 변경할 경우 연결이 끊어짐을 확인가능 $ sudo arp -s 192.168.0.1 [다른 MAC주소]
② Port check
- 서비스의 정상 구동 여부 확인
$ telnet [Target Server IP] [Target Service Port]
- 서버는 소켓을 통해 하나의 포트번호를 오픈해두고도 많은 사용자와 연결을 맺을 수 있다.
- 같은 프로세스가 같은 포트를 가지고도 여러개의 소켓을 열 수 있다.
- 하나의 프로세스는 같은 프로토콜, 같은 IP주소, 같은 포트넘버를 가지는 수십 혹은 수만 개의 소켓을 가질 수 있다.
- 소켓을 통해 데이터 보내면 네트워크 모델에 따라 목적지 호스트에 데이터 도착
- 데이터를 담은 봉투에 써진 도착지의 포트넘버와 같은 포트를 할당받은 프로세스 찾음
- 프로세스의 소켓을 통해 해당 프로세스에 데이터를 전달
## 현재 서버에서 프로세스 별로 몇개의 연결이 가능한지 확인 $ sysctl fs.file-max $ ulimit -aH
## 포트 포워딩 (80 번으로 연결시에 8080으로 연결되도록) ## 원격지 서버에서 8080 포트로 소켓을 열기 $ sudo socket -s 8080 ## iptables 를 활용하여 port forwarding 설정 ## 80번 포트로 서버에 요청을 하면 서버의 8080번 포트와 연결 $ sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 ## 서버의 공인 IP 확인 $ curl wgetip.com ## 자신의 로컬에서 연결 $ telnet [서버의 공인 IP] 80 ## 설정 삭제 $ sudo iptables -t nat -L --line-numbers $ sudo iptables -t nat -D PREROUTING [라인 넘버]
③ HTTP Response check
- HTTP Status code 기반으로 상세하게 이상 유무 판단
- /etc/hosts 파일에 정적으로 설정한 정보를 확인
- 로컬의 DNS Cache 확인
- /etc/resov.conf에 설정한 저보를 기반으로 DNS 서버에 질의
- DNS 서버는 정보가 있으면 반환, 없으면 본인 상위의 DNS에 질의
- 도메인에 해당하는 IP 알게되면 DNS Cache에 추가
$ curl -I [대상 IP]
④ 패킷 분석
- wireshark, tcpdump 등의 도구를 사용해서 분석 가능
- wireshark를 이용하며 패킷을 캡쳐할 수 있다 (통신과정에서 일어난 이벤트 기록가능)
$ tcpdump host 192.168.0.207 $ tcpdump port 80 $ tcpdump net 192.168
( 참고한 사이트 )
NextStep 프로젝트 공방 1기 (망 분리하기)
https://blog.naver.com/myca11/221389847130
'네트워크 & 인프라' 카테고리의 다른 글
웹 성능 진단하기 (0) 2022.04.14 AWS 망 구성하고 서비스 배포하기 (0) 2022.03.28 Mac에서 docker, docker machine, virtualbox설치하기 (0) 2022.03.28 통신망 ( + AWS 에서 망 분리하기) (0) 2022.03.23 네트워크 OSI 7 계층 (0) 2022.03.23