ARP의 실험 발표자 : 이직수 jslee@netwk.hannam.ac.kr.

Slides:



Advertisements
Similar presentations
컴퓨터와 인터넷.
Advertisements

2장. TCP/IP, 서브넷팅 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
16장 X.25 패킷 교환망 16.1 X.25 계층 구조 16.2 패킷 계층 프로토콜 16.3 요약.
6 데이터 링크 계층.
라우팅 개요 1. 라우팅이란? 서로 다른 네트워크 영역의 통신을 가능하게 이어주는 것 라우팅 프로토콜
3 장 OSI 기본 참조 모델 OSI : Open System Interconnection
Chapter 8 주소 변환 프로토콜(ARP).
Network Lab. Young-Chul Hwang
Chapter 14 Wireless LAN.
Penetration Testing 명지대학교 홍석원
Chapter 2. IP Address IP Address의 구성에 대한 자세한 설명과 함께 IP Address를 효율적으로 관리하기 위한 방법인 서브넷팅, 수퍼넷팅, VLSM 등에 대해서 단계별로 접근할 수 있다. 몇가지 예제를 통해서 서브넷팅에 대한 개념을 정리하고.
제 7장 정적 라우팅 프로토콜.
24 장 TCP/IP 24.1 개요 24.2 네트워크층 24.3 주소 지정 24.4 서브넷팅틍
ARP TARM PROJECT 1조 신영민.
Load Balancing L4와 L7은 어떻게 동작할까?.
TCP/IP Network Experimental Programming [패킷 모니터링 실험]
Multimedia & Mobile Communications Lab.
Internet Group Management Protocol (IGMP)
VoIP (Voice Over Internet Protocol)
9장 데이터 링크층 개요 (Introduction To Data-Link Layer)
제 14장 Multicast & Broadcast
PPP (Point-to-Point Protocol)
제 15 장 점 대 점 프로토콜 15.1 천이상태 15.2 PPP 계층 15.3 링크 제어 프로토콜 15.4 인증
15장 X.25 패킷 교환망 15.1 X.25 계층 15.2 X.25와 관련된 기타 프로토콜 15.3 요약.
Chapter 21 Network Layer: ARP, ICMP (IGMP).
Chapter 06. UDP 서버/클라이언트.
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
ARP Project 조 충 호 교수님 김 세 진 조교님 조 진 형 변 익 수
10 장 데이터 링크 제어(Data Link Control)
4. LAN의 배선체계 (3장. LAN: Local Area Network)
17장 X.25 패킷 교환망 17.1 X.25 계층 17.2 X.25와 관련된 기타 프로토콜 17.3 요약.
Chapter 19 솔라리스 네트워크 관리 Solaris1 . TCP/IP 개요
WOL(Wake-On Lan) 컴퓨터공학과 4학년 박기웅.
2장. TCP/IP, 서브넷팅 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
Chapter 07. 소켓 옵션.
2장. 인터넷의 개념과 주소.
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
22 장 전송층(Transport Layer)
2장. TCP/IP, 서브넷팅 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
제 15 장 BOOTP와 DHCP BOOTP 15.2 동적 호스트 설정 프로토콜.
통신프로토콜 전산정보학부 모바일인터넷과 권 춘 우
김 지 현 기초부터 배우는 TCP/IP 네트워크 제1장 TCP/IP 프로토콜 스택 입문 김 지 현
블루투스를 이용한 무선 스피커 구현 이기문 황대연.
MAIL CLIENT 김창우 윤성훈 이경재.
TCP/IP 인터네트워킹 INTERNETWORKING with TCP/IP <vol
Network 네트워크 이론 및 실습 TCP / IP 4장.
10 장 데이터 링크 제어(Data Link Control)
10 장 데이터 링크 제어(Data Link Control)
2 네트워크 모델 학습 목표 모듈 개념을 알아보고 계층 구조의 필요성을 이해한다.
01. 라우팅 및 원격 액세스의 개요 라우팅은 패킷을 송신지부터 수신지까지 어떠한 경로를 통해 보낼 것인지를 결정하는 방법
CHAP 21. 전화, SMS, 주소록.
3 네트워크 기술 학습 목표 회선 교환 시스템과 패킷 교환 시스템의 차이와 원리를 이해한다.
Chapter 26 IP over ATM.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
01. 개요 네트워크에 있는 컴퓨터와 그룹에 대한 NetBIOS 이름에 대응되는 IP 주소를 찾아주는 서비스
Ping Test.
(Dynamic Host Configuration Protocol)
Chapter 27 Mobile IP.
Chapter 04. TCP 서버/클라이언트.
제 13 장 인터넷 그룹 관리 프로토콜 정보통신연구실.
제 6 장 IP 패킷 전달과 라우팅 6.1 연결형 서비스와 비연결형 서비스 6.2 직접 전달과 간접 전달 6.3 라우팅 방법
인공지능실험실 박사 1학기 장성만 TCP/IP Socket Programming… 제 8장 도메인 이름과 인터네 주소 인공지능실험실 박사 1학기 장성만
D H C P 김민섭 박영운.
4. IP 데이터그램과 라우팅 (6장. 인터넷과 IP) IP 데이터그램 : 특정 물리망에 종속되지 않은 가상의 패킷 형식.
Network Lab. Young-Chul Hwang
3. 윈도우 미디어 플레이어 6.4 옵션(환경) 설정 변경
ARP.
Presentation transcript:

ARP의 실험 발표자 : 이직수 jslee@netwk.hannam.ac.kr

목차 ARP의 개요 ARP의 동작 같은 IP 주소가 있을 때 ARP의 동작 Arpupdate의 개요

ARP의 개요 ARP(Address Resolution Protocol) ARP는 Ethernet이나 토큰링 등의 브로드캐스트형 데이터 링크에 사용되는 프로토콜 IP 어드레스를 검색하는 MAC 어드레스를 검색할 때 사용 IP 패킷을 전송할 때 목적지 물리 주소를 모르는 경우 논리 주소를 이용하여 알아내는 프로토콜 ARP 요구나 응답 패킷은 ARP 테이블을 참조함

ARP 개요 ARP 패킷 포맷

ARP 개요 ARP 구조체 Struct arphdr{ U_short ar_hrd; /* 하드웨어 주소 포맷 */ U_short ar_pro; /* 프로토콜 주소 포맷 */ U_char ar_hln; /* 하드웨어 주소 길이 */ U_char ar_pln; /* 프로토콜 주소 길이 */ U_short ar_op; /* 오퍼레이션 */ }; Struct ether_arp{ struct arphdr ea_hdr; u_char arp_sha[ETHER_ADDR_LEN]; // 송신자 물리 주소 u_char arp_spa[4]; // 송신자 논리 주소 u_char arp_tha[ETHER_ADDR_LEN]; // 타깃 하드 주소 u_char arp_tpa[4]; // 타깃 논리 주소

ARP 개요 ARP 패킷 구조

ARP의 동작 호스트 A측

ARP의 동작 호스트 B측

ARP의 동작 호스트 A는 IP 패킷을 송신하고자 할때 자신의 ARP 테이블 검색 ARP테이블에 타겟 주소가 있으면 패킷을 Ethernet 프레임에 삽입 ARP테이블에 타겟 주소가 없으면 패킷을 ARP 응답 대기 큐에 삽입-ARP 실행 ARP 프로토콜을 실행하여 ARP 요구 패킷을 호스트 B로 전송 호스트 B는 송신된 패킷을 확인하고 자신의 ARP 테이블 갱신 호스트 B는 ARP 응답 패킷을 작성하여 호스트 A로 전송 호스트 A는 수신된 패킷을 확인하고 자신의 ARP 테이블 갱신 호스트 A는 ARP 응답 대기 큐에 있는 IP 패킷을 Ethernet 프레임에 넣어서 목적지 호스트로 전송 => ARP 요구 패킷과 응답 패킷은 두 호스트 간에 ARP 테이블을 갱신한다.

ARP의 동작 ARP 테이블

같은 IP 주소가 있을 때 ARP 요구 패킷 전송

같은 IP 주소가 있을 때 호스트 C 통신 불능

arpupdate의 개요 arpupdate의 목적 arp 프로토콜의 기능이나 동작 내용 이해 arp 프로토콜의 문제점 이해 arpupdate는 특정 IP 주소를 갖는 호스트를 3가지 방법으로 통신 불능 상태로 만듦

arpupdate의 개요

arpupdate의 개요 호스트 D는 타깃 호스트인 C를 찾기 위해 ARP 요구 패킷을 브로드캐스트 함 호스트 A는 네트워크 내에서 ARP 요구 패킷을 모니터링 함 호스트 C가 ARP 요구 패킷에 대해 응답함 호스트 A는 arpupdate가 작성한 패킷을 호스트 D로 전송 호스트 D는 ARP 테이블에 잘못된 주소를 갱신함 호스트 D는 통신 불가능 상태가 됨

arpupdate의 개요

arpupdate의 개요

arpupdate의 개요

arpupdate 함수 구조도

arpupdate 처리 흐름

arpupdate 프로그램 리스트

arpupdate 프로그램 리스트 명령어 인수 해석, 옵션 설정 명령어 인수로부터 IP 주소와 MAC 주소 넣음 flag = NORMAL; if(argc == 5) if(strcmp(argv[OPTION], "reply") == 0) flag = REPLY; else if (strcmp(argv[OPTION], "request") == 0) flag = REQUEST; else { help(argv[CMD_NAME]); return EXIT_FAILURE; } } else if ((argc != 4) { help(argv[CMD_NAME]); return EXIT_FAILURE; } strcpy(ifname, argv[IFNAME]); dst_ip = inet_addr(argv[DST_IP]); if ((sscanf(argv[MAC_ADDR], "%x:%x:%x:%x:%x:%x", &tmp[0], &tmp[1], &tmp[2], &tmp[3], &tmp[4], &tmp[5]) !=6) { printf("MAC Address error %s\n", argv[MAC_ADDR]); return EXIT_FAILURE; }

arpupdate 프로그램 리스트 데이터 링크 액세스 인터페이스 열기 if((s=socket(PF_PACKET, SOCK_PACKET, htons(ETH_P_ALL))) < 0) { perror("socket"); return EXIT_FAILURE; } memset(&sa, 0, sizeof sa); sa.sa_family = PF_PACKET; strcpy(sa.sa_data, ifname); if(bind(s, &sa, sizeof sa)<0){ perror("bind"); if((s=open_bpf(ifname))<0) return EXIT_FAILURE; bpf_len=0;

arpupdate 프로그램 리스트 MAC 주소 타입 검사 Reply 설정 처리 Request 설정 처리 if ((memcmp (eth->ether_dhost, mac_addr, 6) != 0 && memcmp(eth->ether_shost, mac_addr, 6) !=0 && ntohs(eth->ether_type) == ETHERTYPE_ARP){ make_arp((struct ether_arp *)sp, ARPOP_REPLY, mac_addr, arp->arp_tpa, arp->arp_sha, arp->arp_spa); make_ethernet((struct ether_header *)send_buff, arp->arp_sha, mac_addr, ETHERTYPE_ARP); make_arp((struct ether_arp *)sp, ARPOP_REQUEST, mac_addr, arp->arp_spa, zero, arp->arp_tpa); make_ethernet((struct ether_header *)send_buff, arp->arp_sha, mac_addr, ETHERTYPE_ARP);

arpupdate 실행 예 - reply

arpupdate 실행 예 - request

arpupdate 실행 예 - normal

Thank you… Q & A mailto://jslee@netwk.hannam.ac.kr