作者 主題: 使用H323 (Netmeeting) 不必重新編譯核心  (閱讀 6077 次)

0 會員 與 1 訪客 正在閱讀本文。

roy

  • 懷疑的國中生
  • **
  • 文章數: 38
    • 檢視個人資料
之前為了要讓NAT Client能正常使用Messenger裡的語音交談和Netmeeting,得要先將 Kernel 裡的 iptables上patch,然後重新編譯核心,編得我是滿頭包…和大家分享一個不用重新編譯的方法,希望對大家有用…

NAT Gateway 環境
Kernel:2.4.18-10 or 2.4.18-17 都可正常運作 (Redhat RPM)
iptables V1.2.5
int_if ==> 對內Internal Interface ==eth0
ext_if ==> 對外External Internal == eth1
ext_if_ip ==>對外真實IP  
 
Client 環境
W2K Server,Messenger 5.0,DirectX 8.1,Real IP
W2K Pro,Messenger 5.0,DirectX 8.1,Private IP behind NAT
根據小弟看討論區的印象是,DirectX 8.1必裝,而Messenger要5.0才能夠傳檔,若為4.6 or 4.7傳檔似乎有問題。
       
Step 1. 安裝UPNP SDK
     
先到 http://sourceforge.net/project/showfiles.php?group_id=7189&release_id=48406 下載upnpd sdk
 
$>>tar zxvf upnpd.tar.gz
$>>cd upnpsdk-1.0.4
修改 src/ssdp/ssdplib.c, 第406行
SelfAddr.sin_addr.s_addr = inet_addr(SSDP_IP);
改成
SelfAddr.sin_addr.s_addr = htonl(INADDR_ANY);
$>>make DEBUG=1 ; make install
啟動Debug功能,修改 syslog.conf *.debug[tab] /var/log/debug
restart syslog,若有問題,可將相關資訊Post到IGD的討論區給作者解答
     
Step 2. 安裝IGD
     
http://sourceforge.net/project/showfiles.php?group_id=52728 下載Internet Gateway Device
     
$>>tar zxvf gateway-0.75.tar.gz
$>>make;make install
$>>upnpd ext_if int_if
 
Step 3. Routing & Iptables
 
$>>route add -net 239.0.0.0 netmask 255.0.0.0 int_if
$>>echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf or echo "1" > /proc/sys/net/ipv4/ip_forward
$>>iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to ext_if_ip
 
經過測試,H323必需要 Private IP call Real IP,Voice & File Transfer兩邊皆可呼叫使用 另外,這對ICQ的File Transfer沒有幫助,還是只能Private IP 傳給 Real IP,有個 Reaim的Project好像可以解決這個問題( http://reaim.sourceforge.net ),但我裝了之後,UPNP就失效了…有空再來試試看, 至少再也不必去編Kernel,不過,不知道這個Daemon能承受的了多少Client? 還有,若是兩邊皆為Private IP,NAT都跑UPNP不知道是否能夠work,就請大家試試了…^^