CentOS 配置tunnel實現機房之間內網互通

tunnel 技術能夠使不一樣地方的機房經過公網實現兩邊的機房內部的局域網互聯互通。html


如下是配置環境:linux

  

------------------------------------------INTERNET-----------------------------------------bash

        | 192.168.100.253/24| 10.6.88.229 <------> 10.6.88.223 |192.168.200.253/24| tcp

client1 |-      -     -     |   -     -    |      |    -    -  |   -      -    -  |client 2ide

        |    eth0(內網)   | eth1(外網) |      | eth1(外網 |  eth0(內網)    |        測試

-------------------------------------------------------------------------------------------ui

在10.6.88.229中配置:加密

 

 建立tunnel.sh腳本(多網段環境在下面腳本目標內網路由中加入相應的ip段便可)spa

   #!/bin/bash.net

   #加載路由模塊

   modprobe ipip

   modprobe ip_gre

   #添加隧道 ip tunnel add 隧道名 mode 協議 remote 遠端可通ip local 本地出口ip ttl 255(64)

   ip tunnel add tun30 mode gre remote 10.6.88.223 local 10.6.88.229 ttl 255

   #啓動隧道

   ip link set tun30 up

   #爲隧道增長虛擬ip

   ip addr add 172.16.10.1 dev tun30

   #增長路由,目標本機虛擬ip經過本機tun30隧道鏈接

   ip route add 172.16.10.1 dev tun30

   #增長路由,目標遠端內網ip經過本機tun30隧道鏈接

   ip route add 192.168.200.0/24 dev tun30 via 172.16.10.1

   #增長路由,目標遠端隧道ip經過本機tun30隧道鏈接

   ip route add 192.168.10.0/24 dev tun30 via 172.16.10.1

   #增長一個 arp 的響應機制及打開ip轉發功能

   #arp -Ds 192.168.100.253 eth1 pub   

   sysctl -w net.ipv4.ip_forward=1

   #隧道段ip的nat經過本地內網ip向外發送

   /sbin/iptables -t nat -o eth0 -A POSTROUTING -s 172.16.10.0/24 -j MASQUERADE

 


 在10.6.88.223中配置:

 

 建立tunnel.sh腳本(多網段環境在下面腳本目標內網路由中加入相應的ip段便可)

   #!/bin/bash

   #加載路由模塊

   modprobe ipip

   modprobe ip_gre

   #添加隧道 ip tunnel add 隧道名 mode 協議 remote 遠端可通ip local 本地出口ip ttl 255(64)

   ip tunnel add tun40 mode gre remote 10.6.88.229 local 10.6.88.223 ttl 255

   #啓動隧道

   ip link set tun40 up

   #爲隧道增長虛擬ip

   ip addr add 192.168.10.1 dev tun40

   #增長路由,目標本機虛擬ip經過本機tun40隧道鏈接

   ip route add 192.168.10.1 dev tun40

   #增長路由,目標遠端內網ip經過本機tun40隧道鏈接

   ip route add 192.168.100.0/24 dev tun40 via 192.168.10.1

   #增長路由,目標遠端隧道ip經過本機tun40隧道鏈接

   ip route add 172.16.10.0/24 dev tun40 via 192.168.10.1

   #增長一個 arp 的響應機制及打開ip轉發功能

   #arp -Ds 192.168.200.253 eth1 pub

   sysctl -w net.ipv4.ip_forward=1

   #隧道段ip的nat經過本地內網ip向外發送

   /sbin/iptables -t nat -o eth0 -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE


添加路由:


 client1與client2上分別加如下路由(多網段的環境直接加入相應IP段的路由便可)

  route add -net 192.168.200.0 netmask 255.255.255.0 gw 192.168.100.253

  route add -net 192.168.100.0 netmask 255.255.255.0 gw 192.168.200.253


 分別在10.6.88.229和10.6.88.223執行tunnel.sh腳本後就已經創建起tunnel了

 

 最後檢測下連通性,直接在client1上ping client2


-------------------------------------------------------------------------------------------


配置數據加密:

 

 安裝ipsec-tools

   wget ftp://ftp.pbone.net/mirror/ftp.pramberger.at/systems/linux/contrib/rhel5/x86_64/ipsec-tools-0.8.0-1.el5.pp.x86_64.rpm 

   wget ftp://ftp.pbone.net/mirror/ftp.pramberger.at/systems/linux/contrib/rhel5/x86_64/ipsec-tools-libs-0.8.0-1.el5.pp.x86_64.rpm 

   yum localinstall --nogpgcheck ipsec-tools-libs-0.8.0-1.el5.pp.x86_64.rpm ipsec-tools-0.8.0-1.el5.pp.x86_64.rpm

   

下面在 10.6.88.229 上創建ipsec 

  cat /etc/setkey.conf


   flush; 

   spdflush; 

   add 10.6.88.229 10.6.88.223 esp 11571 -E 3des-cbc "__esp_test_3des_password"; 

   add 10.6.88.223 10.6.88.229 esp 11572 -E 3des-cbc "__esp_test_3des_password"; 

   add 10.6.88.229 10.6.88.223 ah 15071 -A hmac-md5 "ah_test_password"; 

   add 10.6.88.223 10.6.88.229 ah 15072 -A hmac-md5 "ah_test_password"; 

   spdadd 10.6.88.229 10.6.88.223 any -P out ipsec  

           esp/transport//require  

           ah/transport//require; 

   spdadd 10.6.88.223 10.6.88.229 any -P in  ipsec  

           esp/transport//require;  

           ah/transport//require; 


 setkey -f  /etc/setkey.conf(激活配置文件,重啓後失效)

 echo "setkey -f  /etc/setkey.conf" >> /etc/rc.local(加入開機自啓動)

          


在10.6.88.223上建立setkey.conf

    cat /etc/setkey.conf


   flush; 

   spdflush; 

   add 10.6.88.223 10.6.88.229 esp 11571 -E 3des-cbc "__esp_test_3des_password"; 

   add 10.6.88.229 10.6.88.223 esp 11572 -E 3des-cbc "__esp_test_3des_password"; 

   add 10.6.88.223 10.6.88.229 ah 15071 -A hmac-md5 "ah_test_password"; 

   add 10.6.88.229 10.6.88.223 ah 15072 -A hmac-md5 "ah_test_password"; 

   spdadd 10.6.88.223 10.6.88.229 any -P in ipsec 

           esp/transport//require 

           ah/transport//require; 

   spdadd 10.6.88.223 10.6.88.229 any -P out  ipsec 

           esp/transport//require; 

           ah/transport//require; 

        

 setkey -f  /etc/setkey.conf(激活配置文件,重啓後失效)

 echo "setkey -f  /etc/setkey.conf" >> /etc/rc.local(加入開機自啓動)


測試:

 在10.6.8.229上執行如下命令,經過在client1上訪問client2。查看數據包中GRE轉變成AH且包含ESP數據證實加密完成

   tcpdump -n -i eth1 host 10.6.8.229


        

參考如下連接:

 

 http://blog.sina.com.cn/s/blog_5f3f20890100rerj.html

 http://www.chinaunix.net/old_jh/4/1055425.html

 http://www.54yw.com/?id=60

相關文章
相關標籤/搜索