Was this page helpful?

建立 Asterisk 間的VPN連線- n2n

    n2n - 這是一個開源的 P2P VPN 套件,由知名也是開源的網管軟體-ntop 的作者所開發,軟體特色有:

    • 開放原始碼的套件
    • 建立連線時毋需通過第三方的主機認證
    • 可獨立運作,無須仰賴官方主機的介接,安全性高。
    • 可適用 NAT 防火牆環境。
    • 可建立多個n2n網路組。
    • 容易安裝及使用。
    • 如果使用公用的 supernode,則所有的node 都不需要佔用到 public IP。
    • 不需要建立 central server,各 node 之間即可以作連線。

    什麼是 P2P VPN?
    一般較常被使用的 VPN 類型有 IPSec、PPTP、SSLVPN,這些通常應用在 PC to Site 或 Site to Site 的連線模式,然而還有另一種類型被稱為 P2P VPN - 點對點 VPN,顧名思義,這是一種點對點建立VPN 的方式,這樣的方式應用在 IP PBX的跨網連線是最適合不過的,比較典型的工具目前有 Hamachi 及 n2n。由於 Hamachi 並非是開源軟體,而且建立連線的過程還需仰賴官方的主機作認證及介接,所以我們選擇另一個 n2n 軟體作為 IP PBX 跨網的 VPN 連線方案。

    n2n 網路架構示意圖

    n2n-arch.png 

    n2n 網路運作示意圖

    n2n-talk.png 

    Getting Start

    假設案例:台灣 Elastix A與美國 Elastix B 需以 VPN 互連,且兩主機都在 NAT 防火牆內。

    台灣 Elastix A ---> Firewall <-------------- n2n VPN network --------------> Firewall ---> 美國 mElastix B

    由於 n2n 屬於 P2P VPN 類型,這個與其他的 VPN類型最大不同就是,沒有 Server-Client 架構,所有 VPN 網路上的 node 都是 Client,雖然每一個 Client 之間需要有共同的 supernode 才能在網路上互相溝通,但任一個 Client 都可兼具 supernode 的角色,所以在以下的軟體安裝說明,不會區分 Server-Client,而是區分所執行的作業系統。

    P.S 因為 Windows 版的 n2n 預設是不包含 supernode 功能,如果需要這,請向原作者ntop購買。 

    n2n 軟體安裝

    如果使用 CentOS 5.2(Elastix) 作業系統,可下載筆者打包的 RPM 安裝檔-n2n-1.3-1.el5.i386.rpm,然後在系統上執行 rpm -ivh n2n-1.3-1.el5.i386.rpm 即可。

    安裝 RPM 完後,還需複製本站所製作的服務啟動檔,作法請參考下方 設定自動啟動 章節。

    若是其他作業系統,請使用以下步驟安裝:

    #>yum install subversion gcc
    #>cd /usr/src
    #>svn co https://svn.ntop.org/svn/ntop/trunk/n2n

     - Fingerprint: 24:bf:8f:03:c1:f0:fe:72:3f:d2:d0:dd:9a:c9:d0:1b:7b:ab:56:34
    (R)eject, accept (t)emporarily or accept (p)ermanently? p <--

    #>cd n2n
    #>make
    #>make PREFIX=/opt/n2n install
    
    手動建立連線
    #>/opt/n2n/sbin/edge -d n2n0 -a 10.9.9.1 -c mypbxnet -k mypass -l 88.86.108.50:82 &
    #>ifconfig n2n0
    

    n2n0      Link encap:Ethernet  HWaddr 6E:45:BE:68:F3:AA
              inet addr:10.9.9.1  Bcast:10.9.9.255  Mask:255.255.255.0
              inet6 addr: fe80::6c45:beff:fe68:f3aa/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1400  Metric:1
              RX packets:88 errors:0 dropped:0 overruns:0 frame:0
              TX packets:87 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:500
              RX bytes:8676 (8.4 KiB)  TX bytes:9994 (9.7 KiB)

    *如果有看到以上訊息,表示安裝及建立VPN連線測試成功。在繼續下個步驟前,先執行下述指令中斷這個連線。
    #>killall edge

    設定自動啟動

    下載 A.Lang 寫的系統啟動檔-n2nvpnd,使用前,請先調整主要參數符合自己需要,參數說明如下:

    n2n_DHCP        是否啟用 DHCP 連線,如果啟用,IP 位址將由其他的 DHCP 主機自動分配(請先確定n2n網路上有 DHCP 機制)。
    n2n_IP              設定連線後的 VPN IP,在同一個 community name ,各節點的 IP 位址不可重複。
    n2n_cname        網路名稱(community name),同一個網路名稱的不同節點可互通。
    n2n_pass          網路密碼,網路名稱的連線密碼。
    SNODE_Host     Supernode 主機位址,格式為 IP:Port。
    SNODE              開啟 Supernode 模式,預設是關閉。
    SNODE_PORT    啟用 Supermode 時所用的通訊埠號。

    *各節點必須連接同一個 Supernode 主機且網路名稱相同才可以互連。
    *有一個公用 Supernode 主機可用,位址是 88.86.108.50:82。
    *如果有安全性考量,也可以使用自己的主機作為 Supernode,只要修改啟動檔參數 SNODE=on,且 Supernode 主機若位於防火牆內,必須開通 SNODE_PORT 所設定的通訊埠。

    *注意* 如果使用 RPM 方式安裝,啟動檔的參數請改成:
    N2N_DIR=/usr

    #>cd /usr/src
    #>wget http://www.osslab.org.tw/@api/deki/files/943/=n2nvpnd
    #>mv n2nvpnd /etc/init.d/
    #>chmod 0755 /etc/init.d/n2nvpnd
    #>chkconfig --add n2nvpnd
    

    以上完成後,系統在開機時會自動啟動 n2n 連線。

    如果需要手動建立連線或中斷連線,請執行:
    #>service n2nvpnd start
    #>service n2nvpnd stop

    補充:設定 DHCP

    如果要使 node 在建立 VPN 連線時完全不用作 IP 設定,可以在同一個 community name 的任一個 node 啟用 DHCP 服務,具體步驟如下:

    // 如果還沒安裝 DHCP 套件,請執行
    #>yum install dhcp

    // 設定 DHCP
    #>vi /etc/dhcpd.conf

    ddns-update-style interim;
    ignore client-updates;
    default-lease-time 604800;
    max-lease-time 1209600;
    subnet 10.9.9.0 netmask 255.255.255.0 {
    #option routers 192.168.1.254;
    option subnet-mask 255.255.255.0;
    #option domain-name "sqes.hcc.edu.tw";
    #option domain-name-servers 163.19.1.1;
    range dynamic-bootp 10.9.9.10 10.9.9.100;
    } 

    紅字部份請自行修改

    #>vi /etc/sysconfig/dhcpd

    DHCPDARGS=n2n0
    

     

    Windows 的軟體設定

    n2n 軟體 Windows 版
    http://www.vpnhosting.cz/n2nguien.exe

    IP Address/Port: 輸入 supernode IP 位址及通訊埠。
    Assigned IP: 如果是浮動 IP,請輸入 0.0.0.0。
    Group name: 請輸入n2n網路名稱,這與 Linux 連線的 community name 相同。
    Password: 請輸入連線密碼
    Advanced: 勾選 Enable packet forwarding through n2n community

    n2n_gui-1.png 

     n2n_gui-2.png

     

    Was this page helpful?
    標籤 (Edit tags)
    • No tags

    文件 6

    文件大小日期附件上傳者 
     n2n-1.3-1.el5.i386.rpm
    n2n RPM for CentOS-5
    42.22 KB10:57, 24 Jun 2009alang動作
     n2n-arch.png
    n2n Architecture
    38.76 KB00:23, 24 May 2009alang動作
     n2n-talk.png
    無描述
    29.45 KB00:26, 24 May 2009alang動作
     n2n_gui-1.png
    n2n GUI Setting
    11.02 KB17:03, 19 Jun 2009alang動作
     n2n_gui-2.png
    n2n GUI Advanced
    13.25 KB17:03, 19 Jun 2009alang動作
    n2nvpnd
    n2n Startup Script (DHCP support)
    3.83 KB17:43, 23 Jun 2009alang動作
    查看第5個(總5個)評論: 查看所有
    為什麼不用 OpenVPN ?
    發佈時間 07:45, 27 May 2009 ()
    雖然 OpenVPN 也可以完成這樣的規劃,不過就以 IP PBX 跨網的互連且不需要做到 LAN to LAN或 PC to LAN 等需求而言,採用 P2P VPN 的方案比較容易設定及使用,正所謂 殺雞焉用牛刀。
    發佈時間 12:18, 27 May 2009 ()
    應用 P2P VPN 還有個好處。
    如果想架設一個開放的 Elastix 供會員作測試平台,若使用 P2P VPN 來讓會員連接主機之用,可以避免與整個 LAN 串在一起,提昇網路內其他主機的安全性。
    發佈時間 12:25, 27 May 2009 ()
    是的,一直都是用openvpn没想到n2n的独到之处。
    学习了
    發佈時間 09:59, 30 May 2009 ()
    楼主,你好。我看了还是不明白怎么用,如果我在windows操作系统下,具体操作应该怎么样做?
    發佈時間 13:47, 26 Jun 2010 ()
    查看第5個(總5個)評論: 查看所有
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core