용어 정리
- ttl(time to live) : 이 값만큼 라우터와 라우터 사이를 옮겨가면서 요청한 ip를 찾음 (ip헤더에 값으로 주어짐)
- AP(Access Point) : 스위치 + 라우터 (예-와이파이 공유기)
- ping : 신호를 보냈다가 돌아오는 것 (ICMP 프로토콜 사용)
- 홉(hop) : 라우터와 라우터 사이 - 각 패킷이 매 노드(또는 라우터)를 건너가는 양상을 표현
- ping을 보냈을때 찍힌 ttl + 라우터의 개수 = 해당 ping을 보낸 서버의 ttl
- 운영체제마다 고유의 ttl을 가지고 있어서 ttl값으로 운영체제를 확인 해 낼 수 있다. (64-리눅스 / 128-윈도우)
명령어
- nslookup : 서버 주소 알아내기 (nslookup naver.com)
- traceroute / tracert(윈도우) : 네트워크 신호의 흐름을 알 수 있다.
- ip a : IP확인
- netstat -nr(윈도우도 동일) : routing table / 게이트웨이 정보 확인 / Flags : UG → Use Gageway / 0.0.0.0의 의미는 anywhere 어디든 갈 수 있다.
- time dig @168.126.63.1 naver.com in : 168.126.63.1 이라는 DNS 서버에서 naver.com이라는 도메인을 찾는데까지 걸리는 시간을 측정
- 게이트웨이(192.168.40.1)에 ping을 날림 → ttl=64를 통해서 게이트웨이가 리눅스 커널위에서 동작한다는 것을 알 수 있음
4 계층 - 전송 계층 (Transport Layer)
- 데이터를 담을 수 있는 계층
- 전송 계층 (4계층)의 PDU 값 : 세그먼트 (segment)
- 이 계층에서 가장 중요한 것은 포트 (iana port assignment / RFC문서 : 통신규약 문서)
- netstat 는 세션 정보를 확인하는 명령어
- port는 세가지 영역으로 나뉨. 왜 나누어서 사용하는가? → 보안적 측면, 시스템 포트는 루트/Admin 권한, 사용자 포트는 userland (대부분은)
- 포트가 열려있으면 서비스, 서비스가 열려있으면 프로세스가 열려있다. (반대는 안됨)
- 프로세스가 열려있어도 서비스가 아닐 수 있고, 서비스가 열려있어도 포트가 안열려 있을 수 있다.
- 프로그램을 바인딩 했다 : 어떠한 권한을 부여해서 실행했다.
- 포트넘버가 열려있다. → 내 컴퓨터에 빨대가 꽃혀있다. → 없애야함 (결제 관련 프로그램 등)
5 계층 - 세션 계층 (Session Layer)
- What is Session? → 어플리케이션(응용프로그램)과 관련되는 것_응용프로그램 레벨에서 카운트(네트워크 레벨 X)
- 언제까지 권한이 유지되느냐? → 세션이 유지 될 때까지
- 사이트 접속 → 로그인 → 인증/식별/인가 의 과정을 거침 (반드시)
- 로드밸런스(LB)도 세션 계층 ~ 서버 과부하를 막기위해 트래픽?을 분산시켜주는 장비
6 계층 - 표현 계층 (Presentation Layer)
- 인코딩/디코딩/암호화/코덱 등의 영역 - 어플리케이션이 해줌
- SSL, TLS를 해주는 계층 - ip제외하고 암호화
7 계층 - 응용 계층 (Application Layer)
* TCP/IP 4계층
- 현재 사용하는 형태
- OSI 7 계층이 존재하지 않는 것은 아님. 같은 데이터 형식 / 장비를 사용하는 계층끼리 묶은 것이 TCP/IP 4계층이다.
Display Filtering
- Time : 상대적인 시간 (내가 모니터링 하기로 시작한 순간부터) - Default 설정값
- View > Time Display Format > UTC Date… / Tenths of a second 로 설정
- 필드에 Port number가 안보임
- Edit > preferences… > Appearance > Columns > [+] 두개 > Title : Src-port, Dest-Port > Type : Src Port(unresolved), Dest port(unresolved) > 순서 변경
(unresolved : 번호 형태로 포트를 보여줌 / resolved : 네임으로 포트를 보여줌)- Statistic > Conversations (어떤 트래픽에서 많이 발생하는지 볼 수 있는.. 패킷 개수가 가장 많은 연결) > Apply as filter > Selected > A↔B > 필터가 걸려서 Display됨
I/O Graph
- Statistic > I/O Graphs > Display Filter, Color, Style 등 설정
* wireshark에서 t shark라는 것을 지원해 줌 → 이것으로 원본 데이터를 뽑아내 머신러닝 등에 활용 할 수 있다.
예시를 통한 IP 구조 확인
- inet(ip) : 192.168.40.4
- netmask (subnetmask) : 255.255.255.0 → 네트워크 영역과 호스트 영역을 구분 지어주는 정보 (하나의 IP 주소 = 네트워크 영역 + 호스트 영역)
- 192.168.40 (네트워크 영역) + 4 (호스트 영역) →netmask의 255라고 표기된 세자리가 네트워크(공통)영역이라는 것을 표시해주는 것임
- netmask를 2진수로 표기하면… 11111111.11111111.11111111.00000000 ⇒ 24
-- 예) 172.16.100.20 / 16 ⇒ 172.17(네트워크 영역) + 100.20(호스트 영역)- 첫주소와 끝주소는 예약 되어 있음 : 모두가 1인경우 브로드캐스트 주소로 사용하고 모두 0인 경우엔 네트워크 주소로 사용함.
- ip, netmask(subnet mask), gateway, dns address : 앞의 세개 중 하나만 바뀌어도 네트워크 정보를 갱신해 주어야 함. (dns는 information 정보)
- CIDR 표기법 / prefix 방식 (CIDR - Classless Inter-Domain Routing : 도메인 = 분할)
- subnetting : 네트워크를 나누는 것 (8로 안나눠지면 subnetting이 된 것)
동적 IP vs 고정 IP
- IP는 관리를 목적으로 만들어 짐 - 원래는 IP를 static하게 만들어 관리하는 것이 가능
- DHCP (동적으로 IP를 할당하는 프로토콜) 이 필요한 서비스가 있음
- 동적 IP할당을 위해서는 한쪽에 DHCP 서버가 있어야하고 그 서버는 DHCP 할당 IP범위를 정함. 얼마의 기간동안 할지도 정함. (공유기가 DHCP의 기능을 함)
- 외부에서 고정 IP : naver.com, google.com 등의 고유 주소를 마킹 (대명사)
- 내부에서 고정 IP : 내부에서 고정해서 사용하는 장비. 게이트웨이 등
기타 네트워크 장비
- NAT (Network Access Translation) : 내부 IP를 외부로 변환 또는 외부 접근을 내부접속 가능하게 하는 변환 (라우팅 - 라우터)
- 라우팅 : 내부 외부 신호 변환 + 노드와 노드 사이를 막히지 않는 (최적)경로로 가게 해주는 장비, 인터넷이 느려지지 않게.
- NAC 장비 (Network Access Control) : 외부 접근 통제