2011.12.23일자 Netmanias Blog을 통해 DHCP Proxy Agent에 대해서 소개 드리면서 이 DHCP Proxy Agent를 이용하면 "보안"이 좋다고 말씀드린바 있습니다. 오늘은 그 "보안" 기능이 뭔지 설명드리겠습니다.
아래 그림과 같이 유선망에 DHCP Proxy Agent가 위치하게 되면, 모든 DHCP 메시지(IP address Allocation, IP address Renewal, IP address Release)는 이 DHCP Proxy Agent를 통과(DHCP Proxy Agent가 수신)하게 되고, 이를 통해 DHCP Proxy Agent는 DHCP를 통해 IP 주소를 할당받지 않은 가입자(고정 IP 가입자)의 트래픽을 차단할 수 있습니다. 그 차단 방법은 크게 두가지인데요...
첫째, 통상적으로 단말의 Default Gateway 라우터(단말에서 보이는 첫번째 라우터)에 이 DHCP Proxy Agent 기능을 설정하게 되고 단말은 Internet으로 트래픽을 내보내기 위해서 이 Default Gateway 라우터(DHCP Proxy Agent)로 ARP Request를 보내어 Default Gateway 라우터의 MAC 주소를 얻어 오게 됩니다.
이때, DHCP Proxy Agent는 DHCP 절차를 거쳐 정상적으로 할당된 IP 주소에 대해서만 ARP 응답(ARP Reply)을 하고, 그렇지 않은 IP 주소(고정 IP 단말)의 ARP Request에 대해서는 응답을 하지 않게 하는 것입니다. 아래 그림이 이를 표현한 것입니다. 일반적인 라우터들이 다 지원하는 기능이죠.
둘째, 근데 이 경우, 고정 IP 가입자(나쁜 가입자)가 Default Gateway 라우터의 MAC 주소를 알기만 하면 이 "보안"은 뚤리게 되버립니다. 그래서 좀 더 "강력한 보안"을 위해서는 ARP 패킷 뿐만 아니라 모든 사용자 데이터 트래픽의 IP 주소를 검사하여 DHCP를 통한 정상 IP 주소인 패킷이면 통과(Permit)하고, 그렇지 않은 IP 주소이면 폐기(Deny)하는 기능이 필요한데, 이는 일반적인 장비에서는 그 구현이 힘들고 "가입자를 관리할 수 있는 라우터"인 BRAS(Broadband Remote Access Server)가 이러한 일을 해 줍니다.
국내 KT에 도입된 대표적인 장비가 Juniper E320, Redback(Ericsson이 인수)의 SE800입니다. 참고로 BRAS는 Data Plane(유저 데이터가 지나다니는 레이어)에서 가입자를 구별하여 패킷을 처리할 수 있기 때문에 "가입자별 서로 다른 QoS 정책(대역폭 제어)"도 가능합니다. 그래서.... 일반 라우터보다 많이 많이 비쌉니다.
오늘 설명드리는 기능은 1번이구요. 2번 BRAS에 대해서는 다음에 소개해 드리겠습니다. 앞서 설명드린 1번의 기능을 좀 더 자세히 도식화한 그림이 아래에 있습니다.
PC MAC=m1을 가진 단말은 정상적으로 DHCP 절차를 통해 IP 주소 1.1.1.10을 얻어 왔습니다. 이 때 DHCP Proxy Agent는 "IP-to-MAC Binding Table"이라는 것을 Control Plane(제어평면, 유저 트래픽이 지나다니지 않고, 라우터를 제어하는 레이어, 라우팅 프로토콜/ARP/DHCP Proxy등과 같은 기능이 올라가 있는 평면임)에 생성하게 됩니다. 이 Table에는 DHCP 절차를 통해 IP를 받아온 단말의 MAC 주소, IP 주소, 단말이 연결되어 있는 DHCP Proxy Agent의 Interface 번호(Port 번호), DHCP 임대기간(Lease Time), 그리고 Expired Time이 들어가게 됩니다. Expired Time은 Table에 본 엔트리가 생성될 때 Lease Time 값과 동일하게 설정되고, 이후 매초 1씩 감소됩니다. 그러다가 단말이 IP renewal을 하지 않는다면 Expired Time=0이 되고, 이때 본 엔트리는 Table에서 삭제됩니다.
IP 주소를 할당(임대)받은 PC MAC=m1 가입자가 인터넷 통신을 위해 Default Gateway 라우터(DHCP Proxy Agent)로 ARP Request 메시지를 보내면, DHCP Proxy Agent는 그 메시지의 MAC과 IP 주소가 Table에 등록된 값인지 검사하여, 만약 엔트리가 있으면 ARP Reply를 단말로 보내어 자신의 MAC 주소를 알려줍니다.
하지만 PC MAC=m2 가입자가 고정 IP 주소 1.1.1.20을 설정하고 Default Gateway 라우터(DHCP Proxy Agent)로 ARP Request 메시지를 보내는 경우, 해당 MAC(m2)과 IP 주소(1.1.1.20)가 Table에 존재하지 않기 때문에 ARP Reply를 단말로 보내지 않고, 따라서 이 가입자는 인터넷을 사용할 수 없습니다.
Cisco 나 PIOLINK 스위치에 들어있는 Dhcp Snooping + ARP Inspection 을 혼합한 기능과 동일하네요
DHCP Snooping 테이블에 기록된 MAC 주소가 없다면 Host의 ARP 를 차단하여 통신을 차단하는 기능과 비슷해 보여집니다.
dhcp snooping 테이블은 Host가 dhcp 를 이용하여 IP를 할당받게 되면 스위치의 DHCP Snooping 테이블에 Mac과 IP정보를 등록하게 되며 static 하게 사용하게 되면 기록하지 않는 기능입니다.
여기서 ARP Inspection 기능을 추가적으로사용하면 DHCP snooping 테이블에 기록된 사용자들만 ARP을 검사하여 정상적으로 통신이 가능하며, static 하게 IP를 설정한 사용자들은 통신이 되지 않습니다.
만약 서버등과 같이 dhcp를 사용하면 안되는 장비들은 arp inspection 차단리스트 로그를 참고하여 수동으로
ip arp inspection aa:aa:aa:bb:bb:bb 192.168.0.10 vlan 100
처럼 설정하게 되면 수동으로 설정하는 서버도 통신이 가능합니다.