ARP
이더넷 프레임을 만들기 위해서는 출발지 MAC 주소와 목적지 MAC 주소가 필요하다.
그러나 처음 통신을 시작할 때는 IP 주소만 알 뿐 상대방의 MAC주소 즉, 목적지 MAC주소는 모른다.
이더넷에서 상대방의 MAC 주소를 알아내기 위하여 사용하는 프로토콜이 ARP(address resolution protocol)이다.
ARP 테스트 네트워크 구성
일반적으로 MAC 주소는 바꾸지 않는다. ( OUI의 경우 자체적으로 할당 받고 나머지 3바이트 또하 회사에서 자체적으로 만들기 때문이다. 약 1600만 개)
R1(config)# interface f0/0
R1(config-if)# ip address 1.1.1.1 255.255.255.0
R1(config-if)# mac-addess 0000.0000.0001
R1(config-if)# no shutdown
R2(config)# interface f0/0
R2(config-if)# ip address 1.1.1.2 255.255.255.0
R2(config-if)# mac-addess 0000.0000.0002
R2(config-if)# no shutdown
R3(config)# interface f0/0
R3(config-if)# ip address 1.1.1.3 255.255.255.0
R3(config-if)# mac-addess 0000.0000.0003
R3(config-if)# no shutdown
목적지 mac주소를 모를때 사용하는 것이 ARP이며 상대방에게 목적지 MAC주소를 요청시 목적지 MAC 주소에 FFFF.FFFF.FFFF 를 입력해서 보낸다.
스위치는 MAC 주소가 브로드 캐스트로 설정된 프레임을 수신하면 수신 포트를 제외한 모든 포트로 전송한다.
만약 IP주소가 1.1.1.2인 장비에 쐈다면 1.1.1.2는 자신의 맥주소는 0000.0000.0002이다 라는 ARP 응답 패킷을 전송한다. R3은 자신과 무관하므로 응답하지 않는다. ARP응답을 수신한 R1은 이제 목적지 IP 주소 1.1.1.2의 MAC주소를 알게 된다. 이때 R1과 R2는 서로 상대방의 ARP 결과를 ARP테이블에 저장한다
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.2, timeout is 2 seconds:
*Mar 1 00:04:42.431: IP ARP: creating incomplete entry for IP address: 1.1.1.2 interface FastEthernet0/0
*Mar 1 00:04:42.435: IP ARP: sent req src 1.1.1.1 0000.0000.0001,
dst 1.1.1.2 0000.0000.0000 FastEthernet0/0
// 출발지 IP/MAC 주소가 1.1.1.1/0000.0000.0001 목적 주소가 1.1.1.2 0000.0000.0000인 ARP 요청 패킷을 f0/0 인터페이스로 전송한다. 요청패킷에는 0000.0000.0000으로 나타나지만 외부의 이더넷 헤더에는 FFFF.FFFF.FFFF로 설정된다.
*Mar 1 00:04:42.511: IP ARP: rcvd rep src 1.1.1.2 0000.0000.0002, dst 1.1.1.1 FastEthernet0/0.!!!!
// IP 주소가 1.1.1.2인 장비의 MAC 주소가 0000.0000.0002라는 ARP 응답 패킷을 수신한다.
Success rate is 80 percent (4/5), round-trip min/avg/max = 12/35/80 ms
이더넷에서 처음 핑을 떄리면 이처럼 한 두개의 패킷이 빠진다 그 이유는 ARP가 성공하기 전에는 핑 패킷을 전송할 수 없어 타임아웃되기 때문이다.
R1에서 show arp를 하면 ARP테이블에 상대의 IP주소와 MAC주소(Hardware Addr)가 기록되어 있다.
Protocol Address Age (min) Hardware Addr Type Interface
Internet 1.1.1.1 - 0000.0000.0001 ARPA FastEthernet0/0
Internet 1.1.1.2 7 0000.0000.0002 ARPA FastEthernet0/0
ARP 대상 결정 방법
- 목적지 IP 주소가 자신과 동일한 서브넷 소속이면 해당 목적지 주소를 가진 장비에게 직접 MAC 주소를 요청
동일한 서브넷일 시 1.1.1.1에서 1.1.1.2의 MAC주소를 요청하는 ARP 패킷을 전송한다.
- 목적지 IP 주소가 자신과 다른 서브넷 소속이면 게이트웨이에게 게이트웨이의 MAC 주소를 요청한다.
만약 1.1.1.2의 pc가 다른 서브넷인 8.8.8.8로 핑을 할 시 1.1.1.254의 게이트웨이 주소의 MAC 주소를 요청하는 ARP 패킷을 전송한다.
- 포록시(proxy) ARP
자신의 IP 주소가 아니라도 라우팅 가능한 IP 주소에 대한 ARP 요청을 받으면 라우터가 자신의 MAC 주소를 알려주는 것을 말한다.
그 이유는 인터넷에 연결된 대부분의 라우터에는 '모든 패킷을 인터넷으로 전송하라'는 의미의 '디폴트 루트(default route)'라는 것이 설정되어 있다. 따라서 라우터는 목적지 IP 주소가 무엇이건 라우팅시킬 수 있다고 생각한다.
만약, PC와 연결되는 라우터의 인터페이스에 no ip proxy-arp 명령어를 이용하면 프록시 ARP 기능을 사용하지 않게 하면 엉뚱한 게이트웨이 주소를 사용할 수 없다.
'CCNA' 카테고리의 다른 글
포트번호 (0) | 2013.03.07 |
---|---|
6장 트랜스패런트 브리징 (0) | 2013.02.28 |
5장. 스위치 기본설정 및 동작 확인. (0) | 2013.02.27 |
5장. 이더넷과 이더넷 스위치. (0) | 2013.02.25 |
4장 트레이스 루트 (0) | 2013.02.23 |