1 day ago
이번 장은 CCNA 실습 예제 4편이다.
주제는 ACL 기본 실습이다.
앞 장에서 routing table과 OSPF를 확인했다면, 이제는 “어떤 트래픽을 통과시키고 어떤 트래픽을 막을지”를 다뤄야 한다.
ACL은 access control list의 약자다.
패킷의 조건을 보고 permit 또는 deny를 적용한다.
CCNA에서는 ACL 자체의 문법보다도, 어떤 ACL을 어디에 두어야 하는지를 자주 묻는다.
이번 장의 목표는 다음과 같다.
표준 ACL과 확장 ACL의 차이를 이해한다.
표준 ACL은 목적지에 가깝게 두는 이유를 이해한다.
확장 ACL은 출발지에 가깝게 두는 이유를 이해한다.
실습 환경에서 ACL이 실제로 트래픽을 막는지 확인한다.
- ACL을 먼저 이해해야 하는 이유
ACL은 단순히 “차단 명령”이 아니다.
패킷이 어떤 조건으로 매치되는지, implicit deny가 무엇인지, 그리고 어떤 인터페이스 방향에 적용했는지를 함께 봐야 한다.
실무나 시험에서 가장 흔한 실수는 다음 세 가지다.
원하는 방향이 아니라 반대 방향에 ACL을 적용하는 실수.
표준 ACL을 너무 출발지 쪽에 두어서 필요 없는 트래픽까지 막는 실수.
확장 ACL에서 permit 문을 덜 써서 마지막에 implicit deny에 걸리는 실수.
이번 실습은 이 세 가지를 한 번에 정리하는 용도다.
- 실습 토폴로지
이번 실습에는 라우터 1대와 LAN 3개를 사용한다.
Admin LAN, Guest LAN, Server LAN을 분리한다.
Admin LAN은 관리용 PC가 있는 구간이다.
Guest LAN은 접근을 제한할 구간이다.
Server LAN은 HTTP 서버가 있는 구간이다.
Router는 세 LAN 사이의 traffic을 중계한다.
Admin PC는 서버에 접근할 수 있어야 한다.
Guest PC는 서버 전체를 못 보게 하거나, 최소한 HTTP만 막는 동작을 비교해 볼 것이다.
- 주소 계획
주소 계획은 다음과 같다.
Admin LAN은 192.168.10.0/24다.
Admin gateway는 192.168.10.1이다.
Guest LAN은 192.168.20.0/24다.
Guest gateway는 192.168.20.1이다.
Server LAN은 192.168.30.0/24다.
Server gateway는 192.168.30.1이다.
Admin PC는 192.168.10.10을 사용한다.
Guest PC는 192.168.20.10을 사용한다.
Server는 192.168.30.10을 사용한다.
- 기본 연결 확인
ACL을 적용하기 전에 먼저 모든 구간이 정상인지 확인한다.
Admin PC에서 Server로 ping을 보낸다.
Guest PC에서 Server로 ping을 보낸다.
Server의 web service가 켜져 있다면 브라우저로 접속도 확인한다.
이 단계에서는 아직 모두 성공해야 한다.
ACL은 기존 문제를 숨기지 않는다.
기본 연결이 안 되면 먼저 interface 상태, IP 주소, gateway, routing부터 봐야 한다.
- 표준 ACL 실습
표준 ACL은 source IP 기준으로 판단한다.
즉, “누가 보냈는가”를 본다.
그래서 보통 목적지에 가깝게 배치한다.
이번 실습에서는 Guest LAN 전체가 Server LAN으로 가는 것을 막아 보겠다.
이때 표준 ACL은 Server 쪽 interface outbound에 둔다.
Server LAN으로 나가는 쪽에서 Guest source만 걸러내면, 다른 구간에 불필요한 영향을 덜 준다.
표준 ACL 설정 예시는 다음과 같다.
``` enable configure terminal
access-list 10 deny 192.168.20.0 0.0.0.255 access-list 10 permit any
interface gigabitEthernet0/2 ip access-group 10 out ```
여기서 0.0.0.255는 24비트 마스크의 wildcard mask다.
이 ACL은 Guest LAN에서 나온 트래픽을 Server LAN 방향으로 보낼 때 차단한다.
Get David Lee’s stories in your inbox
Join Medium for free to get updates from this writer.
Subscribe
Subscribe
Remember me for faster sign in
Admin LAN 트래픽은 계속 허용된다.
- 표준 ACL 검증
표준 ACL을 적용한 뒤 다음을 확인한다.
Guest PC에서 Server로 ping을 보낸다.
이 ping은 실패해야 한다.
Admin PC에서 Server로 ping을 보낸다.
이 ping은 성공해야 한다.
서버가 HTTP 서비스를 제공한다면 Guest PC에서 접속이 안 되는지도 확인한다.
다음 명령으로 ACL 통계를 본다.
show access-lists
매치된 packet 수가 올라가면 ACL이 실제로 동작한 것이다.
인터페이스에 적용 여부는 다음으로 확인한다.
show ip interface gigabitEthernet0/2
출력에서 inbound, outbound ACL이 어떤 것인지 확인한다.
- 확장 ACL 실습
확장 ACL은 source와 destination, protocol, port까지 볼 수 있다.
즉, “누가 어디로 어떤 프로토콜로 가는가”를 더 세밀하게 판단한다.
확장 ACL은 보통 출발지에 가깝게 배치한다.
왜냐하면 불필요한 트래픽이 네트워크를 더 멀리 이동하기 전에 초기에 걸러내는 것이 효율적이기 때문이다.
이번 실습에서는 Guest LAN이 Server의 HTTP 서비스만 못 보게 해 보겠다.
Ping은 허용하고, HTTP만 차단하는 비교를 만든다.
확장 ACL 설정 예시는 다음과 같다.
``` enable configure terminal
ip access-list extended GUEST_WEB_BLOCK deny tcp 192.168.20.0 0.0.0.255 host 192.168.30.10 eq 80 permit icmp 192.168.20.0 0.0.0.255 host 192.168.30.10 echo permit ip any any
interface gigabitEthernet0/1 ip access-group GUEST_WEB_BLOCK in ```
이 설정은 Guest PC가 Server의 web port로 접근하는 것만 막는다.
Ping은 남겨 두었기 때문에, 네트워크 연결 자체는 유지된다.
- 확장 ACL 검증
확장 ACL 적용 후 다음을 확인한다.
Guest PC에서 Server로 ping을 보낸다.
이 ping은 성공해야 한다.
Guest PC에서 Server의 HTTP 페이지를 연다.
이 접속은 실패해야 한다.
Admin PC에서는 여전히 HTTP가 열려야 한다.
이 차이가 확장 ACL의 핵심이다.
단순히 source만 보는 것이 아니라 protocol과 port까지 함께 보기 때문이다.
- 표준 ACL과 확장 ACL의 배치 원칙
표준 ACL은 목적지 근처에 둔다.
source 기준만으로 걸러서, 너무 일찍 차단하지 않도록 하기 위해서다.
확장 ACL은 출발지 근처에 둔다.
필요 없는 트래픽이 네트워크를 오래 타지 않게 하기 위해서다.
시험에서는 “왜 이렇게 두는가”를 묻는 경우가 많다.
정답은 단순 암기가 아니라 packet이 어디까지 가서 버려지는지까지 이해하는 것이다.
- 자주 나오는 실수
ACL은 위에서 아래로 읽는다.
처음 매치된 문장에서 멈춘다.
마지막에는 implicit deny가 있다.
permit any를 빼먹으면 뒤의 트래픽이 전부 막힐 수 있다.
ACL 방향을 반대로 넣으면 의도와 다른 트래픽이 차단된다.
실습할 때는 꼭 show access-lists와 show ip interface를 같이 확인해야 한다.
- 핵심 정리
표준 ACL은 source만 본다.
확장 ACL은 source, destination, protocol, port까지 본다.
표준 ACL은 목적지에 가깝게 둔다.
확장 ACL은 출발지에 가깝게 둔다.
ACL에는 implicit deny가 있다.
permit 문을 마지막에 명시하는 습관이 중요하다.
- 다음 장 예고
다음 장에서는 이 ACL 개념을 더 실전적으로 묶어서, 라우팅과 서비스 제어가 같이 들어간 작은 실습을 이어간다.
즉, 단순히 “막는다”가 아니라, 어떤 트래픽은 살리고 어떤 트래픽은 차단하는 식으로 문제를 더 세밀하게 다뤄본다.


댓글 0
댓글은 운영자만 작성할 수 있어요.