[Network] 액세스 리스트, HSRP, NAT 개념 정리

Update:     Updated:

카테고리:

태그:

9. 라우터, 그 속으로 전진!

1. 네트워크 접근 제어 액세스 리스트(Access List)

네트워크에 액세스, 즉 접근을 하게 해줄까, 말까를 미리 정해놓은 리스트이다.

즉 어떤 녀석에게는 어디만 보여주고, 또 어떤 녀석에게는 어디만 쓰게 해야갰다 하고 정해 놓은 표를 의미한다.

액세스 리스트는 주로 보안을 위해서 사용되고 있고, 라우터에 세팅이 된다. 그러므로 당연히 라우터가 볼 수 있는 한계, 즉 네트워크 계층까지만 관리가 된다.

하지만 요즘은 라우터도 네트워크 계층만 보는 것이 아니라 애플리케이션 계층까지 관리하는 여러 가징 기능이 나와있기 때문에 꼭 네트워크 계층까지만이라고 단정할 수는 없다.

스탠더드 액세스 리스트

스탠더드 액세스 리스트의 가장 큰 특징은 출입 통제를 할 때 출발지 주소만 참고한다는 거다.

즉, 스탠더드 액세스 리스트는 출발지 주소만 가지고 제어를 한다. 이것이 어디서 왔는가를 본 다음, 통과 여부를 결정한다.

익스텐디드 액세스 리스트

익스텐디드 액세스 리스트의 가장 큰 특징은 출발지도 보고. 목적지도 보고, 또 프로토콜도 보고, 사용 포트 번호도 보고 온갖 것을 다 본 다음에 통과 여부를 결정한다.

📌내용 정리📌

  • 라우터에서 네트워크 보안을 위해 사용하는 것이 바로 엑세스 리스트이다.
  • 스탠다드 엑세스 리스트는 무조건 출발지 주소만 보고 결정을 한다.
  • 익스텐디드 엑세스 리스트는 있는 조건은 다 따진다.

2. 액세스 리스트에서 이것만 알면 다 안다!

액세스 리스트에서 가장 중요한, 잊어버리면 안 되는 4가지 규칙을 하나씩 살펴보자.

첫 번째, 엑세스 리스트는 윗줄붙터 하나씩 수행된다.

만약 4개의 액세스 리스트가 있다면 맨 윗줄이 수행되고 그 다음 줄로 내려온다.

즉, 윗줄부터 아래로 차례차례

두 번째, 액세스 리스트의 맨 마지막 line에 ‘permit any’를 넣지 않을 경우는 default로, 어느 액세스 리스트와도 match되지 않은 나머지 모든 address는 deny된다.

액세스 리스트는 맨 마지막 줄에는 항상 모든 것을 막아버리는 deny all이 들어있다고 생각하고 있다.

그러니까 어떤 액세스 리스트의 항목에도 해당하지 않는 주소가 있다면, 그 주소는 맨 마지막 줄가지 내려온 후 denay all에 걸려서 모두 막혀버린다.

액세스 리스트의 새로운 line은 항상 맨 마지막으로 추가되므로 access-list line의 선택적 추가(selective add)나 제거(remove)가 불가능하다.

interface에 대한 액세스 리스트가 정의(define)되어 있지 않은 경우(즉 interface accessgroup 명령이 들어있지 않은 경우) 결과는 permit any가 된다.

액세스 리스트가 정의되어 있지 않은 인터페이스는 액세스 리스트를 거치지 않고 바로 통과되기 때문에 바로 permit any가 된다.

2번은 액세스 리스트는 정의되었지만, 자기가 속할 액세스 리스트가 없는 것이고, 4번은 아예 자기 네트워크에는 액세스 리스트도 정의되어 있지 않은 경우이기 때문이다.

📌내용 정리📌

  • 액세스 리스트를 움직이는 4가지 규칙이 있다.
  • 윗줄부터 아래로 차례대로 수행된다.
  • 액세스 리스트의 맨 마지막에는 deny all이 생략되어 있다는 것
  • 액세스 리스트에서 중간에 있는 액세스 리스트를 지우려고 하면 모든 액세스 리스트가 다 지워진다는 것
  • 인터페이스 액세스 리스트 명령이 없으면 permit all이라는 것이다.

3. 스탠더드 액세스 리스트의 시작

맨 처음 라우터의 인터페이스로 패킷이 들어오면 라우터는 이 인터페이스에 액세스 리스트가 설정되어 있는지를 먼저 확인한다.

만약 이 인터페이스에 액세스 리스트가 설정되어 있지 않다면 바로 통과이다. 즉 패킷을 정해진 경로로 내보내게 된다.

그러나 이 인터페이스에 액세스 리스트가 걸려있다면 그 액세스 리스트에 있는 주소와 들어온 패킷의 출발지 주소를 비교해 보게 된다.

만약 액세스 리스트에 정의된 주소와 패킷의 출발지 주소가 일치하면 액세스 리스트를 수행하게 된다.

이 때 액세스 리스트의 조건이 deny이면 패킷의 흐름을 막은 후 ‘host unreachable’이라는 ICMP 메시지를 뿌려주고, 액세스 리스트의 조건이 Permit이라면 패킷을 정해진 경로로 내보낸다.

4. 스탠더드 액세스 리스트의 예제

5. 텔넷포트(VTY Port)에서의 액세서 리스트

라우터에 텔넷을 한다는 것은 라우터의 Virtual Terminal 포트로 접속을 한다는 것을 의미한다.

6. 익스텐디드 액세스 리스트(Extended Access List)

스탠더드 액세스 리스트와 익스텐디드 액세스 리스의 차이

- 스탠더드 액세스 리스트는 출발지 주소만 제어하는 반면, 익스텐디드 액세스 리스트는 출발지 주소와 목적지 주소 모두를 제어할 수 있다.  
- 스탠더드 액세스 리스트는 전체 TCP/IP에 대해 제어만 하는 반면, 익스텐디드 엑세스 리스트는 ip, tcp, udp, icmp 등 특정 프로토콜을 지정해서 제어할 수 있다.  
- 스탠더드 액세스 리스트는 1에서 99까지의 숫자를 Access List 번호로 사용하고, 익스텐디드 액세스 리스트는 100에서 199까지의 숫자를 Access List 번호로 사용한다.  

맨 처음 액세스 리스트가 있는 것을 확인하고, 없으면 패킷을 그냥 통과시키는 부분은 스탠더드 액세스 리스트와 동일하다.

다만, 익스텐디드 액세스 리스트는 출발지 주소뿐만 아니라 목적지 주소, 프로토콜 등 관리하는 항목이 훨씬 많다는 것이 다르다.

따라서 익스텐디드 액세스 리스트는 스탠더드 엑세스 리스트에 비해서 훨씬 정교환 액세스의 제어가 가능하다.

익스텐디드 엑세스 리스트는 다음 조건을 만족해야 한다.

  • 150.100.1.0 255.255.255.0 네트워크에 있는 호스트들에 대해서 150.100.2.0 255.255.255.0에 있는 호스트들이 FTP와 TELNET을 못하게 제한한다.
  • 나머지 모든 곳에서 150.100.1.0 네트워크로 들어오는 트래픽은 허가하기로 한다.

7. 라우터의 장애 대비 HSRP

HSRP(Hot Standby Routing Protocol)란 프로토콜은 시스코 장비에서만 사용되는 기능이다.

HSRP는 라우터가 고장나는 것에 대비해서 라우터 한 대를 더 구성에 포함한 후 메인 라우터가 고장나면 자동으로 두 번째 라우터가 메인 라우터의 역할을 대신하는 기능을 말한다.

PC에서 인터넷을 사용하기 위해서는 디폴트 게이트웨이(Default Gateway)를 세팅한다. 디폴트 게이트웨이는 자신의 네트워크에서 목적지를 찾다가 못 찾는 경우 가장 먼저 길을 물어보러 달려가는 라우터가 된다.

PC들의 세팅에 디폴트 게이트웨이를 라우터 A라고 세팅했다고 가정하자. 그래서 라우터 A가 제대로 동작할 때는 PC들은 아무 문제 없이 인터넷을 사용했다.

그런데 라우터 A가 그만 다운되고 말았다. 지금 이 상황에서도 라우터 B는 정상적으로 동작하지만, 아래에 있는 PC들의 디폴트 게이트웨이는 라우터 A로 세팅되어 있기 때문에 아무도 라우터 B를 통해서 인터넷을 가려고 하지는 않게 된다.

이럴 때, 일일히 PC 들의 디폴트 게이트웨이를 B라우터로 변경해주면 되지만 규모가 클 경우 엄청난 일이 된다.

이를 해결하기 위한 기술이 HSRP이다.

HSRP는 실제 존재하지 않는 가상의 라우터 IP 주소를 디폴트 게이트웨이로 세팅하게 한 다음, 그 주소에 대해서 Active 라우터와 Standby 라우터의 역할을 두어 처음에는 액티브 라우터가 그 주소의 역할을 대신 수행한다.

그러다가 액티브 라우터에 문제가 발생하면 자동으로 스탠바이 라우터가 액티브의 역할을 수행할 수 있게 하는 기술이기 때문에, PC들은 자신의 디폴트 게이트웨이를 고치지 않고도 항상 인터넷을 접속할 수 있게 된다.

라우터가 다운 되지는 않았지만 라우터로부터 시리얼 회선에 문제가 생길 수도 있다. 이처럼 라우터의 시리얼에 문제가 생겼을 때도 액티브 라우터를 교체해야 하는데, 이 기법을 트래킹이라고 한다.

8. IP 주소의 변환 NAT(Network Address Translation)

한쪽 네트워크의 IP 주소가 다른 네트워크로 넘어갈 때 변환이 되어서 넘어가는 것을 말한다. 다른 몇가지 이유 때문에 자주 사용된다.

- 내부의 네트워크에는 비공인 IP 주소를 사용하고 외부 인터넷으로 나가는 경우에만 공인 IP 주소를 사용하고자 하는 경우  
- 기존에 사용하던 ISP에서 새로운 ISP로 바꾸면서 내부 전체의 IP를 바꾸지 않고 기존의 IP 주소를 그대로 사용하고자 하는 경우  
- 2개의 인트라넷을 서로 합하려다 보니 두 네트워크의 IP가 서로 겹치는 경우  
- TCP 로드 분배가 필요한 경우  

위의 여러 가지 이유 중에서 NAT를 사용하는 가장 주된 이유는 첫 번째가 아닐까 싶다.

즉 내부의 모든 PC나 호스트에 부여할 공인 주소는 한정되어 있고 모든 인터넷을 사용을 하고자 하는 경우에는, 내부에서 비공인 주소를 사용하다가 외부로 나갈 때만 공인 주소를 부여받아 나가는 방식을 이용하면, 다수의 비공인 IP 주소 사용자가 인터넷을 사용할 수 있기 때문이다.

두 번째로 NAT를 사용하는 이유는 내부의 주소를 자주 바꾸고 싶지 않을 경우이다.

세 번째의 경우는 서로 비공인 주소를 사용하던 두 네트워크를 연결하는 경우 사용하던 IP 주소 영역이 겹칠 수 있게 되는데, 이때 NAT를 사용하면 두 네트워크의 주소를 일일이 변경하지 않고서도 이 문제를 해결할 수 있다.

네 번째 TCP 로드 분배는 밖에서는 하나의 주소로 보이는 호스트가 내부에서는 여러 개의 호스트에 매핑되도록 하여 서버의 로드를 분배하는 기술이다.

NAT는 Inside Local을 Inside Global 주소로 바꾸어주는 과정이다.


🐢 현재 공부하고 있는 후니의 쉽게 쓴 CISCO 네트워킹 - 진강훙 저자 의 책을 학습하며 기록 및 정리를 하기위한 내용들입니다. 🐢

감사합니다.😊

Network 카테고리 내 다른 글 보러가기

댓글남기기