ACL (Access Control Lists)
<Access List - ACL>
- 네트워크에 접근여부를 허용할지 말지를 결정하는 리스트 (필터링이라고 보면 된다.)
- 보안을 위해서 많이 사용된다.
- 라우터에서 세팅 된다고 네트워크 계층까지가 아니라 어플리케이션 계층의 부분까지 관리하기 때문에 네트워크 계층까지라고 단정할 수 없다.
(하지만 물리계층에서 어플리케이션 계층까지 완벽히 막을 수 없기 때문에 더 많은 보안기능이 있는 firewall같은 전문 보안 장비를 사용한다.
- 액세스 리스트는 크게 두 종류로 Numbered과 named로 구분할 수 있다.
각각에는 Standard와 extended가 있다.
1) Standard Access list -> source address 만 참조해서 필터링 여부를 결정한다.
2) extended Access list -> source address외에도 Destination address, 프로토콜, 포트 번호 등 좀더 자세한 정보를 참조해서 필터링 여부를 결정한다.
- 각 ACL 별 사용하는 ACL Number
- Standard ACL (1-99)
- Extended ACL (100-199)
- Ethernet type code ACL (200-299)
- Extended 48bit Ethernet ACL (1100-1199)
- DECnet ACL (300-399)
- XNS ACL (400-499)
- Extended XNS ACL (500-599)
- Apple ACL (600-699)
- 48bit Ethernet ACL (700-799)
- Standard IPX ACL (800-899)
- Extended IPX ACL (900-999)
- IPX SAP (1000-1099)
- NLSP Route Summary ACL (1200-1299)
- Standard IP ACL (Expanded Range) (1300-1999)
- Extended IP ACL (Expanded Range) (2000-2699)
============================================================
<ACL 규칙>
1) ACL은 윗줄부터 순서대로 수행된다. 때문에 ACL은 좁은 범위 설정이 먼저 되어야 한다.
만약 다음 처럼 넓은 범위를 먼저 설정하게 되면 모든 Packet이 허용되게 된다.
(필터링 효과가 없다.)
R1(config)# access-list 1 permit any
R1(config)# access-list 1 deny 125.101.1.0 0.0.0.255
|
2) ACL의 마지막은 deny any 가 생략되어 있다. 즉, 마지막에 permit any가 없을 경우 ACL 조건에 없는
모든 address는 deny 된다.
3) numbered ACL은 순서대로 입력되기 때문에 중간 삽입이나 중간 삭제가 불가능하다.
즉, 중간에 리스트가 틀렸어도 중간 삽입, 수정, 삭제가 불가능하다.
(no 명령어를 이용해서 중간 라인만 지울 수 없다. => numbered인 경우에)
=> 만약 수정할 경우에는 설정한 ACL을 no 명령어로 삭제하기 전에 text파일로 복사하고 명령어를 삭제한 후 Text파일을 원래의 내용으로 수정해서 붙여넣는 것이 편리하다.
* 예외 named ACL의 경우는 중간 삭제 및 추가 삽입이 가능한다.
즉, 새로 추가하는 모든 조건은 마지막에 더해진다. (순서가 하향식 계산이다.)
4) Interface에 별 다른 ACL이 정의가 되어있지 않으면 아무런 필터링이 동작하지 않는다.
===========================================================
<ACL의 동작방식>
1) Inbound 설정
- 패킷이 라우터 내부로 들어올 때 필터링 여부를 결정
- 라우터 인터페이스로 패킷이 들어올 경우 수신 인터페이스에 ACL이 설정되어 있는지 확인하고 설정이 되어있지 않으면 그냥 통과시킨다.
- 만약 ACL이 설정돼 있다면 들어온 패킷의 정보와 ACL에 설정 내용을 비교해서 통과 여부를 결정한다.
(조건과 일치하고 permit이면 통과, deny면 통과 X)
2) Outbound 설정
- 패킷이 라우터 외부로 나갈 때 필터링 여부를 결정한다.
- 라우터 인터페이스에서 패킷이 나갈 경우 인터페이스에 ACL이 설정되어 있는지 확인하고 설정이 되어있지 않으면 그냥 보낸다.
- 만약 ACL이 설정돼 있다면 나가는 패킷의 정보와 ACL에 설정 내용을 비교해서 통과 여부를 결정한다.
(조건과 일치하고 permit이면 통과, deny면 통과 X)
==============================================================
- Standard ACL의 경우는 출발지 주소(Source address)를 보고 permit, deny 여부를 결정한다.
- 패킷의 Source address와 ACL에 정의된 source address가 일치하면 ACL의 내용을 수행한다. (permit or deny)
- Permit이면 패킷을 정해진 경로로 전송하고 Deny면 패킷의 흐름을 막은 다음 'Host Unreachable'이라는 ICMP 메시지를 뿌려준다.
- Standard ACL의 사용 list-number는 1-99까지 사용한다.
# Standard ACL 설정
R1(config)#access-list <list-number>
|
{permit | deny}
|
{<source address>
|
<wildcard mask> | any}
|
1
|
2
|
3
|
1 : list-number는 1-99까지의 번호를 사용한다. (1-99까지가 standard ACL의 번호이다.)
2 : 조건에 맞는 패킷을 permit할지 deny할지 결정한다.
3 : 조건을 넣는다. standard ACL의 조건은 source address, 그리고 뒤에 source address에 대한 wildcard mask를 넣는다. source address를 넣지 않고 any라고 입력하면 특정 출발지 주소가 아닌 모든 주소에 2번의 수행 내용을 적용한다.
# ACL을 인터페이스 적용
=> R1(config)#interface serial 0/0
R1(config-if)#ip access-group
|
<list-number>
|
<in | out>
|
1
|
2
|
1 : 앞에서 정의한 ACL을 불러와서 필터링 내용을 인터페이스에 적용한다.
2 : inbound와 outbound 설정.
in은 라우터의 인터페이스로 패킷이 들어오는 경우
out은 패킷이 라우터의 인터페이스에서 나가는 경우
* standard ACL은 항상 destination 라우터 쪽에 설정되어야 한다. 중간 라우터에 설정하면 다른 라우터들까지 ACL의 영향을 받아서 정상적으로 패킷 전송이 이루어지지 않을 수 있다.
<Standard/Extended 예제>
<Standard ACL 예제> |
1. R2는 출발지가 192.168.10.0/24인 트래픽만 serial 0/0으로 들어오도록 허용하시오.
=> R2(config)# access-list 1 permit 192.168.10.0 0.0.0.255
//ACL 마지막에는 기본적으로 deny any any 가 생략 되어 있다.
R2(config)# interface Serial0/0
R2(config)# ip access-group 1 in
2. R2는 출발지가 192.168.10.0/24인 트래픽이 serial 0/0으로 들어오는 것을 차단하시오.
=> R2(config)# access-list 1 deny 192.168.10.0 0.0.0.255
R2(config)# access-list 1 permit any
R2(config)# interface Serial0/0
R2(config)# ip access-group 1 in
3. R1에서 출발지가 192.168.20.0/24인 트래픽이 serial 0/0으로 나가는 것을 차단하시오.
=> R1(config)# access-list 1 deny 192.168.20.0 0.0.0.255
R1(config)# access-list 1 permit any
R1(config)# interface Serial0/0
R1(config)# ip access-group 1 out
4. R1에서 출발지가 192.168.10.1/32인 트래픽만 serial 0/0으로 나가도록 허용하시오.
=> R1(config)# access-list 1 permit 192.168.10.1 0.0.0.0
R1(config)# interface Serial0/0
R1(config)# ip access-group 1 out
==========================================================
<VTY port(텔넷포트)에서 ACL 지정>
- ACL을 미리 만든다.
* 설정
R1(config)#line vty 0 4
R1(config-line)#access-class 12 <in | out>
=> 미리 ACL 12에 대한 내용을 만들고 line vty에 들어가서 ACL 12를 VTY의 in으로 할지 out으로 할지 설정한다.
<ex. R1 텔넷에 211.221.221.0 네트워크만 접속이 가능하게 해라>
=> R1(config)#access-list 15 permit 211.221.221.0 0.0.0.255
// 211.221.221.0/24 네트워크만 허용해라 (마지막에 deny any가 생략되어 있다.)
R1(config)#line vty 0 4
// line vty 모드에서 설정
R1(config-line)#access-class 15 in
// 텔넷으로 들어오는 정보들에게 ACL 15의 조건을 확인하고 통과여부를 결정한다.
* 텔넷 접속 제어는 주로 standard 방식을 사용한다.
===========================================================
<Extended ACL>
- Standard ACL은 Source address만 조건으로 보고 필터링을 수행한다.
하지만 Extended ACL은 출발지와 목적지 주소(destination address) 모두를 제어한다.
- 또한 Standard ACL은 TCP/IP에 대해 제어만을 하지만 Extended ACL은 ip, tcp, udp, icmp 등의 상세 프로토콜을 선택해서 설정할 수 있다.
- Extended ACL의 사용 list-number는 100-199까지 사용한다.
# Extended ACL 설정
=> R1(config)#access-list
<list-number>
|
{permit| deny}
|
<protocol>
|
<sourceaddress> <wildcard mask>
|
<destinationaddress>
<wildcard mask>
|
<operator Destination-port number>
|
1
|
2
|
3
|
4
|
5
|
6
|
1 : list-number는 100-199까지의 번호를 사용한다.
(100-199까지가 Extended ACL의 번호이다.)
2 : 조건에 맞는 트래픽을 permit할지 deny할지 결정한다.
3 : 필터링을 할 프로토콜을 정의한다. (TCP, UDP, IP 등)
4 : Source address를 지정한다.
5 : Destination address를 지정한다.
6 : 목적지 TCP/UDP 포트 이름 및 번호를 지정한다.
<Extended ACL 예제>
1. R2에 있는 192.168.30.0/24 네트워크에는 외부에서 들어오는 트래픽 중 출발지의 주소가 192.168.10.0/24이고 목적지의 주소가 92.168.30.1/32인 트래픽만 접속이 가능하도록 허용하시오.
=> R2(config)#access-list 101 permit ip 192.168.10.0 0.0.0.255 host 192.168.30.1
R2(config)#interface fa 0/0
R2(config-if)#ip access-group 101 out
- R2의 serial 0/0 에 적용하면 나머지 트래픽이 지나갈 수 없다. 때문에 fa0/0에서 outbound 형식으로 설정
2. R1에서 외부에 나가는 트래픽 중 목적지의 주소가 192.168.30.0/24인 트래픽만 차단하고 나머지는 전송이 가능하도록 허용하시오.
=> R1(config)#access-list 105 deny ip any 192.168.30.0 0.0.0.255
R1(config)#access-list 105 permit ip any any
R1(config)#interface serial 0/0
R1(config-if)#ip access-group 105 out
- fa 0/0과 fa 0/1 양쪽에서 inbound로 설정할 수 있지만 2번 타이핑 하니까 번거롭고 나중에 R1에 다른 인터페이스에 네트워크가 추가될 수 있으니 그냥 serial에서 outbound로 설정
3. R2의 192.168.30.0/24네트워크에 외부에서 들어오는 트래픽 중 목적지가 FTP 서버(192.168.30.2)인 것만 차단하고 나머지는 트래픽은 허용하시오.
=> R2(config)#access-list 110 deny tcp any host 192.168.30.2 eq 20 // FTP는 tcp 기반이고 포트 번호는 20,21을 사용한다.
R2(config)#access-list 110 deny tcp any host 192.168.30.2 eq 21
R2(config)#access-list 110 permit ip any any
R2(config)#interface fa 0/0
R2(config-if)#ip access-group 110 out
- serial 0/0과 serial 0/1 양쪽에서 inbound로 설정할 수 있지만 타이핑이 번거롭고 나중에 다른 인터페이스에
네트워크가 추가될 수 있으니 그냥 fa 0/0에서 outbound로 설정
4. R1에서 192.168.20.0/24 네트워크에서 외부로 나가는 트래픽 중에 FTP(20,21), TFTP(69), HTTP(80)만 차단하고 나머지 트래픽은 허용하시오.
=> R1(config)#access-list 150 deny tcp 192.168.20.0 0.0.0.255 any eq 20
R1(config)#access-list 150 deny tcp 192.168.20.0 0.0.0.255 any eq 21
R1(config)#access-list 150 deny udp 192.168.20.0 0.0.0.255 any eq 69
// TFTP는 UDP 기반이고 포트 번호는 69를 사용
R1(config)#access-list 150 deny tcp 192.168.20.0 0.0.0.255 any eq 80
// HTTP는 TCP 기반이고 포트 번호는 80을 사용
R1(config)#access-list 150 permit ip any any
R1(config)#interface fastethernet 0/1
R1(config-if)#ip access-group 150 in
- serial 0/0에서 outbound로 설정할 수도 있지만 나중에 R1의 다른 인터페이스에 FTP, TFTP, HTTP 서버가 추가될 수도 있으니 아예 fa 0/1에 inbound로 설정
===========================================================
# ACL 인터페이스 적용
R1(config)#interface serial 0/0
| ||
R1(config-if)#ip access-group
|
<list-number>
|
<in | out>
|
1
|
2
|
1 : 앞에서 정의한 ACL을 불러와서 필터링 내용을 인터페이스에 적용한다.
2 : inbound와 outbound 설정.
in은 라우터의 인터페이스로 패킷이 들어오는 경우
out은 패킷이 라우터의 인터페이스에서 나가는 경우
===========================================================
* Well Known Port (지정포트)
1) TCP : FTP(20, 21), Telnet(23), SMTP(25), HTTP(80), HTTPs(443)
2) UDP : DNS(53), TFTP(69), DHCP(67, 68)
===========================================================
* 출발지나 목적지 IP address의 서브넷 마스크가 32비트일 경우에는 wildcard mask 대신 주소 앞에 host 명령어를 사용할 수 있다.
<ex> R1(config)#access-list 10 deny 10.10.10.1 0.0.0.0 ==> R1(config)#access-list 10 deny host 10.10.10.1 (둘 다 동일한 의미이다.)
===========================================================
<Named ACL>
- 번호로 계속해서 ACL을 생성할 경우 서로 구분하기가 어렵다. 이럴 경우 숫자가 아닌 Text로 Named ACL을 사용하면 서로 구분하기가 쉽다.
- Named ACL의 특징은 numbered와는 달리 부분 삭제 및 중간 수정이 가능하다. (numbered는 수정을 위해서는 ACL자체를 삭제하고 다시 설정해야 했다.)
- Named ACL도 standard와 extended로 구분된다.
- 'show ip access-lists'를 사용하면 ACL내용 확인이 가능하다.
============================================================
<Named ACL standard>
* 설정
R1(config)#ip access-list standard <text-name>
R1(config-std-nacl)#{permit | deny} <source address> <wildcadr mask>
R1(config-std-nacl)#exit
R1(confing)#interface <interface name>
R1(config-if)#ip access-group <ACL text name> {in | out}
ex > 출발지가 210.100.9.2 /32인 패킷을 Named ACL을 사용하여 R1에 들어오지 못하게 차단하여라
R1(config)#ip access-list standard Deny_210
R1(config-std-nacl)#deny host 210.100.9.2
// deny 210.100.9.2 0.0.0.0 과 같은 의미이다.
R1(config-std-nacl)#permit any
// 다른 IP 대역은 통과시키기 위해서
R1(config-std-nacl)#exit
R1(confing)#interface serial 0/0
R1(config-if)#ip access-group Deny_210 in
============================================================
<Named ACL extended>
* 설정
R1(config)#ip access-list extended <text-name>
R1(config-std-nacl)#{permit | deny} <protocol> <source address> <wildcard mask> <destination address> <wildcard mask> <operator Destination-port number>
R1(config-std-nacl)#exit
R1(confing)#interface <interface name>
R1(config-if)#ip access-group <ACL text name> {in | out}
ex 1> 출발지가 201.100.10.1/24, 목적지가 192.10.8.1/32인 패킷을 R2에 들어오지 못하도록 차단하시오
R2(config)#ip access-list extended Deny_192
R2(config-std-nacl)#deny ip 201.100.10.1 0.0.0.255 host 192.10.8.1
// deny ip 201.100.10.1 0.0.0.255 192.10.8.1 0.0.0.0 과 같은 의미
R2(config-std-nacl)#permit ip any any
// 다른 IP 대역은 통과시키기 위해서
R2(config-std-nacl)#exit
R2(confing)#interface serial 0/1
R2(config-if)#ip access-group Deny_192 in
ex 2> 151.100.10.0/24 대역의 트래픽만 200.10.100.1/32 웹서버에 접근이 가능하도록 ACL을 설정하시오
R2(config)#ip access-list extended Per_151
R2(config-std-nacl)#permit tcp 151.100.10.0 0.0.0.255 host 200.10.100.1 eq 80
// 뒤에 deny any가 생략되어 있다.
R2(config-std-nacl)#exit
============================================================
NAT (Network Adress Translation)
- 내부 네트워크에서는 사설 IP를 사용하고 외부 인터넷으로 나가는 경우 공인 IP주소로 변환돼서 나가게 하는 기술이다.
- 공인 IP주소의 부족으로 많이 사용된다. (보안과 경제상의 이유로 NAT를 이용해서 사설 IP를 사용하기도 한다.)
=> 공인 IP : 유료, 외부와 통신 가능(인터넷 사용 가능), 사설 IP : 무료, 외부와 통신 불가능(인터넷 사용 X)
- NAT는 실제 출발지 주소가 NAT 처리에 의해 다른 주소로 변환되어 외부로 나가기 때문에 내부 네트워크 정보를 공개하지 않아 어느 정도 보안적인 역할도 할 수 있다. (외부에서 내부 사설망으로는 접근이 힘들다.)
- 내부 네트워크에서 사용되는 비공인 주소를 Inside local address라고 한다.
- 외부로 나갈 때 변환되어서 나가는 주소를 Inside global address라고 한다.
=> 즉, NAT란 내부에서 사용되는 Inside local주소를 외부로 나갈 때 Inside global 주소로 바꿔주는 기술이다.
- NAT에는 Static NAT, Dynamic NAT, PAT(Port address translation)가 있다.
1) Static NAT
=> Inside Local IP주소와 Inside Global IP주소간에 일대일 매핑을 하도록 설정
=> DNS 서버나 이메일 서버 같이 외부 인터넷에서 접속해야 하는 내부 IP 호스트에 유용하다.
=> 호스트가 꼭 변하지 않는 global 주소를 가져야 할 경우 static NAT 사용
=> 외부에서 내부 사설망을 접속하고자 할때 사용된다.
=> Static NAT에는 1:1 주소 NAT와 1:1 Port NAT가 있다.
1:1 주소 NAT는 내부 IP를 외부에서 다른 IP로 보이게 한다.
1:1 Port NAT는 내부 port (8080)를 외부에서 다른 port(80)으로 보이게 한다.
2) Dynamic NAT
=> Inside Global IP주소 그룹 (pool)에서 하나의 Inside Global IP주소를 사설 IP 주소와 동적으로 매핑 되도록 설정
(공인 IP 그룹과 사설 IP 그룹을 그룹 대 그룹으로 매핑한다.)
=> 사설망에서 인터넷에 접속할 때 주로 사용된다.
3) PAT(Port address translation)
=> 다수의 사설 IP를 1개의 공인 IP로 변환시켜서 외부와 통신이 가능하게 하는 기술이다.
(이론적으로는 64000개의 사설 IP를 하나의 공인 IP로 사용 가능)
* NAT의 대표적인 예는 우리가 집에서 많이 사용하는 공유기가 있다. 공유기는 인터넷 전용선과 연결되서 공인 IP주소를 받은 다음에 사설 IP를 연결된 PC들에게 뿌린다. (기본적으로는 class C의 사설 IP를 할당한다.)
PC가 외부와 통신을 하기 위해서는 공유기가 사설 IP를 다시 공인 IP로 변환시켜준다.
(공유기가 PAT 작업까지 같이 수행해서 연결된 모든 PC가 동시에 인터넷 사용이 가능하다.)
IP공유기와 NAT의 차이점은 IP 공유기는 공인 IP 주소 하나를 할당받아 공유하지만(PAT)
NAT는 일정 범위에 있는 공인 IP 그룹의 주소를 할당 받고 이 주소를 사설 IP와 매핑해서 사용하는 개념이다. (dynamic NAT) (사설 IP 그룹을 공인 IP 그룹으로 변환한다.)
* 클래스 별 사설 주소 (Inside local로 사용되는 주소)
- class A : 10.0.0.0 ~ 10.255.255.255 (10.0.0.0/8)
- class B : 172.16.0.0 ~ 172.31.255.255 (172.16.0.0/12)
- class C : 192.168.0.0 ~ 192.168.255.255 (192.168.0.0/16)
ex> 10.10.10.1 주소를 가진 호스트가 외부(198.10.23.2)와 통신을 할 경우 (dynamic NAT)
=> 10.10.10.1 주소가 라우터를 거치게 되면서 라우터의 NAT 테이블에 Inside Global IP Address 주소중 하나(공인 IP주소(ex. 211.221.221.203))로 변환되고 변환된 내용은 NAT 테이블에 보관된다. 따라서 외부(198.10.23.2)에서는 10.10.10.1을 공인 IP주소인 211.221.221.203으로 알게되고 외부에서는 응답을 211.221.221.203으로 전송한다.
211.221.221.203을 목적지로 하는 패킷을 수신한 라우터는 NAT 테이블에서 211.221.221.203과 match 되는 원래의 주소인 10.10.10.1로 변환해서 내부 네트워크로
전달하기 때문에 외부와 통신이 가능하다.
# NAT table
NAT Table
| ||
Inside Local IP Address
|
Inside Global IP Address
|
Outside Global IP Address
|
10.10.10.1
|
211.221.221.203
|
198.10.23.2
|
* PAT(Port address translation)
- 하나 혹은 소수의 공인 IP를 여러 host들이 사용할 수 있도록 하는 기술
- host마다 포트 번호를 다르게 설정해서 하나의 공인 IP 주소로 외부와 통신할 수 있다.
(포트 번호로 각각의 host 들을 구분할 수 있기 때문에 외부와의 통신에 문제가 없다.)
- PAT는 Cisco IOS 설정에서는 Overload라고 한다.
- PAT는 inside global ip address에 송신지 포트 번호를 사용해서 변환된 주소를 구분한다.
- PAT는 여러 개의 inside local ip address를 단지 하나 또는 몇 개의 inside global ip address에 포트 번호를 다르게 해서 외부 네트워크와 통신을 한다.
- 라우터는 외부 IP 주소에 유일한 송신지 포트 번호을 붙여서 할당하기 때문에 내부 호스트 별로 패킷을 구분할 수 있다.
# PAT table
NAT Table with Overload
| |||
Inside Local IP Address
|
Inside Global IP Address
|
Outside Local IP Address
|
Outside Global IP Address
|
10.10.10.3 : 1331
|
211.221.221.203 : 1331
|
198.10.23.2 : 80
|
198.10.23.2 : 80
|
10.10.10.5 : 1555
|
211.221.221.203 : 1555
|
152.30.12.1 : 80
|
152.30.12.1 : 80
|
------------------------------------------------------------
=> Inside Global IP Address가 211.221.221.203로 동일하지만 뒤에 따라오는 포트번호가 1331, 1555로 각각 다르다. 때문에 각 포트 번호로 내부 네트워크의 사설 IP를 각각 구분해서 정상적으로 외부 네트워크와 통신을 할 수 있다.
- Inside Local IP Address : port => 내부 네트워크의 IP address와 포트 번호
- Inside Global IP Address : port => 외부로 나갈 때 변환되어질 IP address와 포트 번호
- Outside Local IP Address : port => 외부 호스트의 IP address와 포트 번호
- Outside Global IP Address : port => 외부 네트워크의 한 호스트에 할당되는 IP address와 포트 번호
------------------------------------------------------------
- 내부 호스트의 경계(border)게이트웨이 라우터가 NAT 기능을 수행한다.
------------------------------------------------------------
<Static NAT 설정>
Router(config)#ip nat inside source static <local-ip> <global-ip>
// inside Local IP주소와 Inside Global IP주소간에 일대일 매핑
ex) (config)# ip nat inside source static 192.168.1.2 201.100.10.1
* 내부인터페이스 지정
Router(config)#interface <type-number> ex) #interface FastEthernet 0/0
Router(config-if)#ip nat inside
// NAT 내부 인터페이스로 지정
* 외부 인터페이스 지정
Router(config)#interface <type-number> ex) #interface Serial 2/0
Router(config-if)#ip nat outside
// NAT 외부 인터페이스로 지정
#show ip nat translation (NAT 설정된 공인 및 사설IP 확인 방법)
------------------------------------------------------------
<Dynamic NAT 설정>
# 동적 NAT 설정
Router(config)#ip nat pool <name> <start ip address> <end ip address> netmask <subnet mask>
// 공인 IP 그룹을 생성한다.
ex) #ip nat pool NAT_TEST 201.100.10.1 201.100.10.254 255.255.255.0
Router(config)#access-list <list-number> permit <inside local address> <wildcard mask>
// 사설 IP 그룹을 생성한다.
ex) # access-list 1 permit 192.168.1.0 0.0.0.255
Router(config)#ip nat inside source list <list-number> pool <name>
// 공인 IP그룹과 사설IP 그룹 매핑
ex) # ip nat inside source list 1 pool NAT_TEST
ex) #interface FastEthernet 0/0
ip nat inside
ex) #interface Serial 2/0
ip nat outside
(위에서 설정한 ACL 리스트 넘버와 NAT name 적용)
Router(config)# interface<type-number>
Router(config-if)# ip nat inside
// NAT 내부 인터페이스로 지정
Router(config)#interface <type-number>
Router(config-if)#ip nat outside
// NAT 외부 인터페이스로 지정
ex > Router(config)#ip nat pool NAT_TEST 211.100.1.2 211.100.1.253 netmask 255.255.255.0 // 1
Router(config)#access-list 10 permit 192.168.0.1 0.0.0.255 // 2
Router(config)#ip nat inside source list 1 pool NAT_TEST // 3
Router(config)#interface fastethernet 0/0
Router(config-if)#ip address 192.168.0.1 255.255.255.0
Router(config-if)#ip nat inside
Router(config)#interface serial 0/1
Router(config-if)#ip address 211.100.1.1 255.255.255.0
// pool에 포함되지 않는 IP를 설정
Router(config-if)#ip nat outside
=> 1 : 외부로 나갈때 사용되는 Inside Global IP 주소의 pool. 사용할 첫 주소와 마지막 주소와 서브넷마스크
2 : inside local IP 주소로 사용될 영역을 ACL로 지정한다.
3 : indide로 지정한 인터페이스에서 오는 패킷의 source address(출발지 주소)가 ACL 1에 정의된 source address에 해당하면 지정한 pool에 있는 주소로 변환해주겠다는 의미.
또한 outside로 지정한 인터페이스에서 들어오는 패킷의 destination address(목적지 주소)가 pool에 속한 주소면 다시 inside local address(즉, 사설주소)로 변환해주겠다는 것을 의미
-------------------------------------------------------------
<PAT 설정>
Router(config)#ip nat pool <name> <start ip address> <end ip address> netmask <subnet mask>
Router(config)#access-list <list-number> permit <inside loca addressl> <wildcard mask>
Router(config)#ip nat inside source list <list-number> pool <name> overload
// Dynamic NAT와 차이점은 뒤에 overload명령어를 사용한다는 점이다.
Router(config)# interface<type-number>
Router(config-if)#ip nat inside
Router(config)#interface <type-number>
Router(config-if)#ip nat outside
=============================================================
* 확인은 'debug ip nat'로 디버깅해서 주소가 변환되는 것을 확인해본다.
* 내부에서 외부와 통신을 해본 다음 'show ip nat translations'명령어로 NAT 테이블 내용을 확인해본다.
('clear ip nat translations *'로 NAT 테이블을 갱신할 수 있다.)
* 'show ip nat statistics' 명령어로 주소 변환 통계를 표시
==============================================================
댓글 없음:
댓글 쓰기