NAT의 경우는 Stateful이기 때문에 이런 처리가 필요없지만 ACL은 기본적으로 Stateless이기에 돌아오는 패킷을 허용하려면 Inbound와 Outbound에 ACL을 모두 따로 걸어줘야 하는데 이는 곧 시간 지연과 성능 저하로 이어지기 때문에 RACL, DACL 등을 사용하여 효율을 높이는 편이 낫다.

RACL

패킷이 내부망에서 외부 네트워크로 전송될 때, 돌아오는 패킷을 허용하기 위해 패킷의 상태 정보를 반사시켜 임시 ACL을 만드는 것을 말한다. 내부 사용자의 외부와의 통신을 위한 것이며, 내부에서는 제한없이 외부와 통신이 가능하지만 외부에서 내부로의 접속은 차단할 때 사용한다. Dyanamic Application (ex : FTP)처럼 Port Address가 변하는 상황에선 사용할 수 없다.

 

RACL 설정

이전의 ACL 제거 (필요 시)

R2(config)# no ip access-list extended acl-in

 

acl-out 설정

R2(config)# ip access-list extended acl-out

R2(config-ext-nacl)# permit tcp any any reflect myracl (outbound 시에 반영을 생성시킨다)

R2(config-ext-nacl)# permit udp any any reflect myracl

R2(config-ext-nacl)# permit icmp any any reflect myracl

R2(config-ext-nacl)# permit ip any any

 

acl-in 설정

R2(config)# ip access-list extended acl-in

R2(config-ext-nacl)# permit ospf host 1.1.23.3 any (OSPF 라우팅이 이루어지지 않으면 통신 자체가 불가능하기 때문에 허용해주어야 한다.)

R2(config-ext-nacl)# evaluate myracl

 

인터페이스에 적용

R2(config)# interface e0/1

R2(config-subif)# ip access-group acl-out out

R2(config-subif)# ip access-group acl-in in

 

RACL 동작 확인

R1에서 1.1.34.4로 핑과 텔넷을 해보면 성공적으로 연결된다.

생성된 반영에 의해서 돌아오는 패킷이 허용되었기 때문이다.

또한 텔넷 세션을 끊지 말고 R2에서 show ip access-lists 명령어를 사용해 보면 RACL에 의한 임시 ACL이 만들어져 적용되어 있음을 확인할 수 있다.

DACL

다이나믹 ACL을 락앤키(Lock and Key)라고도 한다. RACL은 주로 내부 사용자를 위한 것인 반면, DACL은 외부에 나가있는 직원들이 내부의 자원에 접속할 수 있도록 하는 것이다.

 

DACL에서 이용자를 인증하는 방법으로는 AAA 서버, 로컬 데이터베이스 또는 텔넷 패스워드를 이용하는 3가지 방식이 있다. 이중 AAA 서버를 사용하면 각 사용자 별로 정밀하게 인증하고, 정교한 트랙킹 기능을 제공한다. 그러나 텔넷 패스워드를 이용하는 방식은 패스워드만 알면 누구나 접속할 수 있으므로 보안성이 떨어진다.

DACL 설정

RACL 제거(필요 시)

R2(config)# no ip access-list extended acl-in

R2(config)# no ip access-list extended acl-out

R2(config)# interface fastethernet 0/0.23

R2(config-subif)# no ip access-group acl-out out

R2(config-subif)# no ip access-group acl-in in

 

Local Login 정보 설정

R2(config)# username admin password cisco

 

acl-in 설정

R2(config)# ip access-list extended acl-in

R2(config-ext-nacl)# permit ospf host 1.1.23.3 any (OSPF 패킷 허용)

R2(config-ext-nacl)# permit tcp any host 1.1.23.2 eq telnet (1.1.23.2로의 텔넷 접속 허용)

R2(config-ext-nacl)# dynamic applythis permit ip any any

 

인터페이스에 적용

R2(config)# interface e0/1

R2(config-subif)# ip access-group acl-in in

 

로그인 데이터베이스 지정 및 타임아웃 설정

R2(config)# line vty 0 4

R2(config-line)# login local

R2(config-line)# autocommand access-enable host timeout 10

'IT > Network Theory' 카테고리의 다른 글

DHCP(Dynamic Host Configuration Protocol)  (0) 2021.09.09
NAT(Network Address Translation)  (0) 2021.09.09
ACL(Access Control List) Configuration  (0) 2021.09.08
EGP - BGP  (0) 2021.09.08
IGP - Link State - OSPF  (0) 2021.09.08

개념

NAT란 게이트웨이를 통과하는 패킷의 IP 헤더 안에 든 IP 주소값을 다른 주소로 바꾸는 기술이며, 사설 IP를 이용하는 호스트들이 인터넷에 접근하거나 다른 외부 네트워크에 접근할 수 있게 하기 위해 만들어졌다.

 

NAT는 Stateful인 것이 특징인데, 외부 네트워크에 보낸 패킷이 다시 Source Host가 있는 네트워크로 게이트웨이를 통해 들어올 때 가지고 있던 상태 정보로 별도의 처리 없이 Inbound가 가능하다는 의미이다.

 

프로세스

  1. 네트워크 장비(게이트웨이)에 NAT 설정
  2. 패킷이 게이트웨이를 통해 Outbound(S-NAT).
    호스트의 사설 IP를 공인 IP로 변경.
    변경 정보를 NAT Table에 저장.

  3. 나갔던 패킷이 다시 들어올 때 NAT Table을 조회해서 다시 원래 패킷으로 변경해서 Inbound(D-NAT).

 

S-NAT : Private Network에서 Public Network로 나가는 것.

D-NAT : Public Network에서 Private Network의 Host에 접근하는 것.

 

Stateful(ex : NAT) : 외부로 나갈 때 Source의 상태 정보가 기록되고 그 정보에 따라 돌아올 수 있다.

Stateless(ex : ACL) : 상태 정보가 없어서 나간 신호가 돌아올 수 없다.

 

NAT의 종류

 

Static NAT : 하나의 사설 IP와 하나의 공인 IP를 1:1로 Mapping하는 방식.

갖고 있는 공인 IP가 충분해야만(공인 IP 수 >= 호스트 수) 사용할 수 있으며, 사설 네트워크 내에 동작 중인 서버가 있을 경우에 서버는 고정 IP를 사용해야 하므로 Static NAT를 사용한다.

 

R1(config)#ip nat inside source static local-IP global-IP  : 사설 IP와 공인 IP가 고정적으로 변환되도록 설정

R1(config-if)#ip nat inside : 변환된 패킷이 들어오는 인터페이스에 지정 (라우터 기준)

R1(config-if)#ip nat outside : 변환된 패킷이 나가는 인터페이스에 지정

 

 

Dynamic NAT : 여러 개의 사설 IP와 1~ 개의 공인 IP 주소를 필요에 따라 동적으로(자동으로) Mapping한다.

 

 

NAT-PAT(NAPT) : NAT는 IP를 다루기에 L3, PAT(Port Address Translation)는 Port Number를 다루기에 L4이다.

적은 갯수의 공인 IP로 다수의 사설 IP를 매핑시킬 수 있으며, 각 공인 IP의 Port Address로 사설 네트워크의 Host들을 구분한다.

 


Dynamic NAT Topology

사전에 기본 설정은 필수이고 R2에서 1.16.3.0 네트워크로 Static Routing을 잡아주어야 한다.

 

pool 생성

R1(config)#ip nat pool pub_ip 1.16.12.1 1.16.12.62 prefix-length 26
R1(config)#ip nat inside source list 10 pool pub_ip

 

pool 생성 확인

Router(config)#do sh ip int br

 

인터페이스에 각각 NAT 적용

R1(config)#int e0/0
R1(config-if)#ip nat inside


R1(config-if)#int s1/0
R1(config-if)#ip nat outside

 

NAT 확인

PC6#ping 1.16.3.8

R1#sh ip nat translation (NAT Translation이 이루어진 로그 조회)

 

 

NAT Table 내용 삭제 방법 : R1#clear ip nat translation *

 

공부하는 데에 참고했던 netmanias 자료

https://www.netmanias.com/ko/?m=view&id=blog&no=5826&kw=nat

 

 

NAT (Network Address Translation) 소개 (RFC 3022/2663)

현재 국내 통신사업자는 유선 액세스(FTTH, Ethernet, DSL 등)를 제외한 (거의) 모든 액세스 망에 NAT 장비를 적용하고 있습니다.

www.netmanias.com

 

 

'IT > Network Theory' 카테고리의 다른 글

ACL(Reflexive ACL) & DACL(Dynamic ACL)  (0) 2021.09.09
DHCP(Dynamic Host Configuration Protocol)  (0) 2021.09.09
ACL(Access Control List) Configuration  (0) 2021.09.08
EGP - BGP  (0) 2021.09.08
IGP - Link State - OSPF  (0) 2021.09.08

+ Recent posts