ACL
왜 쓰는가
- Filtering
- 라우터를 통과하는 패킷을 필터링 하는 것으로 IP Traffic을 관리하기 위해
- Classification
ACL 응용: Filtering
- 라우터를 통해 이동하는 패킷을 허용(Permit) 또는 거부(Deny)
- 라우터로의 또는 라우터로부터 Virtual Terminal Line Access(vty) 허용 or 거부
- ACL이 없이는 모든 패킷이 네트워크의 모든 영역으로 전달될 수 있음
ACL 응용: Classification

ACL 위치와 방향

- 하나의 인터페이스, 한 방향(In/Out), 하나의 프로토콜에 하나의 ACL이 들어감
- 두 인터페이스와 3개의 프로토콜이 동작할 때, 해당 라우터는 총 12개의 개별 ACL이 들어갈 수 있음

Matching Packets

- 가장 상단 ACL 문장부터 차례대로 검사
- 만약 해당 문장에서 Deny가 된다면 Packet은 Drop됨(Go to Packet Discard Bucket)
- 만약 특정 문장에서 Permit이 된다면 Packet은 목적지 Interface(or Interfaces)로 전송됨
- 만약 모든 ACL에 Match 되지 않는다면, 묵시적 Deny(Deny All)되어 Drop
Outbound ACL Operation

- PBR은 Inbound로 밖에 처리가 되지 않음
- Inbound Interface Packet이 들어왔을 경우
- 라우팅 테이블에 없으면? Drop
- 라우팅 테이블에 존재하고, Outbound Interface를 선택
- ACL에 걸리지 않는다면, ACL 문장 Test
- Permit이면 아까 선택한 Outbound Interface를 통해 전송
- Deny되면 Drop
Type of ACL
Guidelines for Creating ACLs
- 인터넷 구간과 연결된 라우터에서 ACL 사용법
- 통신이 되어서는 안 되는 IP 패킷 Filtering (북한, 중국 IP)
- 사설 IP로 통신을 시도하는 패킷 Filtering
- ACL이 설정되는 위치는 효율성에 큰 영향을 미침
- Extended ACL
- Traffic의 Source에 가능한 가깝게 배치하여 필터링
- Standard ACL
- Standard ACL은 목적지 주소를 특정할 수 없기에, 가능한 목적지에 가깝게 배치
ACL Troubleshooting Case

- Error1, 10.1.1.1이 10.100.100.1로 접속 불가능
- 172.16.0.0에 대한 주소만 permit 했기에, 10.1.1.1은 묵시적 Deny됨

- Error2, 10.1.1.1이 10.100.100.1로 접속 불가능
- Specific IP 주소에 대한 ACL 문장을 먼저 작성해야 함

- Error3, 192.168.1.0 네트워크가 10.100.100.1로 TFTP 세션을 열수 없음
- permit tcp any any가 아니라 ip any any로 작성해 주어야 Extended ACL에서의 permit any 기능을 함

- Error4, 172.16.0.0 네트워크가 10.100.100.1로 telnet 접속됨, telnet 접속 차단 목적으로 ACL 작성
- 10번 문장의 ACL 작성이 잘못되었음
- 10 deny tcp any any eq telnet

- Error5, 10.1.1.1이 10.100.100.1로 telnet이 접속됨, telnet 접속 차단 목적으로 ACL 작성
- 10.1.1.1이 Router B로 들어올 때, 출발지 주소가 Router A의 Outbound Interface의 주소 10.160.22.11로 바뀔 것이라 생각해 10번 문장을 잘못 작성한 모습
- 10 deny tcp host 10.1.1.1 any eq telnet

- Error6, 10.100.100.1이 10.1.1.1로의 telnet 접속 가능, ACL은 telnet 접속 차단 목적으로 작성
- 10.100.100.1 주소가 10.1.1.1로 접속하는 트래픽을 막으려면 Serial0 인터페이스에서 ACL 150을 Outbound 조건으로 걸었어야 함

- Error7, 10.1.1.1이 Router B의 주소로 telnet 접속 가능, ACL은 telnet 접속 차단 목적으로 작성
- 라우터로의 원격 접속 차단을 위해서는 line vty에 access-class를 걸어주어야 함
ACL Practice 1
-
문제

-
해설





ACL Practice 2
-
문제

-
해설


- 결론적으로 세 주소를 동시에 홍보하려면
192.168.11.21 X.X.X.194
IP Prefix Filters
- IP Prefix filter는 Distributed-list 명령어로 구성된 IP access list로 형성되었음
- Prefix lists
- ACL보다 더 뛰어난 성능
- User Friendly CLI
- set number보다 더 길거나 짧은 서브넷 마스크로 주소 공간의 일부분으로써 경로를 match 시킬 수 있음
Prefix List Matching Without ge or le

- ge 또는 le 옵션이 없으면 특정 주소에 대해서만 Prefix Matching을 검사하겠다는 의미
Prefix List Matching with ge or le

- 위의 이미지를 기준으로
- le 20은 16비트~20비트까지
- ge 18은 18~32비트까지
- 해당 범위들로 Prefix Match를 실행하겠다는 의미
- 특정 범위 내의 주소만 검사하고 싶다면
Subnet
Prefix-list Practice


- ip prefix-list All permit 0.0.0.0/0 ge 32
- 모든 host의 경로만

- ip prefix-list A1 permit 0.0.0.0/1 le 32
- 첫 비트가 0이면 되니, bit 1까지만 비교(X.X.X.X/1)

- ip prefix-list A2 permit 0.0.0.0/1 ge 9

- ip prefix-list B1 permit 128.0.0.0/2 le 32

- ip prefix-list B2 permit 128.0.0.0/2 le 15

- ip prefix-list C1 permit 192.0.0.0/3 le 32

- ip prefix-list C2 permit 192.0.0.0/3 ge 28 le 28

- ip prefix-list C3 permit 192.0.0.0/3 ge 26 le 27

- permit 10.0.0.0/8 le 32
- deny 172.16.0.0/22 le 32
- permit 172.16.0.0/12 le 32
- permit 192.168.0.0/16 le 32
Route Maps
- Access List와 같이 동작, 그러나 더욱 복잡함
- Top-Down Processing 제공
- 여러 조건들 중 하나라도 match 되는 즉시 탐색 중지
- 각 조건문들에는 순번이 있음(더욱 쉬운 편집을 위해)
- 문서화 하기 쉽게 넘버링보다 네이밍됨
- 적합 기준과 설정 기준이 사용됨
Route Maps Application
- route map의 용도
- 경로 필터링 재분배
- distributed list보다 더욱 정교하면서 복잡한 대체 기술
- PBR
- 목적지 네트워크가 아닌 기준에 따른 라우팅 정책 결정 가능
- BGP policy implementation
Route Map Operation
-
statement list가 route map을 구성
-
Access list와 같이 top-down 방법으로 진행
-
경로에 대한 첫 match가 적용됨
-
sequenece number는 특정 루트맵 문장에 추가되거나 삭제될 수 있음
-
Match Statements는 다수의 reference를 포함하고 있을 수 있음
-
같은 조건문에 여러 기준이 match 될 수도 있음(OR 논리)
-
적어도 하나의 reference는 경로를 permit 해야 함
- 재분배 후보가 되기 위한 조건

-
각 라인마다 여러 문장이 match 될 수 있음(AND 논리)
-
모든 match 문장은 재분배 후보가 되기 위해서 경로를 permit 해야 함
-
Route map의 permit/deny문은 후보의 재분배 여부를 결정
Route-map OSPF Redistribute Practice

redistribute eigrp 100 subnet route-map AAA metric-type 1 metric 300
route-map AAA permit 10
match ip address prefix-list AAA BBB
set metric 100
route-map AAA permit 20
match tag 500
set metric-type 2
set metric 50
route-map AAA permit 999

- 현재 문제의 조건을 만족시키는 방법은 위의 사진과 같은 방식이 있는데, Default 값을 route map과 재분배를 통해 원하는 값으로 바꾸어 넘기는 방법
Route-map PBR Practice

access-list 10 172.16.1.0 0.0.254.255 - (1)
access-list 20 172.16.0.0 0.0.255.255 - (2)
route-map BB permit 10 - (1)
match ip address 1
set metric
route-map BB permit 20 - (2)
match ip address 2
set ip nexthop 192.168.1.1
set ip nexthop 192.168.1.2
set metric
NAT
inside/outside
- inside/outside의 구분은 라우터가 결정
ip nat inside
ip nat outside
Address
- inside local address
- inside 시점에서 보는 기기의 inside 영역 주소
- inside global address
- inside 시점에서 보는 기기의 outside 영역 주소
- outside global address
- outside 시점에서 보는 기기의 outside 영역 주소
- outside local address
- outside 시점에서 보는 기기의 inside 영역 주소
변환
-
일반적으로 inside 영역을 source로 잡고 inside 기기들의 주소를 변환
-
변환할 주소의 수가 단일 주소라면 1:1 매칭으로 NAT
-
변환할 주소의 수가 다중 주소라면 pool을 생성하여 NAT(PAT 방식이 일반적)
-
주소는 어디서 변환되는가
- Inbound Interface(이면서 Inside Interface)로 Traffic 접속
- Outbound Interface 중에서도 Outside Interface로 나가는가 검사
- 1번과 2번이 확인되어 NAT 조건에 match가 되면 NAT Table 생성
- 이후 Table을 참고하여 Outside Interface에서 Source IP 변경
-
Outside에서 Inside로 Traffic이 들어올 때
- 목적지 IP가 Inside를 향하고 있다면 NAT Table을 거쳐 주소 변환
- 변환된 Inside 주소로 향하는 라우팅 정보를 찾기 위해 RIB 참고
Route-map NAT Practice

-
DMZ 네트워크의 g0/0 설정 값은 그리 중요하지 않음
-
next-hop이 어디로 설정되어 있는지 더 중요
-
조건변경
- NAT pool을 사용하지 않음
- Internet 구간으로 가는 주소는 next-hop 역할을 함
-
Static NAT 조건
- 10.1.1.1이 UDP 53 포트를 사용한다면 source를 172.16.1.2로 변환하고 DMZ로 전송
- 10.1.1.1이 Port 80을 사용한다면 source를 200.1.1.2로 변환하고 Internet 구간으로 전송
-
Dynamic 구현 조건
- 10.1.1.0/24에 관한 주소가 들어오면 Drop
- 10.1.2.0/24에 관한 주소가 들어오면 NAT Pool을 통해 주소 변환
- 나머지 NAT는 미적용
-
예상 답
-
[Static NAT]
access-list 100 permit udp host 10.1.1.1 any eq udp
access-list 110 permit host 10.1.1.1 any eq 80
ip nat inside source list 100 10.1.1.1 172.16.1.2
ip nat inside source static 10.1.1.1 201.1.1.2
route-map AA permit 100
match ip address 1
set ip nexthop 172.16.1.5
set metric
route-map BB permit 110
match ip address 2
set ip nexthop 201.1.1.1
set metric
-
[Dynamic NAT]
access-list