NAT(Network Address Translation) 1. NAT 개요 1 패킷의 IP 헤더의수신지주소, 발신지주소또는그주소를다른주소로변경하는과정 2 NAT기능을갖는장치를 NAT-BOX라함 ( 시스코라우터, 유닉스시스템, 윈도우의호스트혹은몇개의다른시스템일수있기때문에이렇게지칭하기도함 ) 3 NAT 기능을갖는장치는일반적으로스텁도메인 (Stub-domain) 의경계에서작동 4 NAT 프로세스는 IP헤더를분석한뒤에분석결과가적절하면 local IP주소를전역적으로유일한 IP주소로교체한다. 5 NAT변환은동적또는정적으로이루어질수있다. [ 작동과정 ] NAT 라우터는패킷의발신지 IP주소 1.1.1.1 가교체되어야한다는것을확인한후에사설주소를전역주소인 2.2.2.2로교체한다. 또한 NAT 변환테이블안에이변환의기록을유지한다. 1
2. NAT 관련용어 2.1 사설 IP 주소 1 ISP들이일반적으로사설주소를사용하는사용자의트래픽이전송되지않도록 ISP 라우터들을설정하기때문에변환과정을거치지않는사설주소는인터넷에서직접사용될수없다. 2 RFC 1918은사설과내부사용목적을위해세가지범위의주소를설정했다. 클래스 RFC 1918 내부주소영역 CIDR prefix A 10.0.0.0 10.255.255.255 10.0.0.0/8 B 172.16.0.0 172.31.255.255 172.16.0.0/12 C 192.168.0.0 192.168.255.255 192.168.0.0/16 3 NAT 가나오기전에사설주소를가지는호스트는인터넷에접속할수없었다. NAT가나온지금의상황에서회사는호스트들에게사설주소를부여할수있으며인터넷에접속할수있다. 2.2 NAT 용어 1 내부주소 (Inside address) 는변환이적용되는네트워크의집합으로이주소들은보통 RFC 1918주소이며모든유효한주소가될수도있다. ( 자신이속한네트워크의일부 ) 2 외부주소 (Outside address) 는내부주소를제외한모든주소로써인터넷에서사용가능한 주소를의미한다.( 모든인터넷주소연관 ) Inside local address 내부네트워크의한호스트에게할당된 IP주소 IANA나서비스제공업체가할당한 IP주소는내부로컬 내부 NIC나서비스제공업체가할당한정규적인 IP주소 주소 외부네트워크로나가는하나혹은그이상의내부주소 Inside global address 내부호스트의 IP주소가네트워크밖에서보았을때주소로내부 전역주소는변환된주소 외부호스트주소, 내부네트워크에게보임 Outside local address 외부 네트워크내부에서보았을때외부호스트 IP주소 주소 Outside global address 외부네트워크의한호스트에게할당된 IP 주소 전역으로경로설정될수있는주소나네트워크공간으로부터할당 2
3. 동적 NAT & 정적 NAT 3.1 동적 NAT 1 라우터가변환이필요한트래픽을수신했을때 NAT 변환테이블내에서발생하게된다. 동적변환은일시적인것으로정해진시간이지나면해당엔트리는 NAT변환테이블에서사라진다. 2 내부호스트는주소풀로부터동적으로주소를할당받는다. 할당받은주소변환기록을 NAT테이블내에유지하게된다. 인터넷호스트이응답패킷을수신지로보내면그패킷은 NAT라우터에도착하며라우터는지역내부주소에매핑하기위해 NAT테이블을체크한다. 3 NAT 라우터는목적지주소를최초지역주소와교환한다. 4 설정한시간이지나면사라진다. [ 동적 NAT 설정 ] Router(config)# ip nat pool name start-ip end-ip {netmask netmask prefix-length prefix-length} Router(config)# access-list access-list-number permit source [source-wildcard] Router(config)# source list access-list-number pool name Router(config-if)# ip nat inside Router(config-if)# [ 설정예제1] Access-list통한주소변환설정 3
[ 설정예제 1] Access-list 통한주소변환설정 ip nat pool net-208 171.69.233.208 171.69.233.223 netmask 255.255.255.240 ip nat inside source list 1 pool net-208 interface serial 0 ip address 171.69.232.182 255.255.255.240 interface ethernet 0 ip address 192.168.1.94 255.255.255.0 ip nat inside access-list 1 permit 192.168.1.0 0.0.0.255 [ 설정예제 2] Route-map 을통한주소변환설정 ip nat pool provider1-space 171.69.232.1 171.69.232.254 prefix-length 24 ip nat pool provider2-space 131.108.43.1 131.108.43.254 prefix-length 24 ip nat inside source route-map provider1-map pool provider1-space ip nat inside source route-map provider2-map pool providere2-space interface Serial0/0 interface Serial0/1 route-map provider1-map permit 10 match ip address 1 match interface Serial0/0 route-map provider2-map permit 10 match ip address 1 match interface Serial0/1 3.2 정적 NAT 1 내부지역주소를이미명시된외부전역주소로매칭한다. 즉내부및외부주소들은정적으로 1 : 1로매핑된다. 2 내부지역주소마다정적 NAT는내부전역주소를필요로한다는것으로정적 NAT만사용한다면실제 IP주소를절약할수없다. 3 정적 NAT는일반적으로동적 NAT와혼합해서사용된다. 이것은오버랩된네트워크를가지고이거나또는한가지번호쳬계를다른번호체계로변환때이다. [ 정적 NAT 설정 ] Router(config)# source static global-ip local-ip Router(config-if)# ip nat inside Router(config-if)# 4
4. NAT overload 1 PAT(Port address Translation) : 여러개의내부의주소들을동일한하나의전역주소로매핑하는기능으로다대일 NAT또는주소오버로딩이라부른다. 2 주소오버로드를사용하면사설주소가부여된많은노드들이단일전역수조를사용해서인터넷에액세스할수있다. 3 NAT 라우터는변환테이블에있는 TCP 및 UDP 포트번호를매핑하는방법을통해다른프로토콜간의통신을추적한다. 4 하나의 IP 주소와포트쌍을또다른 IP 주소와포트쌍으로패핑하는변환엔트리를확장엔트리라한다. [ 설정예제 ] ip nat pool net-208 171.69.233.208 171.69.233.223 prefix-length 28 ip nat pool net-10 10.0.1.0 10.0.1.255 prefix-length 24 ip nat inside source list 1 pool net-208 overload source list 1 pool net-10 interface serial 0 ip address 171.69.232.192 255.255.255.240 interface ethernet0 ip address 192.168.1.94 255.255.255.0 ip nat inside access-list 1 permit 192.168.1.0 0.0.0.255 5. Overlapping network 1 소유된네트워크장치에 IP 주소를부여할떄그 IP 주소가인터넷또는외부네트워크의다른장치에이미할당되어있다면네트워크오버래핑이일어난다. 2 네트워크에서 RFC 1918 IP 주소들을사용하는두개의회사가합병할때도네트워크오버래핑이발생 3 모든장치들에게가급적이며다시주소를부여하지않고, 두개의네트워크들이서로통신할필요 5
[ 설정예제 ] ip nat pool net-208 171.69.233.208 171.69.233.223 prefix-length 28 ip nat pool net-10 10.0.1.0 10.0.1.255 prefix-length 24 ip nat inside source list 1 pool net-208 source list 1 pool net-10 interface serial 0 ip address 171.69.232.192 255.255.255.240 interface ethernet0 ip address 192.168.1.94 255.255.255.0 ip nat inside access-list 1 permit 192.168.1.0 0.0.0.255 6. TCP 부하분산정적매핑으로의확장으로시스코라우터는 TCP 부하분산을지원한다. 이것은하나의전역주소를여러내부주소로매핑할수있게해주는데여러호스트들간의통신을분산화하는데목적이있다. [ 설정과정 ] Step 1 Step 2 Step 3 Step 4 Step 5 Step 6 Step 7 Router(config)# ip nat pool name start-ip end-ip {netmask netmask prefixlengthprefix-length} type rotary Router(config)# access-list access-list-number permit source [source-wildcard] Router(config)# ip nat inside destination list access-list-number pool name Router(config-if)# ip nat inside Router(config-if)# 6