본문 바로가기
Network TroubleShooting/트러블 슈팅 썰

노후 장비 교체하다 만난 Proxy ARP

by Hell0 IT 2022. 4. 13.

노후 장비 교체에 다시 만난 Proxy ARP 때문에 힘들었던 썰.

 

○ 발단 그리고 현상

      노후 장비 교체해야 한다.

      백본, 방화벽, LB 모두 교체한다.

      인터넷 구간 교체로 약간 부담되지만 내부 구간에서 검증을 마친 장비들만 들어오니 잘할 수 있다.

      교체 완료 후 서비스 점검 중에 특이점이 하나 발견되었다.

      웹 사이트는 뜨는데 안에 연결된 특정 업무들이 안 뜬다.

      하나의 IP로 서비스를 하는데 어떤 건 되고 어떤 건 안 된다.

      구성도부터 뜯어보자.

구성도

      외부에서는 초록색 경로로 Pub 서버를 호출한다.

      안 된다는 특정 서비스는 빨간색 경로로 Pub 서버가 WAS 서버를 호출하는 구조이다.

○ Divide and Conquer

      Divide and Conquer 차례다.

      일단 Pub 서버 호출은 되고 WAS 서버에 올라간 서비스 전체가 안 되는 건 아니다.

      작업 전 전체 서버의 ifconfig를 점검하였고 특이사항이 없었다.

      이 상황에서 Proxy ARP라고 단정 짓기는 어려웠다.

      백본, 방화벽, LB 모두 바뀐 상태라 뭐든 문제가 될 수 있는 상황이었다.      

      Pub 서버 담당자는 외부에서 호출을 받았고 빨간색 경로로 WAS 서버를 호출했다고 주장한다.

      그리고 WAS 서버 담당자는 Access Log가 안 찍힌다고 한다.

 

      시간을 더 끌 수 없어 원복을 한다.

 

 NW에서 특이점

      최대한 이전 환경을 맞췄는데 소소하게 바뀐 게 있다.

      주요정보통신기반시설 기술적 취약점 분석ㆍ평가 방법 상세가이드를 적용시킨 것이다.

      그렇다. 이번에도 Proxy ARP를 껐다.

      그런데 이번에는 방화벽에서 껐다. 왜냐하면 방화벽에서 GW를 가지고 있었으니까...

 

 

 재현해보자

      LAB 구성을 하고 테스트에 돌입한다.

      초반엔 재현이 되지 않았다.

      한참을 고민 후에 서버 복제 후 테스트를 하니 현상이 발생했다.

 

 서버에서의 특이점 (1/2)

      ifconfig는 분명 문제없었다.

      라우팅 테이블을 확인하였다.

Pub 서버의 라우팅 테이블

      20.20.20.x는 26bit로 나누어져 있다.

      설계상 20.20.20.x는 NIC2로 통신하라는 설정으로 보인다.

      이상태에서 통신을 해보면 분명히 안 된다.

      혹시나 싶어 Pub 서버에서 vlan c gw(20.20.20.193/26)로 통신을 해봤는데 안 된다.

   

 

 패킷에서 특이점

      LAB 재현 시 패킷을 떠보니...

      Pub에서 vlan c gw 호출 시 broadcast를 보낸다.

      아니 왜???

      이상태에서 방화벽 int vlan에 proxy arp를 켜면 통신이 된다.

 

 서버에서의 특이점 (2/2)

      다시 보니 오류 같다.

무엇이 문제인지 알겠는가?

      한참을 보다 보니 이해가 갔다.      20.20.20.x는 26bit인데 20.20.20.0/24를 모두 통신하려면 Gateway가 있어야 한다.      기존 라우팅을 지우고 route add -net 20.20.20.0 netamsk 255.255.255.0 gw 20.20.20.129라고 하니      아래처럼 라우팅이 변경되었고 통신이 잘 되었다.

수정한 라우팅

      참고로 잘 G 플래그가 없는 라우팅은 route add -net 20.20.20.0 netmask 255.255.255.0 dev NIC2라고 했단다.

 

 아니 그럼 지금까지 어떻게 통신한건데?

      아이러니컬하게도 Proxy ARP on/off 모두 동일한 경로를 탄다.

      NIC2에서 L2 통신하려고 arp를 보냈을 것이고 방화벽은 Proxy ARP 기능을 통해 자신을 통해 통신하라고 응답한다.

      하여, Pub 서버에서 20.20.20.240을 찾아갈 땐 방화벽 vlan b의 mac을 통해서 통신하게 된다.

      마치 gw 제대로 잡아서 통신하듯이... 이게 Proxy ARP의 기능이니까.

       즉 빨간 라인을 L2 통신하고 있었는데 Proxy ARP를 끄고 Pub 서버 라우팅 테이블을 수정함으로써

           빨간 라인을 L3 통신하게 되는 것이다.

 

 

 누구의 문제인가?

      OS 측 : 서버 이렇게 운영한 지 오래됐음.

      설계 측 : 물리 서버에 NIC2개를 넣는 건 정책 위반이었지만 이때는 그럴 수밖에 없었고

                 20은 20 끼리 10은 10 끼리 통신하면 되는 거였다.

      NW 측 : ????

 

○ 결론

      Proxy ARP를 끌 때는 고통받는다.

 

댓글