NAT를 구현하려고 하는데여..

글쓴이: 익명 사용자 / 작성시간: 월, 2011/09/19 - 5:51오후
NAT기능을 개발하려고 해요.
NAT 종류는 cone으로, Dynamic NAT를 구현하는데,
이게 좀 헷갈려서요..
사설 IP가 여러개이고 , 공인 IP도 여러개인데
저는 사설 IP-Port : 공인 IP-Port로 매핑을 해주려고 해요.
그러니까 목적지가 다르더라도 출발지가 같으면 같은 공인 IP-Port로 가는 거죠.
여기서 질문이 있어요~
1. 제가 하려는게 NAT-PAT 를 섞은건데 일반적인 NAT 장비도 이렇게 돌아가는건지.
2. 공인 IP를 매핑해 줄 때 어떤 방법으로 매핑을 해주어야 하는지(검색해 보니 IP Pool이란 개념이 있었는데
이 부분에 대해서 잘 모르겠어요ㅠㅠ)
3. 만약에 공인 IP의 IP, Port를 다 쓰면 어떻게 되는건지....ㅠㅠ
4. 외부에서 먼저 요청이 들어올 경우는 그 요청을 Drop 시켜야 하는건지.. (테이블에 내부 IP - 공인 IP 매핑 정보가 없으니깐요)
이상입니다.
NAT 구현해 보신 분 있으시면 설명해주시면 감사하겠습니다. ㅠㅠ
Forums:
NAT 기능을 직접 만들어본 사람은 흔치 않을 것
NAT 기능을 직접 만들어본 사람은 흔치 않을 것 같습니다. 운영 체제에서 이미 NAT 기능을 제공하니까요.
1. NAT 장비 중 어느 정도는 리눅스를 기반으로 하고 있을 텐데, 리눅스는 iptables의 SNAT, DNAT, MASQUERADE, NETMAP 타겟을 가지고 NAT 기능을 제공합니다. SNAT와 DNAT는 1:1 정적 NAPT, MASQUERADE는 동적 NAPT, NETMAP은 정적 NAT 정도라 할 수 있겠네요.
2. 개발하려고 한다 하셨는데 요구 사항을 물어보시면... 좀 어렵습니다. 할당 알고리즘은 정해졌는데 구현을 어떻게 해야 할지 고민이라는 말씀이신가요?
3. 사용할 주소:포트 짝이 바닥났을 때 어떡할지는 요구 사항에 따라야겠죠. 새로운 세션의 패킷 전달을 거절할 수도 있겠고 기존 세션 정보를 삭제할 수도 있겠고요. 근데... 주소:포트 쌍이 바닥나는 것도 쉽지 않을 일일 텐데요...
4. full cone NAT가 아니라면 drop이겠죠?
$PWD `date`
쉽게 구현하는 방법
NAT를 예전에 구현했던 사람으로서 간단하게 답변 드릴께요.
1. 예 NAT, PAT를 섞어야만 합니다. 그렇지 않고, NAT만 사용하면 Table refresh를 계속 짧은 시간에 해 주어야 합니다.
2. src-address , src-port, dst-address, dst-port 에 관련된 테이블을 어떻게 만드느냐는 개발하는 사람 마음이겠죠.
3. 다 사용하기전에 refresh를 해야 합니다. 만약 생긴다면 모두 지우고 비우는 것이 맞을 것 같습니다.
4. port forwarding을 사용하는 경우에는 요청이 들어와도 drop하면 안되겠죠.
chang
댓글 달기