이럴땐 패킷이 어디로 가는건가요???.
글쓴이: skah2lp2 / 작성시간: 일, 2005/04/10 - 8:37오후
패킷 스캔 프로그램을 하나 만들었구요...
..컴퓨터가 두대가 있는데 하나는 윈도우이고 하나는 리눅스 입니다.
리눅스와 윈도우는 연결되어있습니다.
윈도우 쪽에 이더넷 카드를 두개 꽂고
사설아이피를 192.168.123.1 로 설정(게이트웨이로 쓸예정)
공인 아이피는 203............ 입니다.
리눅스쪽입니다.
리눅스에 사설아이피를 192.168.123.100 으로 설정을 하고.
리눅스 명령차에서 route를 찍어 보면 분명
디폴트 게이트웨이가 192.168.123.1 으로 나옵니다.
패킷이 적절한 경로를 못찾을 경우에는 디퐅트 게이트웨이 쪽으로 빠져 나간다고 알고 있거든요...
제가 실제로 네트워크상에 없는 아이피로 핑을 날려 보았는데..
이 패킷들이 디폴트 게이트웨이로 흘러들어가야 정상이 아닌가요?
비록 도착목적지가 없다고 하더라도...
ping 203.244.....외부로 하나..
ping 192.168.123.2 내부로 하나..
이렇게 날려 보았는데..
외부로 보낸 핑은 응답조차 없구요..
내부로 보낸건 unreachable .....
제가 하고 싶은건...어떤 목적지를 가지든간에..
이패킷들이 디폴트 게이트웨이로 흘러 들어가서..
윈도우 쪽의 스캔프로그램에 잡히는겁니다.
..스캔 프로그램은 ipFilter driver, 훅드라이버를 이용해서
만들었습니다.
이게 문젠가.--;;
Forums:
라우팅이나 nat 기능이 없는 경우흘러들어온 패킷이 자기에게 해당되는
라우팅이나 nat 기능이 없는 경우
흘러들어온 패킷이 자기에게 해당되는 것이 아니면
씹습니다.
98se나 2000이후의 ics기능이 활성화되어 있다면 나가죠.
추가해서 윈도우는 패킷 포워딩을 안해주는 걸로 압니다.
리눅스는 /proc/sys/net/ipv4/ip_forward를 1로 세팅하면
패킷 포워딩을 하게 됩니다. (=static routing)
Written By the Black Knight of Destruction
그니깐. 제가 할려는게...
지난번에도 네크로멘서 님이 답변 주셨던거 같던데..
..최종 목적이 아이피 공유 인데..
모든 패킷은 ipFilter 드라이버를 거치는게 아닌가요?
..패킷을 씹어 버린다는게..
ip Filter Driver 로 가기전에 이미 윈도우에서 Drop 시켜 버리다는 의미인가요?
그럼 리눅스 쪽에서 보내는 패킷이 디폴트 게이트웨를 통해서 빠진다는 건가요?
패킷을 안씹게 할려면 어떻게 해야 하는거죠??
..
이렇게 질문만 난잡하게 드려서 죄송합니다. ...-_-;;
..
우선192.168.123.2 로 보내는 것은같은 네트웍 상에
우선
192.168.123.2 로 보내는 것은
같은 네트웍 상에 있기때문에
디폴트 라우터로 가지 않고 바로
mac주소를 불러서 갑니다
mac주소를 모르면 먼저 arp가 나가게 되구요
그래도 mac값을 알 수 없으면 보낼 수 없기에 Destination unreachible 메시지가 납니다.
한번 tcpdump로 캡쳐해 보세여 보이게 될겁니다.
두번째로 패킷을 씹는다는 의미는
이렇습니다.
자신의 맥주소로 옴에도 불구하고 자신의 IP가 목적지 주소가 아니면
그 패킷을 처리 하지 않는 다는 것입니다.
리눅스의 경우 ip_forward값을 1로 해주면 그때부턴 라우팅을 해주고
윈도우의 경우는 잘 모르겠네요
세번째로 만약 라우팅을 해주더라도 request time out이 납니다.
왜냐면 자신의 IP가 공인 IP가 아니기 때문이죠
누구에게 답장을 바라는 편지를 보낼때, 말하자면
아파트 이름을 말하지 않고 동만 말하게 되는 셈이죠
(이 개념은 사실 완전히 틀린개념입니다 ^^ 쉽게 설명하자면)
103동으로 응답을 줘~ 라고 하면 답장을 보내는 입장에서는
-_-;; 이죠.. 그래서 응답이 없기때문에 request time out이 납니다.
더욱 정확하게 세번째 이야기를 하자면
내부망으로 쓰기로 결정된 주소 대역들이 있습니다.
10.X.X.X 대역과 172.19.X.X.X(172대역도 많을텐데 기억이 -_-)
그리고 192.168. 대역 이것들은 내부망 주소기 때문에
실제로 절대 라우팅이 될 수 없습니다.
C++, 그리고 C++....
죽어도 C++
일단 패킷 스누핑(감시)을 위한 네트워크 구조와단순 NAT(IP공유)
일단 패킷 스누핑(감시)을 위한 네트워크 구조와
단순 NAT(IP공유)를 위한 네트워크 구조는 차이가 납니다.
(필요한 호스트수 및 각각 호스트의 네트워크 설정등)
목적이 다르기 때문이지요..
물론 동일한 환경으로 구축할 수는 있어도...
양쪽의 추구하는 목적의 차이로 커버할 수 없는 영역이 발생하게 됩니다.
일단 2대의 호스트를 가지고 NAT 및 감시를 병행한다면,
내부(192.168.X.X)쪽의 목적지를 향하는 패킷은 포기하시는 편이
바람직합니다.
물론 가로챌수는 있지만, 정상적으로 네트워킹이 동작하지 않을 가능성이
높기 때문이지요.
하여튼 기술적으로 전제되어야 할 것들은 다음과 같습니다.
일단 M$운영체체에서 이것이 NAT(게이트웨이)로
동작하기 위한 세팅(ics나 기타 소프트웨어)이 마무리 되어야
리눅스에서 외부(실제 IP)로 패킷을 보낼 수 있습니다.
NAT이건 단일 패킷이건 경로를 결정하는 것에
가장 지대한 영향을 미치는 것은 라우팅 테이블입니다.
나머지 리눅스 박스에서 발생하는 모든 패킷을
M$운영체제를 경유시키기 위해서는
리눅스쪽의 라우팅테이블을 변경하거나
내부쪽 서브넷등을 적절히 지정하면 됩니다.(ex. 255.255.255.252)
서브넷을 이용하는 것은 자기자신의 IP를 포함한
3개의 목적지(IP)를 제외하고는 모두 NAT를 경유하게 됩니다.
라우팅 테이블을 이용한 것은 모든 패킷을 게이트웨이쪽으로
보낼 수 있으나, 정상적인 경로가 아님으로 일부 목적지로 향하는
패킷이 정상적으로 도착하지 않습니다.
[quote="ixevexi"]더욱 정확하게 세번째 이야기를 하자면
라우팅은 되는데... 외부망엔 이 대역대의 IP가 없음으로
라우팅이 안될 뿐입니다.
[quote="Anonymous"][quote="ixevexi"]더욱
맞습니다 ^^
라우팅은 됩니다. 실제로
라우터들사이에 시리얼구간등은 192대등의
사설 IP로 연결된 경우들이 있습니다.
C++, 그리고 C++....
죽어도 C++
[quote="ixevexi"][quote="Anonymous"][quo
제가 건방지게 천언한 것 같아서 죄송합니다. ^^
..사설아이피가.. 밖으로 못나간다는건..알구요...-_-;;
...답답한게...
아이피 변환하는거까지 다 코딩을 해놨는데..
..정작.. ipFilter Driver 의 훅드라이버에서 패킷들이 잡히지않으니..-_-;;
..그래서..문제...
지금 방금 ms에서 ics 쪽을 봤는데요...
..흠...이걸 설치하면...굳이 프로그램을 짤필요가 없을듯 싶은데???
아닌가요????
//*퍼온거..
예를 들어, ICS 내부 어댑터의 IP 주소는 192.168.0.1이고 외부 ICS 어댑터는 인터넷 서비스 공급자(ISP)가 할당한 156.59.23.100의 IP 주소를 갖습니다. 클라이언트는 TCP/IP 패킷을 포트 80의 인터넷에 있는 131.125.13.1의 웹 주소에 보냅니다. 패킷에는 다음 정보가 포함됩니다.
대상 IP 주소= 131.125.13.1(인터넷 대상 주소)
원본 IP 주소= 192.168.0.2
대상 포트= 80
원본 포트= 2000(프로그램에서 설정)
131.125.13.1은 192.168.0.x 주소 범위에 포함되지 않기 때문에 패킷은 기본 게이트 역할을 수행하는 ICS 컴퓨터로 향합니다. ICS 컴퓨터는 새 패킷을 생성하여 131.125.13.1의 웹 페이지로 보냅니다. 패킷에는 다음 정보가 포함됩니다.
대상 IP 주소= 131.125.13.1
원본 IP 주소= 156.59.23.100(ISP가 ICS 외부 어댑터에 할당한 IP 주소)
대상 포트= 80
원본 포트= 3000
//*
제가 하려는게 위의 퍼온내용이 중심인데...
...
..
.--;;
Re: ..사설아이피가.. 밖으로 못나간다는건..알구요...-_-;;
네..
만약 공유기(NAT)를 만드시는 것이 목적이었다면...
그렇습니다.
m$ 98 SecondEdition부터 운영체제 cd에 기본으로
포함되어 있습니다.
프로그램 추가삭제 중
Windows 구성요서 추가제거(98/me의 경우)에서
추가설치할 수 있습니다.
2k이후 부터는 모르겠습니다.
네트워크 설정에 포함되어 있는지...
댓글 달기