NAT 종류에 대한 질문입니다

nanosecond의 이미지

안녕하세요

네트워크 공부를 갓 시작한 초보자입니다.

지금 공부중인 것이 NAT 구성에 관한 것인데요.

인터넷에서 NAT 종류에 대해서 검색을 해봤는데요.

크게 SNAT와 DNAT 두가지가 있던데요

어떤 글에서는 Static NAT와 Dynamic NAT라고 구분지었고

어떤 글에서는 Source NAT와 Destination NAT라고 구분해 놨더라구요;;

Static NAT와 Source NAT, 그리고 Dynamic NAT와 Destination NAT가 같은 말인가요? 다른 말인가요?

그리고 masquearade만으로 모든 NAT 설정이 가능한지요?

trim703의 이미지

Static NAT와 Dynamic NAT의 구분이라... 저는 처음 듣는군요.
어느 문서가 그렇게 구분해 놓은 건지 알려주실 수 있나요?

vhgksl의 이미지

Source와 Destination 으로 압니다. 말그대로 출발지와 목적지 IP
^^
----------------------------------------------------
Linux!! 니가 이기나 내가 이기나 끝까지 가봐야 안다!!

visualplus의 이미지

제가 아는 범위에서 말씀드리자면

마스쿼레이드는 NAT의 한 부분이라고 알고 있습니다.
저도 마스쿼레이드와 NAT의 차이점이 무엇일까가 궁금하여 검색을 많이 해보았지만
그냥 마스쿼레이드는 DHCP환경에서 사용하고 NAT는 고정ip환경에서 사용한다는것밖에 알아내지 못했습니다.
그래서 제가 내린 결론은 iptables에서 마스쿼레이드로 하게 되면 dhcp ip가 변경되도 자동으로 그 ip를 타고
나가도록 하게 된다라고 생각했습니다.

그리고 NAT는 크게 Source NAT(SNAT)과 Destination NAT(DNAT)이 있는데
SNAT은 출발지를 변경시키는 것 이고 DNAT은 목적지를 변경시키는 것 입니다.

가령 님이 회사 내 사설ip를 가지고 있는 pc가 인터넷이 되게 하려면 SNAT을 사용하는 것 이고
회사 내 웹서버를 사설로 설정하여 운영하고 싶다면 DNAT을 이용하면 됩니다.

마지막으로 Static NAT과 Dynamic NAT은 Static NAT은 말 그대로 고정된 NAT입니다.
사설 192.168.0.0/24 는 123.123.123.5로 SNAT을 해라.
( iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 123.123.123.5 )
와 같은 것 이고
Dynamic NAT은 동적으로 NAT하라는 것 입니다.
192.168.0.0/24는 123.123.123.1~10까지 대역으로 NAT해라 와 같이 쓰일 수 있겠지요
( iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 123.123.123.1-123.123.123.10 )

SNAT과 DNAT은 Source NAT, Destination NAT이지 Static NAT, Dynamic NAT은 아닌걸로 알고 있습니다.
( SLB도 Dynamic NAT에 들어갈 수 도 있겠다는 생각이 드네요.. )

저도 이 부분에 궁금한점이 많아 예전에 검색해봤던 것들을 기억을 더듬어 답변을 답니다..
아마 틀린부분도 있을거라 생각이 드네요..

익명 사용자의 이미지

Source NAT :

IP address 는 하나의 패킷 안에 Destination IP address 와 Source IP address 가 같이 적혀 있는데 이중에 Source IP address를 Translation (뭐, 주소를 바꿔치기 한다 그말입죠) 하는 기술을 말합니다. 방화벽을 예로 들자면 사설 IP 대역인 방화벽 안쪽에서 공인 IP 대역인 인터넷의 어느 서버로 패킷을 보낸다면, Source IP address를 사설 ip 인 채로 보내면, 돌아올 때 엉뚱한 데로 가게 되겠죠. 그래서 source ip address를 내가 속한 네트워크를 막아주고 있는 방화벽의 공인 IP로 바꾸어서 보내는 겁니다. 그러면 돌아올 때, 내가 속한 방화벽까지는 올테고, 방화벽이 내부의 사설 IP 대역을 알고 있는데다, 내가 보낸 세션 정보도 NAT 테이블을 통해 저장하고 있다가 연결해 주는 것입죵. 넹.

Destination NAT :

간단한 예로, 내가 방화벽 내에 서버를 하나 가지고 있다고 해보죠. 그러니까 방화벽 내의 내 서버는 사설 IP 주소를 가지고 있겠지요. 그런데 서버란 서비스를 해야 서버죠. 그러니 누군가 인터넷으로부터 들어와야 되는 것입죠. 그런데, 사설 IP 대역에 들어있는 내 서버에 어떻게 들어올 수 있냐? 이겁니다. 그래서 방화벽에 공인 IP 주소를 부여하고 인터넷 사용자들이 해당 공인 IP 주소를 Destination IP address 로 해서 패킷을 보내면 방화벽에서 Destination IP address 를 사설 IP 대역의 내 서버로 바꾸어서 전달하는 겁니다. 요럴 때, Destination IP address 를 설정해 주어야 하겠죠. Source IP address를 이해하셨으면 이것도 바로 이해하셨을 테니 요기서 스톱 앤 넥스트.

Static NAT :

고정된 NAT라고 번역할 수 있을 듯. 그러니깐, IP 주소의 변환이 항상 같은 주소로 변환되는 것을 말합니다. 1:1 NAT라고 하는 게 예가 되겠죠.

Dynamic NAT :

변동하는 NAT라고 할 수 있겠죠? 예를 들어 공인 IP 주소를 C-class 하나 받았다고 하죠. 그리고 방화벽 내부의 사설 IP를 쓰는 사용자에게 인터넷을 사용할 수 있도록 허용한다고 합시다. 그런데 그 사용자에게 꼭 공인 IP 주소를 배정해야 할까요? 아니지요. 귀찮잖아요. 그냥 아무 공인 IP나 C-clsas 중 하나 (엄밀히 말하면 C-class 전부를 사용할 수는 없젰지만) 아무거나 쓰면 되지요. 남들이 안쓰고 있는 걸루다. 그럴 때, Dynamic NAT를 사용합니다. 내부 사설 IP 대역의 사용자가 어떤 사설 IP 주소를 가지고 있든지, 인터넷으로 패킷을 보낼 때는 적당히 C-class 의 공인 IP 주소 중 남이 쓰고 있지 않은 주소를 하나 물고 나가는 겁니다. 그러니 사용할 때마다 매칭되는 IP 주소가 달라질 수 있지요.

정리들이 되셨을지요.
손아파요. 이만 총총.

익익의 이미지

너무나 깔끔한 설명에 감탄합니다. 덕분에 저 4가지의 NAT가 다 다르다는 것을 확실히 인지하고 갑니다~

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.