패킷분석(DNS, IP 등) 스크랩
http://sivanksm.tistory.com/16
DNS
Ethernet
-destination -보낸주소(mac주소)
-source - 목적지주소(mac주소)
-type - frame type으로 data의 type을 구분해준다.
Ip
-version - ip 프로토콜의 버전을 의미
-header length - 옵션 필드를 포함한 헤더의 총 길이
-differentiated services field - 3비트의 우선권 필드,4비트의 TOS필드,1비트의 예약 필드로 구성
-total length - 헤더와 데이터를 포함한 패킷의 전체 길이를 바이트 단위로 표시
-identification - 작은 패킷으로 분활 전송시 동일한 데이터임을 인지 재조립 할 수 있도록 같은 식별자 필드 값을 가짐
-flags - 3비트로 구성, 첫비트는 예약된 필드로 사용 안함, 두 번째 비트는 단편화 금지 비트, 초가 단편화 비트(‘0’이라면 패킷이 분활된 패킷 중 마지막 패킷)
-fragment offset - 분할된 패킷간의 순서에 대한 정보가 필요, 순서 정보를 담고 있음
-time to live - 패킷이 경유할 수 있는 최대 홉 수를 의미
-protocol - 어떤 상위 프로토콜과 관련되는지를 나타내기 위해 사용
-header checksum - 오류 발생을 검사하기 위한 필드
-source - 보낸주소(ip주소)
-destination - 목적지주소(ip주소)
UDP
-source port
-destination port
-length
-checksum
DNA
-transaction id - 쿼리 응답 식별값, 2 바이트
-flags
+response - 메시지가 쿼리(값 0)인지 응답(값 1)인지 표시. 1비트
+opcode - 메시지를 생성한 쿼리의 종류를 나타낸다. 4비트
0 : 표준 쿼리(쿼리)
1 : 역 쿼리(쿼리)
2 : 서버 상태 요구(상태)
3-15 : 사용되지 않음
+truncated - 데이터 량이 현재 전송 메커니즘의 최대 크기를 초과하여 잘렸음을 표시. 대부분의 dns 구현에서 이 비트는 udp 데이터그램보다는 tcp 접속으로 데 이터를 전송해야 함을 나타내는 신호이다. 1비트
+recursion desired - 쿼리일 경우 수신 서버가 메시지를 순환 쿼리로 처리해야 함을 표 시하며 응답일 경우에는 이 메시지가 순환 쿼리에 대한 응답임을 표시한다. 1비트
+recursion available - 서버가 순환 쿼리를 처리하도록 설정되었음을 표시. 1비트
+answer authenticated - 도메인이나 존의 권위지 서버에 의해 응답 메시지가 생성되었 음을 표시. 1비트
+rcode - 응답 메시지의 성격, 오류 발생 및 오류 종류를 표시한다. 4비트
0 : 오류없음
1 : 포맷오류(서버가 쿼리를 이해할 수 없음)
2 : 서버실패(서버가 쿼리를 처리할 수 없음)
3 : 서버가 도메인 상에 요청 받은 이름이나 서브 도메인이 없음을 의미
4 : 지원안함(서버가 수신한 쿼리형을 지원하지 않음)
5 : 거부(서버 정책으로 인해 쿼리를 처리할 수 없음)
6-15 : 사용되지 않음
-questions - 질의 섹션의 엔트리 개수
-answer rrs - 응답 섹션의 엔트리 개수
-authority rrs - 신뢰 섹션의 네임서버 rrs의 개수
-additional rrs - 추가 섹션의 엔트리 개수
-queries - dna 질의 섹션
ARP
Ethernet
-destination -보낸주소(mac주소)
-source - 목적지주소(mac주소)
-type - frame type으로 data의 type을 구분해준다.
Arp
-hardware type
-protocol type
-hardware size
-protocol size
-opcode - arp,rarp의 질의/응답 구분
1 : arp request
2 : arp reply
3 : rarp request
4 : rarp reply
-sender mac address
-sender ip address
-target mac address
-target ip address
TCP
Ethernet
-destination
-source
-type
Ip
-version
-header length
-differentiated services field
-total length
-identification
-flags
-fragment offset
-time to live
-protocol
-header checksum
-source
-destination
Tcp
-source port
-destination port
-sequence number - 이 패킷의 선두 위치의 데이터가 송신 데이터의 몇 바이트째에 해당 하는지를 송신측에서 수신측으로 전하기 위한 것
-acknowledgement number - 데이터가 몇 바이트째까지 수신측에 도착 했는지를 수신측 에서 송신측을 전하기 위한 것
-header length
-flags - 이 필드 안에 있는 각 비트가 각각 통신 제어상의 의미를 갖는다.
+urgent - 긴급 포인터의 필드가 유효하다는 것을 나타냄
+acknowledgement - 수신 데이터의 일련 번호 필드가 유요하다는 것을 나타냄. 보통 데 이터가 올바르게 수신측에 도착하는 것을 의미
+push - flush 동장에 의해 송신된 데이터임을 나타냄
+reset - 접속을 강제적으로 종료하는데, 이상 종료시에 쓰임
+syn - 송신측과 수신측에서 일련 번호를 서로 확인하는데 이것으로 접속 동작을 나타냄
+fin - 절단을 나타냄
-window size - 수신측에서 송신측으로 윈도우 크기(수신확인을 기다리지 않고 묶어서 송 신 가능한 데이터량)를 통지하기 위해 씀
-checksum - 오류의 유무를 검사하기 위함
-options - 위의 헤더 필드 이외의 제어 정보를 기재할 때 쓰이는 필드