![]() |
|
||||||||
경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지 |
|
1.
테스트 프로그램은 공유기 펌웨어가 게이트웨이 디바이스 프로파일로 구성되어 있는 것만 가정하였고... WAN 디바이스 프로파일을 고려하는 코드는 작성하지 않았기 때문에 공유기 프로파일이 다른 구성이라면... UPnP 인식이 안될 수도 있고.. 2. A/B 두개의 공유기를 각기 DHCP를 사용해서 구성한 것으로 볼 때... 공유기를 라우팅 모드로 구성해서 사용하고 있는 것 같네요. UPnP 프로토콜은 multicast 방식을 이용해서 인식정보가 교환되기 때문에... 라우터 간에 multicast 패킷이 오고가려면 라우터가 multicast 라우팅 기능을 갖고 있어야 합니다. 패킷이 Replication 되어야 하기 때문에 하드웨어적으로 구현되기 마련이고 전산망을 갖고있는 단체나 조직에서 사용되는 전용 라우터 장비 정도는 돼야 이런 기능을 갖고 있죠. 그렇다고 multicast 라우팅 기능이 없는 경우라고 해서, 기술적으로 전송이 불가능한 것은 아닙니다. multicast 패킷에 목적지 타겟이 정의된 ip 헤더구조를 래핑해줘서 unicast로 전송하는 일종의 터널링 기능을 구현해 주면되는데... 공유기 펌웨어를 건드리지 않는 이상 할수가 없죠. 위와 같이 공유기 2개로 구성되어 있는 경우에 UPnP 기능을 사용하기 위해선... 공유기를 브릿지 모드로 구성해 줘야 합니다. A만 DHCP를 enable 하고, B를 disable 하세요. 모든 장치들은 A에 의해서 private ip가 할당되고(유무선 상관없이) 같은 서브넷으로 묶이기 때문에 모든 장치들에(A에 연결되든 B에 연결되든 상관없이) multicast 패킷이 오고갈 수 있게 되고 UPnP 도 사용할 수 있게 됩니다. 브릿지 모드에서 B는 단순히 허브기능 역할만 하게 되는 거죠. 특정 유선 또는 무선랜카드가 multicast interface로 바인딩 될 수 있도록... 명시적으로 커널 네트웍 레이어에 아래와 같은 식으로 지정해 보세요.
IP6 는 생략하고... IP4만 가정 합니다. .... in_addr multicast_interface; multicast_interface의 ip를 해당 특정 유선 또는 무선랜카드의 Local IP (loopback이 아닌, 공유기 A로 부터 할당 받은 private ip)로... 명시적으로 지정하고... setsockopt(multicast_socket, IPPROTO_IP, IP_MULTICAST_IF, &multicast_interface, sizeof(multicast_interface)); 관련 글 리스트
|
Copyright © 1999-2015, borlandforum.com. All right reserved. |
제가 만든 프로그래은 왜안될까요 흑~