본문 바로가기

Nerwork_Security

DAI (Dynamic ARP Inspection)

Overview of Dynamic ARP Inspection

DAI 네트워크 내에서 ARP패킷의 정당성을 확인하는 보안 솔루션이다.

Untrust 설정된 인터페이스에서 통신되는 패킷을 가로채어 확인하여 옳지 않은 MAC-IP 쌍의 패킷은 로그를 남기고 버린다.

 기술은 MITM(Man In The Middle)공격으로부터 네트워크를 보호한다.

 

DAI 정확한 MAC주소와 IP주소의 정당성을 확인하기 위해 미리 데이터베이스를 만들어놓아야 하고이는 DHCP Snooping 의해 만들어져서 관리된다.

추가적으로 호스트를 제어하기 위해 정적인 MAC-IP 구성을   있다정적으로 ARP ACL 구성하면 DHCP Snooping 데이터베이스 내의 정보보다 우선한다예를 들어 ARP ACL에서 거부된 패킷은 DHCP Snooping 데이터베이스에 존재하더라도 거부된다.


Trust state and Untrust state

Trust 상태는 신용이 가는 인터페이스에 설정되며 설정이  인터페이스로 패킷이 도착하면 DAI 프로세스를 bypass한다. Untrust 상태인 인터페이스로 패킷이 전달되면 DAI 프로세스를 구동한다.

전형적으로 호스트와 연결된 포트는 Untrust 구성되고 스위치간 연결 포트는 Trust 구성된다.

 

예를 들어 스위치는 DAI 돌지만 다른 스위치는 돌지 않을  스위치는 Untrust 구성해야 한다. DAI 돌지 않는 스위치로부터의 패킷을 확인하기 위해 DAI 돌고 있는 스위치는 ARP ACL 사용한다만약 이것이 가능하지 않다면 스위치는 독립적으로 L3 DAI 함께 운영한다.

 

Logging of Dropped Packets

스위치가 패킷을 버릴   정보는 log buffer 남겨지고 system 메시지를 발생하고메시지를 발생한 수에 스위치는 log buffer 깨끗이 한다.

log 정보는 패킷을 받은 VLAN, Port number, 발생지와 목적지 주소발생지와 목적지 MAC주소와 같은 흐름정보를 포함한다.

 

Rate Limiting of ARP Packets

DAI CPU 사용해 패킷을 점검한다. DoS같은 공격을 막기위해 인터페이스로 들어오는 ARP 패킷을 제한하고 있다.

기본 값으로 Untrusted port 15pps 처리하며, Trusted port 제한하지 않는다.

들어오는 ARP 패킷 과잉시 포트는 errdisable 상태에 위치한다 포트는 관리자가 직접 개입하여 복구를 시켜주거나 errdisable recovery 명령어를 통해 일정 시간 뒤에 자동적으로 복구 되도록 설정할  있다.

 



Configuring Dynamic ARP Inspection


Step 1

 Switch# show cdp neighbors

 Switch 연결 상황 확인

 

Step 2

 Switch# configure terminal

 글로벌 구성모드로 들어 갑니다.

 

Step 3

 Switch(config)#[no] ip arp inspection vlan vlan-range

 Dynamic ARP inspection 기능을 어느 특정 VLAN에 활성화 합니다.

 기본적으로 이 기능은 모든 VLAN에서 비 활성화 되어 있습니다.

 

vlan-range는 VLAN ID에 의해 확인되며 연속된 VLAN 할당 시 "-"에 의해 연결 되며 연속되지 VLAN은 ","에 의해 할당합니다. VLAN 길이는 1에서 4094입니다.

 

Step 4

 Switch(config)# interface interface-id

 다른 Switch와 연결된 인터페이스 구성 모드로 들어 갑니다.

 

Step 5

 Swtich(config-if)# ip arp inspection trust

 Switch간 연결 인터페이스는 Trust로 구성합니다.

 기본적으로 모든 인터페이스는 untrust 상태입니다.

 

 Switch는 Trust된 인터페이스로 부터의 ARP packet의 요구 및 응답을 점검하지 않습니다. 

 단지 해당 패킷을 넘길 뿐입니다.

 untrust 인터페이스로 들어오는 ARP packet은 스위치가 가로채어 IP-to-MAC 주소 묶음을 확인하고 적정한 목적지로 보

 냅니다.

 해당 묶음 값이 충분하지 않을 경우 해당 packet을 버리고 log를 남깁니다.

 이 로그는 ip arp inspection vlan logging 명령을 따르면 해당 설명은 "configuring the Log Buffer"에서 설명합니다.

 

Step 6

 Switch# show ip arp inspection interfaces

 Switch# show ip arp inspection vlan vlan-range

 Dynamic ARP Inspection 구성을 확인합니다.

 

Step 7

 Switch# show ip dhcp snooping binding

 DHCP 묶음을 확인합니다.

 

Step 8

 Switch# show ip arp inspection statistics vlan vlan-range

 Dynamic ARP Inspection 상태를 점검합니다.

 




DHCP Snooping 기능을 사용할 수 없는 경우에는 ARP ACL을 설정하여 방어할 수 있다.


Configuring ARP ACLs for Non-DHCP Environments


Step 1

 Switch# configure terminal

 글로벌 구성 모드로 들어 갑니다.

 

Step 2

 Switch# arp access-list acl-name

 ARP ACL을 정의 합니다. 그리고 ARP access-list 구성 모드로 들어 갑니다.

 Note: ARP ACL의 마지막 줄엔 deny ip any mac any 명령이 암묵적으로 적용됩니다.

 

Step 3

 Switch(config-arp-nac)# permit ip host sender-ip mac host sender-mac [log]

 허용할 ARP packet을 상세히 합니다.

 - sender-ip 는 host 2의 IP 주소입니다.

 - sender-mac 또한 host 2의 MAC 주소입니다.

 

Step 4

 Switch(config)# exit

 글로벌 구성 모드로 돌아 갑니다.

 

Step 5

 Switch(config)# ip arp inspection filter arp-acl-name vlan vlan-range [static]

 ARP ACL을 VLAN에 허용합니다. 기본적으로 모든 ARP ACL은 어떠한 VLAN에도 할당되지 않습니다.

 - arp-acl-name는 step 2에서 만든 ACL 이름을 사용합니다.

 - vlan-range는 host가 할당될 VLAN을 상세히 합니다. 여기서도 "-", ","을 사용하여 다수의 VLAN을 할당 할 수 있습니다.

 ARP packet은 IP-to-MAC 주소를 포함하며 ACL과 대응 됩니다.

 패킷들은 오직 ACL에 의해 정의되고 허용된 패킷만을 허용합니다.

 

Step 6

 Switch(config)# interface interface-id

 Switch B와 연결된 인터페이스를 구성합니다.

 

Step 7

 Switch(config-if) no ip arp inspection trust <-- 이 명령은 상위에서 구성한 Trust 상태를 unTrust로 돌리기 위한 명령입니다.

 기본적으로 모든 포트는 unTrust 상태입니다.

 unTrust 상태 인터페이스는 ARP 요구 및 응답을 가로채어 IP-to-MAC이 적절한지를 확인합니다. 만약 적절하다면 걍 넘길 것이고 부적절하다면 버린 후 설정에 의해 로그를 남길 것입니다. 로그 이야기는 "Configuring the Log Buffer"에서 상세히 하겠습니다.

 

Step 8

 Switch# show arp access-list [acl-name]

 Switch# show ip arp inspection vlan vlan-range

 Switch# show ip arp inspection interfaces

 Dynamic ARP inspection 구성을 확인합니다.