액세스 리스트란 접근 목록으로, 네트워크에서 접근을 허가할지 말지를 정해놓은 리스트로 주로 보안을 위해 사용되고 있다.
액세스 리스트는 라우터의 문지기 역할을 하는데 스탠더드 액세스 리스트(Standard Access list), 익스텐디드 액세스 리스트 (Extended Access list),두 가지가 있다.
- 다이나믹 액세스 리스트가 있지만 자주 사용하지 않아 스탠더드와 익스텐디드 위주로 학습한다.
-
Standard Access list
- *Source IP 를 이용한 접근 제어
*Source IP : 출발지 IP
-
Extended Access list
- *Source IP, Destination IP, Protocol, Port Number 등 모든 가능한 조건을 이용한 접근 제어
*Destination IP : 목적지 IP
-
Dynamic Access list
- user name & password 를 이용한 통제 가능
- 자주 사용되지는 않는다.
- Access list에 걸려 못들어가는 경우 라우터의 메세지 표시
(Host unreachable)
-
액세스 리스트는 윗줄부터 하나씩 차례로 수행한다.
-
액세스 리스트의 맨 마지막 linedp “permit any”를 넣지 않을 경우는 default로 , 어느 액세스 리스트와도 match되지 않은 나머지 모든 address는 deny 된다. (*deny: 부인하다)
즉, 액세스 리스트 맨 마지막 줄에는 항상 모든 것을 막는 deny all 이 들어있다고 생각하면 된다.
-
액세스 리스트의 새로운 line은 항상 맨 마지막으로 추가되므로 access-list line의 선택적 추가나 제거가 불가능하다.
즉, 액세스 리스트를 구성하다가 **실수로 수정을 하게 되면 아예 리스트의 내용들이 모두** **사라진다**. 그러므로 메모장같은 외부에서 작업을 먼저 진행하는게 좋다.
-
interface에 대한 액세스 리스트의 정의가 되어 있지 않은 경우 (즉, interface에 access-group명령이 들어 있지 않은 경우) 결과는 permit any가 된다. (허용 permit)
즉, 액세스 리스트가 정의되어 있지 않은 인터페이스는 액세스 리스트를 거치지 않고 바로 통과되므로, 당연히 permit any가 된다.
액세스 리스트 (Access List) : 네트워크에 접근을 허가할지 말지를 정해놓은 리스트
- 스탠더드 액세스 리스트, 익스텐디드 ... , 다이나믹 ... 가 있다.
액세스 리스트 규칙
- 명령어는 위에서부터 아래의 순서로 수행된다.
- 가장 마지막 줄에는 deny all 이 생략되어 있다.
- 명령 중간에 새로운 명령을 삽입하거나 이미 입력된 명령을 삭제할 수 없다.
- 액세스 리스트가 정의되어 있지 않은 인터페이스의 결과는 permit all 이다.
네트워크에서도 전체 대역폭 보다 그 네트워크를 지나는 데이터가 많이 몰리게 되면 바로 컨제션이 발생한다.
네트워크 상에서 Bursty(버스트) 트래픽이라는것이 있는데 이는 데이터가 갑자기 폭주하는 것을 말한다.
혼잡을 제어하는 방법
-
사용자와 어플리케이션에 대한 필터링을 한다.
- 모든 사용자와 모든 어필리케이션을 다 통과시키면 네트워크의 트래픽이 너무 증가한다.
- 그러므로 액세스 리스트를 사용해 불필요한 것을 아예 네트워크에 들어올 수 없게 한다.
-
브로드캐스트를 막는다.
- 브로드캐스트는 필요하지만 네트워크에 트래픽을 너무 많이 가중시키므로 불필요한 부분을 막아준다.
-
타이머를 맞춘다.
- 일정 시간마다 한 번씩 일어나는 일을 시간간격을 늘어는 등 네트워크의 트래픽을 줄인다.
-
라우팅 테이블의 관리를 한다.
- 라우팅 정보의 교환 역시 트래픽을 발생시킨다.
- 그러므로 이들 중 일부를 스태틱으로 조정해주면 트래픽이 줄어들게 된다.
-
트래픽의 우선 순위를 매긴다.
- 중요한 트래픽은 우선 처리해주고 느려도 되는 트래픽은 뒤로 빼는것이다.
스탠더드 액세스 리스트는 오직 출발지 주소만을 참고하며 인터페이스에 IN과 OUT으로 구성된다.
스탠더드 액세스 리스트의 흐름은 다음과 같다.
-
라우터의 인터페이스로 패킷이 들어온다.
-
인터페이스에 액세스 리스트가 설정되어 있지 않다면 바로 통과
2.1 인터페이스에 액세스 리스트가 설정되어 있다면 액세스 리스트에 들어있는 주소와 들어온 패킷의 출발지 주소를 비교
-
주소가 일치하면 액세스 리스트를 적용
-
액세스 리스트의 조건이 Deny일 경우 패킷의 흐름을 막은 후 ‘host unreachable’라는 ICMP 메세지를 보낸다.
4.1 액세스 리스트의 조건이 Permit일 경우 정해진 경로로 내보낸다.
스탠더드와의 차이점
-
스탠더드 액세스 리스트의 경우 출발지 주소만을 제어하는 반면, 익스텐디드 액세스 리스트의 경우 출발지 주소와 목적지 주소 모두를 제어할 수 있다.
-
스탠더드 액세스 리스트의 경우 TCP/IP만 제어하지만 익스텐디드 액세스 리스트는 ip,tcp,udp,icmp 등 특정 프로토콜을 지정하여 제어할 수 있다.
-
스텐더드 액세스 리스트는 1~99의 숫자를 액세스 리스트 번호로 사용하였는데 익스텐드 액세스 리스트의 경우 100~199까지의 숫자를 사용한다.
따라서 출발지 주소만을 확인하던 스탠더드와 달리 출발지 주소, 목적지 주소, 프로토콜, 프로토콜 옵션들을 전부 따진 후 액세스 리스트를 적용하게 된다.
HSRP(Hot Standby Routing Protocol)
시스코 장비에서만 사용되는 기술
(다른 회사 장비도 비슷한 기능이 있지만, 이 프로토콜과 호환은 불가능)
라우터 고장에 대비해, 라우터 한 대를 더 구성해서 메인 라우터가 고장나면 자동으로 두 번째 라우터가 메인 라우터의 역할을 대신하는 기능
- 가상의 라우터 IP를 PC의 디폴트 게이트웨이로 세팅
- 가상의 IP에 대해 Active / standby 라우터 구분
- Active 라우터 문제 발생시 stndby 라우터가 역할 대신 수행
-
- 가상의 IP로 인해 PC들은 라우터가 바뀌어도 디폴트게이트웨이 주소 수정 필요 없음.
트래킹 Tracking : Active 라우터가 다운된건 아니지만, 시리얼 회선에 문제가 생겨 통신이 불가능해진 경우, Active 라우터를 교체하는 기법
NAT이란
공인 IP 주소 갯수가 부족하기 때문에 1개의 공인 IP에 여러 개의 사설 IP 주소를 할당하는 것 이 사설 IP들은 인터넷 공간에서 라우팅되지 않기 때문에 내부망을 외부망으로부터 보호할 수 있기도 하다.
그러나 너무 많은 주소 변환이 일어나면 속도 저하가 커지는 단점이 있다.
- NAT을 사용하는 이유
-
내부의 네트워크에 비공인 IP 주소를 사용하고 외부 인터넷으로 나가는 경우에만 공인 IP 주소를 사용하고자 하는 경우
-
기존에 사용하던 ISP에서 새로운 ISP로 바꾸면서 내부 전체의 IP를 바꾸지 않고 기존의 IP 주소를 그대로 사용하고자 하는 경우
-
두 개의 인트라넷을 서로 합하려다 보니 두 네트워크의 IP가 서로 겹치는 경우
-
TCP 로드 분배가 필요한 경우
(외부에서는 하나의 주소로 보이는 호스트가 내부에는 여러개의 호스트에 매핑되도록 해서 서버의 로드를 분배 )
- Inside local 주소 : 내부 네트워크에서 사용하는 비공인 주소
- Inside Global 주소 : 외부로 나갈때 변환되어 나가는 주소
즉, NAT은 inside local 주소를 inside global 주소로 바꾸어 주는 과정
- Outside local 주소 : NAT은 내부 사설망을 통해 패킷을 전송할 때 외부 호스트를 나타내기 위해서 outside 로컬 주소를 사용한다.
- Outside Global 주소 : 이는 인터넷에 존재하는 호스트에 할당된 실제 IP이다.
inside vs outside
inside 는 기업 내부에 있는 호스트 주소를 언급하기 위한 용어이다. 반면 , outside는 기업의 외부 즉, 인터넷에 존재하는 호스트들이 사용하는 주소를 언급하기 위한 용어이다.
- Static NAT : 특정 사설 IP에 고정된 특정 공인 IP를 지정, 1:1 매핑
- Dynamic NAT : 1:1 매핑이긴 하나, 특정 IP가 아닌, 사용 가능한 임의의 IP들로 변환 됨
- PAT : Dynamic NAT의 한 종류라고 볼 수 있는데 공인 IP 주소 1개에 사설 IP 주소 여러개르 ㄹ매핑하는 것이다. 변환된 IP 주소로는 사내망 호스트들을 구분할 수 없기 때문에 포트번호를 부여하여 구분한다.