satan 通过 Google 阅读器发送给您的内容:
GRE(Generic Routing Encapsulation,通用路由封装)协议是对某些网络层协议(如IP 和IPX)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如IP)中传输。GRE采用了Tunnel(隧道)技术,是VPN(Virtual Private Network)的第三层隧道协议。Tunnel 是一个虚拟的点对点的连接,提供了一条通路使封装的数据报文能够在这个通路上传输,并且在一个Tunnel 的两端分别对数据报进行封装及解封装。
很多人都把隧道描写成一个专用的管子,我觉得这容易造成理解上的误区,当然你看到的结果的确像在一个专用的管子里那样通讯,我更喜欢把隧道看成一个装在大信封里面的一个小信封和一封信。因为不管理论如何,你的数据包还是要实实在在的,通过现有的网络、路由,一步一步的传送过去,这个是不可能省略掉的。
什么时候需要用到GRE ?最简单的例子,互联互通的情况下,我们在南方电信连北方网通,可以通过gre转发来达到更好的效果。简单实例配置如下:
环境:centos 5.5
GRE服务器IP 116.211.224.137 (虚构IP,如有雷同纯属巧合)
访问源IP 222.73.221.220
查看是否有gre模块
[root@localhost ~]# lsmod |grep ip_gre
自动加载模块
[root@localhost ~]# modprobe ip_gre
[root@localhost ~]# lsmod |grep ip_gre
ip_gre 17121 0
查看当前隧道情况:
ip tunnel show
116.211.224.137(gre转发服务器)设置
iptables添加以下信息
1 2 3 | iptables -t nat -A POSTROUTING -s 172.16.1.1 -j SNAT --to-source 116.211.224.137 iptables -A INPUT -p tcp -s 222.73.221.220 -j ACCEPT iptables -A INPUT -p gre -s 222.73.221.220 -j ACCEPT |
然后打开ip转发
echo 1 >/proc/sys/net/ipv4/ip_forward
/root/gre.sh 添加以下信息:
1 2 3 4 5 | ########222.73.221.220 ip tunnel add net_220 mode gre remote 222.73.221.220 local 116.211.224.137 ttl 255 ip link set net_220 up ip addr add 192.168.1.1 dev net_220 ip route add 172.16.1.0/24 dev net_220 |
访问源 配置 222.73.221.220
/root/gre 下面有:
gretunnel_137.sh
1 2 3 4 5 6 7 8 | #!/bin/bash ip tunnel del net_octopod modprobe ip_gre ip tunnel add net_octopod mode gre remote 116.211.224.137 local 222.73.221.220 ttl 255 ip link set net_gre137 up ip addr add 172.16.1.1 dev net_gre137 ip route add 192.168.1.0/24 dev net_gre137 route add -net 123.129.213.0/24 net_gre137 |
route add -net 123.129.213.0/24 net_gre137 即通过222.73.221.220 访问 123.129.213.0网段IP的时候,将通过GRE转发
iptables设置
iptables -A INPUT -p gre -s 116.211.224.137 -j ACCEPT
注意防火墙的设置。这样GRE转发搞定。
参考资料:
http://wenku.baidu.com/view/699d9749cf84b9d528ea7a82.html
http://www.chinaunix.net/old_jh/4/1055425.html
可从此处完成的操作:
- 使用 Google 阅读器订阅JackZou 的博客
- 开始使用 Google 阅读器,轻松地与您喜爱的所有网站保持同步更新
没有评论:
发表评论