天天看點

如何實作低成本site to site vpn?

    當企業有這樣的需求時,你該如何實作呢?

    公司有5個分部,都需要通路總公司内部資源。老闆要求使用較低的費用實作。最好不要使用專用裝置。你知道的,專用裝置價格都比較給力,性能缺不一定很好。

    我這裡給你一個簡單的解決方案:

    在總部的Internet Edge安裝一台OpenBSD Server, 各分公司的Internet出口處也安裝一台OpenBSD。通過GRE協定,在分公司和總公司的OpenBSD伺服器之間建立tunnel. 實作Site to Site ×××。 分公司區域網路和總公司的區域網路就可以互通。

     方案優點:

    1、成本低:你知道的,OpenBSD運作要求很低,512Mb記憶體的主機,10Gb硬碟,CPU嘛,現在能買到的都能滿足。

    2、實作簡單:總共不超過15條指令。

    缺點:

    1、GRE協定其實隻是重新封裝了資料包,并沒有對資料包進行加密,是以,如果是機密資料傳輸,最好能使用GRE報頭驗證,或者結合IPSEC使用。下一步我研究GRE+IPSEC方式。當然,IPSEC會損耗一定的性能。

    2、排故手段少:如果你按照步驟配置完,發現網絡不通,排查的手段比較少。這就考驗你的網絡知識的時候了。

    這裡假設總公司要和兩個分公司之間建立GRE Tunnel。下面是拓撲圖:

如何實作低成本site to site vpn?

配置步驟:

Site A OpenBSD Server:Tunnel to Site B,C

     1. route add default 218.4.144.2

     2. sysctl net.inet.ip.forwarding=1

     3. sysctl net.inet.gre.allow=1

     4. sysctl net.inet.gre.wccp=1

     5. ifconfig gre0 create

     6. ifconfig gre0 inet 172.16.1.1/24

     7. ifconfig gre0 tunnel 218.4.144.1 222.92.36.1

     8. ifconfig gre0 link0 up

     9. route add 192.168.2.0/24 172.16.1.2

     #配置到達Site C的GRE Tunnel

     10.ifconfig gre1 create

     11.ifconfig gre1 inet 172.16.2.1/24

     12.ifconfig gre1 tunnel 218.4.144.1 58.34.217.1

     13.ifconfig gre1 link0 up

     14.route add 192.168.3.0/24 172.16.2.2

    備注,如果要儲存配置,則需要做如下配置:

     在/etc/sysctl.conf檔案中,找到2,3,4步對應的内容,執行修改操作。

     建立/etc/hostname.gre0檔案,并把下面内容寫入:

     172.16.1.1 172.16.1.2 netmask 0xffffffff link0 up

     tunnel 218.4.144.1 222.92.36.1

     !route add -net 192.168.2.0 -netmask 255.255.255.0 172.16.1.2

     建立/etc/hostname.gre1檔案,并把下面内容寫入:

     172.16.2.1 172.16.2.2 netmask 0xffffffff link0 up

     tunnel 218.4.144.1 58.34.217.1

     !route add -net 192.168.3.0 -netmask 255.255.255.0 172.16.2.2

Site B OpenBSD Server:Tunnel to Site A

     1. route add default 222.92.36.2

     6. ifconfig gre0 inet 172.16.1.2/24

     7. ifconfig gre0 tunnel 222.92.36.1 218.4.144.1 

     9. route add 192.168.1.0/24 172.16.1.1

     備注,如果要儲存配置,則需要做如下配置:

     172.16.1.2 172.16.1.1 netmask 0xffffffff link0 up

     tunnel 222.92.36.1 218.4.144.1 

     !route add -net 192.168.1.0 -netmask 255.255.255.0 172.16.1.1

Site C OpenBSD Server:Tunnel to Site A

     1. route add default 58.34.217.2

     6. ifconfig gre0 inet 172.16.2.2/24

     7. ifconfig gre0 tunnel 58.34.217.1 218.4.144.1 

     9. route add 192.168.1.0/24 172.16.2.1

     172.16.2.2 172.16.2.1 netmask 0xffffffff link0 up

     tunnel 58.34.217.1 218.4.144.1 

     !route add -net 192.168.1.0 -netmask 255.255.255.0 172.16.2.1

備注:

     如果所有Site使用者還需要利用OpenBSD伺服器上網,那就要在伺服器上啟用NAT功能。可選的方案有很多。其實pf包過濾防火牆挺不錯的。如果不會,自己就搜尋一下吧。

繼續閱讀