네트워크 기본 개념
- IPv4 패킷 구조
1) Identification: 단편화 구분 ID
2) Flags: 3bit로 구성되며, 첫 번째 비트는 사용하지 않음. 두 번째 비트는 DF(Don;t Fragment_1이면 단편화하지 마라, 0이면 단편화되었음을 의미), 세 번째 비트는 MF(More Fragment_1이면 단편이 더 있다, 0이면 더 이상 재조합할 단편 없음을 의미)
3) Fragment offset: 단편의 상대 위치를 저장
ex) MTU가 1500일 때 3008byte의 데이터를 보내는 경우 각 단편의 크기
헤더의 크기(20~60byte인데 보통 20byte)를 고려하여 1480/1480/48로 나누고 실제 보내는 데이터의 크기는 헤더를 포함하여 1500/1500/68로 전송됨.
- IPv6
IPv4의 주소 고갈 문제를 해결하기 위한 128bit(앞 64bit는 네트워크 주소 부분/뒤 64bit는 인터페이스 주소 부분)의 주소체계
IPv4의 헤더에서 불필요한 부분을 제거해 헤더를 단순화하여 속도 향상, 2^128개의 넉넉한 주소, IPsec 기본 지원으로 보안성 향상, 주소 자동 설정 기능
--IPv4 > IPv6 전환 기술
1) 듀얼 스택: IPv4와 IPv6를 동시에 설정해 통신 상대에 따라 선택적으로 사용
2) 터널링: IPv4 네트워크를 통과하는 가상의 터널을 만들어 통신
3) 주소 변환/헤더 변환: 패킷의 앞부분에 변환 헤더를 추가하여 송식하고 수신측에서는 변환 헤더를 제거하는 방식으로 통신
- ICMP
3계층에서 네트워크 상태 진단 및 오류 메시지 전송해주는 프로토콜
--ICMP 메시지 타입
0: echo reply
3: unreachable 도달 불가_호스트/프로토콜/포트
5: icmp redirect >> 네트워크 경로가 잘못되었을 때 새로운 경로를 재지정하는 명령으로, 공격에 사용될 수 있기 때문에 최근 OS에서는 기본으로 해제하고 있음.
8: echo request
11: time exceed 시간 초과
**ping은 type 0&8을 이용해 네트워크 상태 진단
**traceroute(리눅스)/tracert(윈도우)의 차이: traceroute는 UDP 패킷을 이용하고 tracert는 ICMP ping을 이용
**netstat 명령으로도 네트워크 상태 진단 가능. 주로 netstat –ant 명령 사용(a는 연결된 모든 소켓 상태 정보, i는 네트워크 인터페이스 정보, t는 tcp 소켓, r은 라우팅테이블, n은 네트워크 주소를 숫자 형식으로 출력)
- IPsec
--mode
1)transport mode: IP payload(data)만 보호하고 IP 헤더는 보호하지 않음. 따라서 새로운 헤더는 필요하지 않으며 종단 간 연결(end to end) 보호에 사용됨
2)tunnel mode: IP헤더와 IP payload 둘 다 보호함. 따라서 맨 앞에 새로운 IP헤더가 추가되며, 라우터-라우터/라우터-호스트 사이 보호에 사용됨.
--protocol
1)AH: 인증 헤더 프로토콜로, 인증에 대해서만 검사함. 인증+무결성 보장. 프로토콜 식별 번호 51번
2)ESP: 보안 페이로드 캡슐화 방식으로, 인증+무결성+기밀성까지 제공함. 프로토콜 식별 번로 50번
**키교환은 IKE로 수행