세상에는 이제 IT기기 없이는 살아갈수 없을 정도로 일상에 녹아 사용되고있습니다

또한 IT 기기중에는 네트워크 통신을 이용해서 정보를 얻거나 공유하거나 하는 방식의 기기가 많아짐으로 인해 우리의 삶은 좀더 풍요로워졌습니다

하지만 우리가 현재 사용하고 있는 ipv4 환경에서는 공인 IP 개수가 부족하기 때문에 

공인 IP로만 통신하기에는 사용하고있는 사람도 너무 많고 IT기기들의 수도 너무 많아

만약 공인 IP로만 통신했었다면 IT기기들이 일상에 이렇게 녹아들기에는 힘들었을것입니다


NAT는 공인 IP와 <-> 사설 IP 를 변경시켜줘서 통신이 가능하게 하는 방법입니다

이렇게 우리는 사설 IP로 외부로 통신을 시도했을때 공인 IP로 변경되어 통신이 가능해지는 방법으로 부족한 IP개수도 문제도 해결되게 되고 사설 내트워크망을 구성할때도 보기 편리하고 쉽게 만들수있게 되었습니다





NAT의 장점


1. 1개의 공인 IP로 수많은 사설 IP가 통신이 가능하게 해준다


2. 내부에 있는 IP로 직접 통신을 하는것이 아닌 공인 IP로 변경되어 통신이 되기때문에

   내부에 있는 IP를 숨길수있다





NAT의 방식


NAT의 방식은 2가지가있다


1.내부의 사용자들이 공인 IP를 설정해서 나가고 싶을때 사용하는

Dynamic NAT


2.외부의 사용자들이 공인 IP를 설정해서 들어오고 싶을때 사용하는

Static NAT




NAT의 설정 방법


1. NAT 서비스 대상이 되는 네트워크대역을 ACL로 생성한후

2. 변경될 공인 IP 또는 공인 IP pool을 생성한후

3. 인터페이스에 적용한다







Dynamic NAT 






위와 같이 설정을 일단 기본적인 IP설정을 해줍니다

설정후 내부망에서 통신이 되는지 확인을 해줍니다

기본적인 설정을 하신후에 확인작업을 하지않으시면 어디서부터 잘못된지

모르게되어 나중에 디버깅하는데 오랜시간이 걸립니다





첫번째로 ACL을 이용하여 10.0.0.0 대역의 주소가 

외부망으로 통신이 가능한게 해보겠습니다




그전에 주소변환이 되지않아 내부망에서 외부망으로 통신이 안되는것을 확인해 줍니다




R1

  conf t

  access-list 10 permit 10.0.0.0 0.0.0.255

->  access-list [ACL 이름 or 번호 생성] [허용 or 거부] 

[출발지 ip] [출발지 ip wildcard mask]

->> ACL 10번을 생성하여 10.0.0.0/24 대역의 주소를 허용해줍니다

  ip nat inside source list 10 int f0/0

->   ip nat [in or out중 어디에 설정 할지 지정] [출발지 or 도착지 변환할곳 지정]

 [ACL 이름 or 번호] [설정할 인터페이스 지정]

->> ip nat의 기능을 int f0/0 안쪽에서 나가는 것중 출발지쪽 주소를 변환한다 

ACL 10번에 리스트를 적용 [말이 좀이상하게 됬습니다]

->>>즉 ACL 10 리스트가 int f0/0 으로 통과할때 변환하게 해주는것이다

  int f0/0

  ip nat outside

->> int f0/0 쪽을 밭깥쪽으로 지정

  int f0/1

  ip nat inside

->> int f0/1 쪽을 안쪽으로 지정




이렇게 R1에서 설정하고 R2 or R3에서 확인을 하게되면



아까는 되지않았던 외부망의 통신이 이렇게 되는것을 확인할수있었습니다



만약 위를 따라하셨는데 통신이 안됬다고하면 R2 , R3의 게이트웨이 설정을 하셨는지 

확인하셔야합니다 네트워크 영역이 다르기 때문에 GW를 통과하여 통신이 필요합니다








이상으로 NAT에 대해서 조금 알아봤습니다

다음은 pool을 이용한 NAT와 Static NAT에 대해서 알아보겠습니다

















이번에도 ACL에 대해서 알아보겠습니다


저번시간에는 Standard 방식의 ACL적용을 알아보았다면 

이번에는 Extended 방식의 ACL을 적용시키는 방법을 알아보겠습니다




간단한 토폴로지를 구성하였습니다

라우터와 PC는 네트워크대역이 같기 때문에 모든 구간에서 통신이 됩니다



이번에는 Extended 타입의 ACL을 지정하여 ping 통신은 되지만 

Telnet은 접속을 못하게 하는방법을 해보겠습니다




R1에서 telnet을 생성후 Extended ACL을 작성합니다


[혹시 telnet 생성을 못하시는분들은 참고하세요]

----------------------------------------------

R1(config)#line vty 0 4

R1(config-line)#no login

R1(config-line)#exit

R1(config)#enable password cisco

----------------------------------------------------

R1#conf t

R1(config)#ip access-list extended telnet

->R1(config)#ip access-list [standard or extended 타입 지정] [ACL 번호 또는 이름지정]

->>Extended 타입의 ACL을 생성하여 이름을 telnet으로 지정하였습니다


R1(config-ext-nacl)#deny tcp 10.10.10.1  0.0.0.0 10.10.10.10 0.0.0.0

->R1(config-ext-nacl)#[허용 or 거부] [옵션선택] [시작주소]

[시작주소의 와일드카드마스크] [목적지 주소]

->>10.10.10.1로 출발하는 주소가 목적지 10.10.10.10으로 도착하는 tcp를 거부

하는 ACL 정책을 만들었습니다 

->>>여기서 tcp를 거부한이유는 telnet이 tcp로 동작하기 

때문입니다 즉 PC1에서 R1으로 가는 tcp를 차단한겁니다


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

->R1(config-ext-nacl)#[허용 or 거부] [옵션] [출발지주소] [도착지주소]

->>모든 출발지 주소에서 모든 도착지 주소까지 가는 ip는 허용을 하였습니다


R1(config-ext-nacl)#int f0/1

R1(config-if)#ip access-group telnet in

->R1(config-if)#ip access-group [ACL 이름] [in or out 설정]

->> f0/1 포트에 방금 만든 ACL 정책을 설정을합니다

->>>ACL 만든다고 적용이되는것이 아니라 특정위치 또는 포트에 설정을 해야지 동작합니다


이렇게 만든후 PC에서 telnet으로 통신을 해봅니다


telnet이 되지않는것을 확인하였습니다 그후 ping 통신을 시도해봅니다



ping 통신은 되는것을 확인하였습니다



이런식으로 ACL 정책을 작성하게되면 특정 ip 특정 옵션등을 사용하여 

불필요한 패킷들을 관리하는것이 용이한 장점이 있습니다










 

ACL은 access control list 의 약자이며 한글로는 접근제어목록 이라고도 한다

네트워크가 구분이 되어있는 구간에 대해서 사용이 가능하며 특정 포트 또는 구간에 대하여 

주소,포트번호,옵션,프로토콜등을 구분하여 허가하거나 거부하는 리스트를 생성하여

인터페이스에 적용하는 방법으로 일종의 방화벽 역할을 하기도 한다


ACL은 2가지 종류로 구성할수있으며

Standard 방식과 Extended 방식이 있다

Standard 방식은 출발지 주소만 확인하며 3계층 정보까지만 확인한다

또한 1~99번까지 이루어져있다

Extended 방식은 출발지&목적지 주소, 포트번호, 프로토콜,옵션등을 확인 하며 4계층 정보까지 확인하여 구성하게 할수있다 또한 99~199번까지 이루어져 있다


ACL의 특징으로는 ACL list 순서대로 적용이 되며 허용하는 리스트를 만들면 허용하는 

리스트 이외에 다른것이 거부되며 거부한 리스트만 있고 허용한리스트가없어도 

모든것이 거부된다

이런식으로 리스트가 구현된경우 리스트 순서상으로 10.10.10.10이 허용이 위에있고

거부가 밑에있기 때문에 deny 10.10.10.10은 적용이 되지않는다


적용방식에는 2가지가 있습니다


1.white list 기본적으로 모든주소를 거부하고 허용할것들을 지정하여 적용하는 방법이다

2.black list 기본적으로 모든주소를 허용하고 거부할것들을 지정하여 적용하는 방법이다


쉽게 생각하면 식당에서 모든손님이 들어오지만 블랙리스트들은 접근을 하지못하는것을

블랙리스트 적용방식이다 라고 생각하면 된다


--------------------------------------------------------------------------------------


가상의 토폴로지를 생성후 실습을 해보겠습니다




현재 토폴로지대로 구성을하게되면 모든 네트워크 구간이 같기 때문에 

내부망 구간에서 통신이 가능해야합니다 우선 토폴로지대로 정보를 입력해 봅시다




PC1 에서 R1 int f0/0까지 통신이 되는것을 확인할수있었습니다




이번에는 R1에서 Standard 방식의 ACL을 적용해서 PC1 에서 통신이 

안되게 막아보겠습니다


R1(config)#access-list 10 deny 10.10.10.100 0.0.0.0

->R1(config)#access-list(acl 번호지정)(허용or거부)(출발지ip 지정)(출발지 wildcard mask지정)

->> 즉 ACL 10번을 만들어서 10.10.10.100으로 시작하는 ip는 거부하는 ACL이다
R1(config)#int f0/1
->> ACL을 적용할 인터페이스로 들어갑니다 R1(config-if)#ip access-group 10 in
->R1(config-if)#ip access-group (ACL 번호) (IN or OUT설정)

->>int f0/1번 인터페이스에 ACL 10번을 들어오는 패킷에 지정하였습니다


그후 PC1에서 다시 통신을 해보면



이런식으로 통신이 되지않는것을 확인할수 있었습니다


다음번에는 Extened 방식의 ACL을 알아보겠습니다








+ Recent posts