티스토리 뷰

Linux

네트워크 패킷 덤프 - tcpdump (2)

naleejang 2022. 12. 15. 14:58

오늘은 tcpdump의 옵션을 한번 세어봤다. 무려 57가지나 된다. 옵션이 정말 많다. 그러나, 실질적으로 사용하는 옵션은 그리 많지는 않을꺼라 생각한다. 그래서, 여기서는 가장 많이 사용하는 옵션을 우선순위로 해서 정리를 해 보고자 한다.

아래 옵션들은 tcpdump 명령어를 사용할 경우 가장 많이 사용하는 옵션들이다.

Options Description
-i interface 해당 옵션을 지정하지 않으면, 리눅스에서 검색되는 모든 인터페이스의 패킷 트랙픽을 보여준다. 예를 들어
tcpdump -i eth0 을 수행하게 되면 eth0으로 지나가는 모든 트래픽을 보여준다.
-w file tcpdump 명령어에 의해 보여지는 패킷 트랙픽을 파일로 저장한다.  
-r file -w 옵션에 의해 생성된 패킷 덤프 파일을 읽어들인다. 
-v 패킷의 상세한 정보를 출력한다. 예를 들어 TTL(Time to Live), ID, 패킷의 총길이 및 옵션 정보가 함께 출력된다. 또한 IP 및 ICMP 헤더 체크섬 확인과 같은 패킷 무결성 검사를 활성화한다.

이 외에도 다양한 옵션들이 존재하면 이번 포스팅에서는 아래와 같은 옵션들을 먼저 알아보았다.

Options Description
-A 헤더를 제외한 각 패킷을 ASCII로 인쇄한다. 웹 페이지 캡처를 할 경우 편리하다.
-b ASPLAIN 표기법이 아닌 ASDOT 표기법으로 BGP 패킷의 AS 번호를 인쇄한다.
-B buffer_size
--buffer_size=buffer_size
운영 체제 캡처 버퍼 크기를 KiB(1024바이트) 단위로 buffer_size를 설정한다.
-c count 카운트 패킷을 수신한 후 종료한다.
-C file_size 저장 파일에 원시 패킷을 쓰기 전에 파일이 현재 file_size보다 큰지 확인하고, 그렇다면 현재 저장 파일을 닫고 새 파일을 연다. 첫 번째 저장 파일 이후의 저장 파일은 -w 플래그로 지정된 이름을 가지며 그 뒤에 숫자가 붙는다. 1부터 시작하여 계속 커지며, file_size의 단위는 수백만 바이트입니다(1,048,576바이트가 아닌 1,000,000바이트). -Z 옵션(기본적으로 활성화됨)과 함께 사용하면 첫 번째 저장 파일을 열기 전에 권한이 삭제된다.
-d 컴파일된 패킷 일치 코드를 사람이 읽을 수 있는 형식으로 표준 출력에 덤프하고 중지한다.
-dd 패킷 일치 코드를 C 프로그램 조각으로 덤프한다.
-ddd 패킷 일치 코드를 10진수로 덤프한다.
-D
--list-interfaces
시스템에서 사용 가능하고 tcpdump가 패킷을 캡처할 수 있는 네트워크 인터페이스 목록을 보여준다.
-e 각 덤프 라인에 링크 수준 헤더를 출력한다. 예를 들어 이더넷 및 IEEE 802.11과 같은 프로토콜의 MAC 계층 주소를 출력하는데 사용할 수 있다.

옵션을 보다보니 다음과 같은 용어들이 나온다. tcpdump는 네트워크 패킷을 캡처하기위한 명령어이므로, 당연히 네트워크와 관련된 용어가 나오고, 해당 용어들을 이해하지 못하면 해당 옵션이 어떤 기능을 하는지 이해할 수 없다. 그래서 이번에는 용어들에 대해 찾아보았다.

BGP (Boder Gateway Protocol)

BGP는 서로 다른 조직의 네트워크를 연결할 때 사용하는 라우팅 프로토콜이라고 한다. 예를 들어 기업, 또는 학교, 공공기관과 같은 2개 이상의 ISP와 연결할때 BGP를 사용한다고 한다.  이때 하나의 BGP만 사용을 하면 Single Homing, 2개 이상의 BGP를 사용하면 Multi Homing이라고 한다.  

AS (Autonomous System)

BGP를 사용하기 위해서는 BGP 전용 번호가 필요한데, 이걸 AS(Autonomous System)라고 하고, AS 번호로 식별이 된다고 한다. 그리고, AS 번호는 ICANN(Internet Coperation for Assigned Names and Numbers)의 지역 등록 기관에 의해 할당된다. 좀 더 쉽게 말해 위 그림에서 AS는 기관이나 기업인 것이고, 이런 AS를 ICANN 이라는 기관에서 관리를 한다는 것이다.  

ASPLAIN 

AS는 특별한 번호로 관리를 하는데 이때 이 번호를 표기하는 방법으로 ASPLAIN과  ASDOT 표기법이 있다. ASPLAIN은 사람이 이해하기 가장 간단하며 일반적인 십진수으로 표현한다. 예를 들어 545435, 4294937295, 4254967294, 2294967295 와 같이 표현하는데, 이러한 번호는 이해하기 쉽지만 오류가 발생하기 쉽다. 왜냐하면 환경설정시 실수를 하거나 BGP 테이블의 숫자를 잘못 읽을 수 있기 때문이다. 사람은 기계가 아니니까~

ASDOT

암튼 그래서 나온 표기법이 바로 ASDOT 표기법이다. ASDOT은 ASPLAIN 표기법의 65536 미만의 AS 번호를 나타내고 65536 이상의 AS 번호는 ASDOT+ 표기법을 사용하여 나타낸다. ASDOT+는 점으로 구분된 두 개의 16비트 부분인 상위 값과 하위 값으로 AS 번호를 나눈다. 예를 들면 다음과 같다.

  • AS 6541 becomes 0.6541
  • AS 54233 becomes 0.54233
  • AS 544 becomes 0.544

참조 링크

오늘은 tcpdump에서 주로 사용하는 옵션과 그 외 옵션 일부를 알아보았다. 그리고, 옵션 설명에서 나온 네트워크 용어의 개념들도 찾아 보았다. 어떻게 구성을 하면 되는지까지는 몰라도 이것이 어떤걸 의미하는지 개념을 알고 접근을 하니 오늘도 무엇가 하나를 알고 넘어가는것 같아 기분이 좋아지는 하루다.

최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함