2012年6月26日星期二

linux gre 转发配置

 
 

satan 通过 Google 阅读器发送给您的内容:

 
 

于 12-6-15 通过 JackZou 的博客 作者:jackzou

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


 
 

可从此处完成的操作:

 
 

没有评论:

发表评论