NAT
내부 네트워크에서 외부로 나갈 때 내부 ip 주소를 다른 ip로 변환하여 외부로 나가게 해줍니다.
① NAT Static : 출발지와 목적지의 ip를 미리 매핑하여 고정해논 NAT
② NAT Dynamic : 출발지나 목적지 어느 경우든 사전에 정해놓지 않은 NAT
왜 생긴 것일까?
IPv4의 고갈 문제와 사설망 때문입니다. 현재 인터넷 주소에 쓰이는 IPv4는 약 42억 개의 주소를 할당할 수 있습니다. 하지만 이는 전세계 아이피 수요에 못 미치는 수준이라 가면 갈수록 IP 고갈의 문제가 거론되고 있습니다. 이를 해결하기 위해서 나온 것이 IPv6인데 이를 사용한다면 IP 고갈 문제는 단번에 잡히지만 비용 문제 때문에 교체를 안하고 있는거 같습니다. 결정적으론 사설망 - 공인망 개념 때문입니다.
가정이나 회사에서 인터넷을 이용하면 ISP로 부터 전세계에서 유일한 공인 아이피를 하나 발급 받습니다. 실제 PC엔 각각 사설 아이피가 들어가 있으며, 외부망인 인터넷에 접속할 때 공유기의 NAT 기술을 통해 각 사설 아이피들이 공인 아이피로 변환되게 됩니다. 즉 한 개의 PC가 여러개의 IP를 공유하여 사용하고 있다는 것 입니다.
IANA(Internet Assigned Numbers Authority)는 사설 IP주소로 사용할 다음 IP 주소 블록을 예약합니다.
⊙ 10.0.0.0 ~ 10.255.255.255.255
⊙ 172.16.0.0 ~ 172.31.255.255.255
⊙ 192.168.0.0 ~ 192.168.255.255
인터넷 사용자의 로컬 네트워크를 식별하기 위해 ISP가 제공하는 공인 IP주소입니다.
⊙ 0.0.0.0 ~ 127.255.255.255
⊙ 128.0.0.0 ~ 191.255.255.255
⊙ 192.0.0.0 ~ 233.255.255.255
⊙ 224.0.0.0 ~ 239.255.255.255
⊙ 240.0.0.0 ~ 255.255.255.255
사설망에서 외부로 패킷을 보낼 때 공유기가 사설 아이피를 공인 아이피로 바꿔서 보내기 때문에 응답 패킷은 변환 기록을 조회하여 다시 원래 호스트에게 주게 됩니다. 하지만 외부에서는 공유기까지 밖에 목적지 주소를 지정할 수 없기 때문에 외부에서 접근할 수 없는 사설망 운용은 보안상으로도 뛰어납니다.
정적 NAT
토폴로지
PC0 ~ PC2까지 192.168.10.1 ~ 192.168.10.3 까지 넣어주고 router에서 설정을 시작합니다.
Router(config)#int g0/0
Router(config-if)#no shut
Router(config-if)#ip add 192.168.10.254 255.255.255.0
Router(config-if)#ip nat inside
Router(config-if)#exit
Router(config)#int se0/0/0
Router(config-if)#no shut
Router(config-if)#ip add 200.1.1.254 255.255.255.0
Router(config-if)#ip nat outside
Router0에서 Gig0/0에 IP를 부여해주고(gateway) ip nat inside까지 입력해줍니다. Se0/0/0에 IP와 ip nat outside를 입력해줍니다. Gig0/0는 내부에서 외부로 나가는 IP이기 때문에 inside를 적어줍니다. 나가는 곳은 당연히 outside를 적어줍니다.
Router(config)#ip nat inside source static 192.168.10.1 200.1.1.1
Router(config)#ip nat inside source static 192.168.10.2 200.1.1.2
Router(config)#ip nat inside source static 192.168.10.3 200.1.1.3
내부 IP(192.168.10.1) → 외부 IP(200.1.1.1) 이런식으로 맵핑을 해줍니다.
Router(config)#do sh ip nat trans
Pro Inside global Inside local Outside local Outside global
--- 200.1.1.1 192.168.10.1 --- ---
--- 200.1.1.2 192.168.10.2 --- ---
--- 200.1.1.3 192.168.10.3 --- ---
확인은 [do] sh ip nat trans로 확인할 수 있습니다. 그 다음에는 Router1에 IP만 할당해 줍니다.
Router(config)#int se0/0/1
Router(config-if)#ip add 200.1.1.253 255.255.255.0
PC에서 Router1로 ping를 날려봅시다.
NAT: s=192.168.10.1->200.1.1.1, d=200.1.1.253 [42]
NAT*: s=200.1.1.253, d=200.1.1.1->192.168.10.1 [26]
잘 변환되서 가는 것을 확인할 수 있습니다. [ 명령어 : route에서 debug ip nat ]
동적 NAT
토폴로지
정적 NAT할 때 처럼 Gig0/0에 inside, se0/0/0에 outside를 입력해 줍니다. 그리고 access list(ACL)설정을 해주면 됩니다.
Router(config)#access-list 10 permit 192.168.10.0 0.0.0.255
access-list [리스트번호] permit [사설IP네트워크 주소] [와일드카드마스크]
와일드카드 마스크는 일반 netmask를 반대로 적어주는 것 입니다. 255.255.255.0 → 0.0.0.255 이렇게 하면 둘 다 같은 역할을 수행하지만 서브넷마스크는 네트워크와 호스트 주소를 분리시키는 역할을 하기 위해 만들어져 연속하는 비트만 사용가능하지만 와일드 카드 마스크는 연속하지 않아도 사용할 수 있다는 특징이 있습니다.
access-list는 라우터에 접근하는 사설 IP의 목록들 입니다. 192.168.10.0 대역부터 시작하여 네트워크 주소를 갖는 모든 사설 IP에 대해서 동적으로 공인 IP를 배정해주고, 사용이 끝나면 회수 후 다른 곳에 사용할 수 있습니다. 이런식으로 하면 새로운 PC가 들어와도 자동으로 배정이 되어 굉장히 편리한 기능입니다.
Router(config)#ip nat pool Sunrin1 200.1.1.1 200.1.1.10 netmask 255.255.255.0
Router(config)#ip nat inside source list 10 pool Sunrin1
200.1.1.1부터 200.1.1.10까지 공인 IP pool를 만들고 이를 사용할 리스트 10에 붙여줍니다.
Router(config)#do sh ip nat trans
Pro Inside global Inside local Outside local Outside global
icmp 200.1.1.1:5 192.168.10.1:5 200.1.1.253:5 200.1.1.253:5
icmp 200.1.1.1:6 192.168.10.1:6 200.1.1.253:6 200.1.1.253:6
icmp 200.1.1.1:7 192.168.10.1:7 200.1.1.253:7 200.1.1.253:7
ping를 PC에서 보냈을 때 IP가 배정되었다는 것을 확인할 수 있습니다.
PAT
토폴로지
동적 NAT과 마찬가지로 access list(ACL)를 설정해줍니다
Router(config)#access-list 10 permit 192.168.10.0 0.0.0.255
이제 PAT 설정을 해줍니다
Router(config)#ip nat inside source list 10 interface se0/0/0 overload
Router#sh ip nat trans
Pro Inside global Inside local Outside local Outside global
icmp 200.1.1.254:36 192.168.10.1:36 200.1.1.253:36 200.1.1.253:36
icmp 200.1.1.254:37 192.168.10.1:37 200.1.1.253:37 200.1.1.253:37
icmp 200.1.1.254:38 192.168.10.1:38 200.1.1.253:38 200.1.1.253:38
icmp 200.1.1.254:39 192.168.10.1:39 200.1.1.253:39 200.1.1.253:39
PAT설정할 때 라우터의 인터페이스에 192.168.10.0 사설 네트워크를 붙였으므로, Inside global에 인터페이스 주소인 200.1.1.253이 붙어서 나갑니다. 또 나갈다 들어올 때 보트번호를 보고 원래의 출발지가 어디었는지 확인하여 라우터가 전달해 줍니다. 포트번호는 충분히 많이 있습니다.
'기능반공부 > 네트워크' 카테고리의 다른 글
[network] IT 네트워크 심화 수업 - 2 ( DNS, DHCP, DMVPN ) (1) | 2022.11.15 |
---|---|
[network] IT 네트워크 심화 수업 - 1 ( GRE, IPSec ) (0) | 2022.11.14 |
[네트워크] VLAN, Inter-VLAN (0) | 2022.02.09 |
[네트워크] 맥 주소 변환 + rip (0) | 2022.02.02 |
[기능반] 서버구축 3. (0) | 2022.01.28 |