socket으로 connect 할때 src ip 바꾸기

cyrus의 이미지

일의 특성상

socket으로 서버에 connect할때 source ip 를 바꿔야 하는 일이 생깁니다.

raw 소켓으로 가능 할 것 같습니다만, 잘 모르겠습니다.

가능한지..

이런 작업을 해보신 분 계시면 도움을 주시면 감사하겠습니다.

쎄피로의 이미지

안녕하세요.

제가 질문을 잘 못 이해한건지는 모르겠습니다만...

그럼 현재는 어떤 IP에 접속을 하고 계신가요?

분명 스트럭에 설정을 해주셨을 텐데요...

지금 설정한 부분을 얼마든지 바꾸실 수 있지 않을까요?

이런 부분이 있을텐데요..소스에.

	struct  sockaddr_in server;
server.sin_addr.s_addr = inet_addr(??????);	

세상은 넓고, 할 일은 많은데, 난 숨만 쉬고 있니?

june8th의 이미지

raw socket을 이용하면 됩니다.

구글한테 물어보니..
http://ccl.cnu.ac.kr/~mhkang/raw_sockets.htm

cyrus의 이미지

좀더 자세한 설명을 덧 붙이자면

client ------ bridge ------------ server

처럼 연결 되어있을때

client에서 server로 요청하는 request를

DNAT로 bridge에서 소켓이 읽고

parsing을 합니다.

그리고 나서 bridge에서 server로 다시

request를 보내게 되는데

이때 연결을 client가 server로

request하는 것처럼 보이게 하기 위해서 입니다.

그냥 소켓으로 연결하면 source ip가 client가 아닌 bridge가 되어서

그것을 고쳐보고 싶습니다만..