ip 없이 nat(MASQUERADE) 를 구현하려고 합니다.
안녕하세요? 병아리 개발자입니다. 개발자 에게는 해당 목표가
나왔을 때 구현이 가능하다 안하다는 명확한 판단을 할 수 있는 능력이 중
요하다고 생각합니다. 현재 IP 없이 NAT 를 구현하려고 합니다. 아직은
능력 부족으로 이게 구현 가능하다 안 하다라는 판단이 얼른 서지는
않습니다만, 일단은 구현 가능하다는게 제 생각입니다.
다음은 그에 다른 몇가지 질문인데요,
시스템에 IP 를 주지 않고 NAT 를 구현하려고 할 경우
커널의 NETFILTER 를 보면, NAT 관련 부분에서 routing table 을 참조하
여 gateway 를 바꿔주는 것으로 알고 있습니다.
IP 가 없게 되면, routing table 이 없게 되고, 그렇게 되면, 일반적으로는
Destination Unrechable 신호가 전송 될 것입니다만, interface 가
promisc 모드로 돌아 가고, NAT 시에 routing table 을 참조하지 않고,
직접 관리자로 부터 입력 받는 방법을 이용하면 될 것 같습니다만, 물론
이렇게 할려면, IP LAYER 중간중간에 routing decision 하는 곳, routing
table 을 참조하는 부분을 건너 뛰도록 한다는 전제 하에서입니다.
이에 대한 여러분들의 의견을 들어 보고 싶습니다. NETFILTER 관련하여
개발을 해 보신분이나, 특히 주의해야할 부분이나, 그건 불가능하다라는
등등의 경험 많은 분들의 의견을 들어 보고 싶은 겁니다. 특히 주의해야할
부분이나 꼭 신경 써야지 되는 부분등에 대해서도 많은 조언 해주셨으면
좋겠습니다.
그럼, 좋은 하루들 되십시오.
ip 없이 nat(MASQUERADE) 를 구현하려고 합니다.
NAT는 IP 위에 세워진 개념입니다.
첨엔 IP 고갈과 같은 문제를 해결하기 위해서요.
혹시 IP layer가 아닌 다른 레이어에서 조작하겠단 말씀인지?
IP없이 NAT box를 어떻게 접근할 수 있겠습니까.
일단 IP LAYER 로 모든 패킷을 끌어 올린다는 전제하에서 입니다
제가 정확한 상황 설명을 못 드린 것 같군요.
일단은 datalink 에서 ip layer 에서 올라올 때 패킷이 버려질 수 있는
모든 부분을 module 을 등록해서 통과 시켰다는 전제하에서입니다.
Re: 일단 IP LAYER 로 모든 패킷을 끌어 올린다는 전제하에서 입
제 말은 여전히 유효합니다.
kernel module로 모든 프로토콜 데이터를 처리한다고 해서 될 문제가
아닙니다.
ip가 없는 network card를 promisc mode로 돌리고 패킷을 켭쳐 해
보세요. 어떤 패킷이 주로 오는지?
결국 그렇게 구성했다고 하죠.
routing에 필요한 device 정보도 직접넣어주고, 소위 주소변환을 잘한다고
하죠. 근데 promisc mode 돌아 가는 NAT box가 성능을 제대로 내면서 역할
을 하리라고 생각하지는 않습니다.
bridge 와 비교해 크게 over head 가 클 것 같지는 않은데요?
성능이 문제 될 거라는 말씀이신거죠?
제 생각은 조금 다릅니다.
하단의 client(사설아이피를 가진) 수에 따라 다르겠지만, 제 생각에는 NAT BOX 에 그다지 큰 overhead 가 갈 것 같지는 않습니다. bridge 와 비교해 보면(bridge 역시 promisc mode로 돌아 가기 때문에) 단지 여기에 주소 변환 하면서 드는 overhead 만이 더 소용 될 것으로 보입니다.
Re: bridge 와 비교해 크게 over head 가 클 것 같지는 않은데요
bridge 디바이스가 ip가 없다면 브리지로 묶인 디바이스가 ip를 갖을 것
이고 그러므로 promisc mode로 돌더라도 정상적인 트래픽을 받는 것입니다.
salbang2님께서 시스템에 ip가 없다고 말한 것은 이더넷을 들자면 이더넷
디바이스에 ip가 없다고 얘기 하신 것이지요.
내부망에 묶인 디바이스는 늘 broadcasting을 해야할 상황이란 것이죠.
IP NAT란 의미로 알아듣고 첨에 얘기 했는데, Frame NAT 를 구현하고 싶어
한다고 얘기하는 것이 맞을 것 같네요. 검색 해 보세요. 참고할 사이트가 많을
껍니다.
댓글 달기