혼자만 보는 블로그를 시작하면서, 거의 가끔 자료 가져오고 정리했던 것을 이제는 스스로의 나태함을 좀 깨우기 위해서 하나씩 공부를 해가면서 정리를 하려고 합니다.
저의 그 첫 번째 이야기는 Asymmetric Routing에 관한 이야기입니다.
예전에도 이 부분에 대한 것을 보기는 했지만, 실제 관리하는 네트워크에서 이 부분 때문에 문제가 발생하면서, 그리고 스터디를 하면서 이 부분에 대해서 좀 알아보고 제가 공부하기 위해서 정리했던 내용입니다.
기본 구성은 위와 같다고 가정을 했습니다. 위에는 라우터와 스위치가 분리되어 있기는 했지만 참고했던 시스코 문서와 실제 환경에서는 L3 스위치였습니다. L3슈퍼바이저와 L2스위치였습니다.
Multi HSRP를 두 대 이상에서 운영을 하면서 각각 Active를 나눠서 가지고 있는 구조입니다. 이 구조에서 발생할 수 있는 Unicast Flooding에 문제 에 대한 이야기입니다.
A1 서버에서 B1 서버와의 통신을 하게 됩니다. 단순히 이해만 하기 위한 부분이라, 내용은 최대한 단순하게 했습니다.
Mac 주소는 두자리로 했고, 아이피도 마지막 3,4번째 옥텟만 적었습니다.
각각 ARP 테이블과 MAC 테이블은 아래와 같습니다.
라우터 1번 | 라우터 2번 |
스위치 1번 | 스위치 2번 |
서버 1번 | 서버 2번 |
통신을 하는 경로와 테이블 갱신 내용을 나름대로 정리해보았습니다. 각 단계별에서 새롭게 테이블에 추가된 내용은 굵게 표시했습니다.
좀 정리를 하면서 나름대로 단계를 세분화하려다가 보니, 어찌보면 불필요해 보이는 단계도 있을지 모르겠네요.
하지만 좀 더 나눠서 정리해 놓는게 나중에라도 볼 때 좋을 것 같습니다.
여기까지의 6단계가, A1에서 B1까지 패킷을 전송을 마친 단계입니다. 물론 통신을 했다기 보다는 A1에서 B1을 보내는거 까지만 성공을 한 단계이지요. Ping을 보냈다면, B1에 도달한 단계이지, 아직 응답을 받은 단계는 아니지요.
아래 단계가 이제 받은 패킷에 대한 응답을 하는 단계입니다.
패킷을 응답하는 과정도, 처음에 받는 과정과 별단 다를게 없습니다.
처음 과정의 반복과 같죠.
위에서부터 그러고 있지만, 패킷이 이동하면서 갱신되는 테이블 내용은 구성도 아래에 간략하게 적어놓았습니다.
여기까지 진행을 하게 되면, A1에서 B1으로의 통신이 완료되게 됩니다. 모든 Table이 다 완성이 되었습니다.
이 상태에서 서버 간의 통신은 이제 정상적으로 계속 이뤄지게 되지요. ARP 테이블과 MAC 테이블을 참조해서요.
여기서 5분동안 A1과 B1간의 통신이 전혀 없었다고 가정을 하겠습니다.
ARP Table은 유지되는 시간은 Default로 4시간이지만, Mac Table은 5분입니다.
즉 5분이 지나면 ARP Table은 유지가 되지만, Mac Table은 삭제가 되지요.
그리고 나서, 다시 A1에서 B1으로 통신을 하려고 하면 다음과 같은 현상이 발생합니다.
위에 설명에도 달아놓았지만, ARP Table과 Mac Address Table간의 유지시간(Aging Time)이 서로 상이하면서 발생할 수 있는 문제입니다. 저 상황에서 Unicast Flooding은 장비의 성능을 저하시켜서 해당 장비에 연결된 다른 서버들의 통신에도 문제를 주게 됩니다.
Cisco 문서에서 보면, 저러한 경우에 추천하는 방법은 Mac Table의 유지 시간을 ARP와 동일하게 하는 것으로 한다고 합니다. (4시간) 물론 둘 다 조정을 해서 서로 같게만 해줄 수도 있겠지요.
오늘은 얼마 전에 정리해둔 자료로 만들어서 대체로 쓸 내용이 많지는 않네요. (이미 설명을 달아두었기에..)
앞으로는 주기적으로 계속 스스로의 스킬업을 위해서 공부하고 하나씩 공간을 채워나가야겠습니다.
제가 정리하면서 이상한 부분은 지체없이 알려주시면 감사하겠습니다.
===============================================================================================================
이 내용과 관련해서 Mac-Address-Table의 Againg Time을 늘릴 경우에 대해서 발생할 수 있는 문제점이란 숙제를 받았습니다. 아래 내용은 이것과 관련된 정리내용입니다.
Setting too short an aging time can cause addresses to be prematurely removed from the table. Then when the switch receives a packet for an unknown destination, it floods the packet to all ports in the same VLAN as the receiving port. This unnecessary flooding can impact performance. Setting too long an aging time can cause the address table to be filled with unused addresses, which prevents new addresses from being learned.
→ Aging Time을 너무 짧게하면 불필요한 Flooding이 자주 발생을하게 되어 성능을 저하시키고
너무 길게하면 사용하지 않는 Address로 Table을 채우게되어 새로운 Addess를 학습하지 못한다고 한다.
물론 이경우에도 필요한 Address Table을 학습하지 못하게 된다면 마찬가지로 Flooding이 발생한다.
만, 이 장비에서 학습할 수 있는 Mac-Address 갯수가 적은 수량은 아니기 때문에 이는 큰 문제가 아닐 듯 싶다.
○ 저장 가능한 MAC-Addres Table
- 2960 시리즈 : 8,000 개 (http://www.cisco.com/en/US/prod/collateral/switches/ps5718/ps6406/product_data_sheet0900aecd80322c0c.html)