原文:

http://www.senra.me/configure-common-gre-and-ipip-tunnel-under-centos/

一.介绍

Tunnel,也就是隧道,在Linux中使用还是挺广泛的,从常见的安全加密类的隧道到更多是服务器互联使用的GRE/IPIP隧道,种类还是挺多的。之前我写的内网穿透系列就提到了一部分隧道,感兴趣的可以去看看——>传送门

当然,这次我们不提那些需要额外安装依赖或者软件的,主要说比较原生的,需要注意的事,这些虽然原生,但是大多需要内核模块支持,这也就意味着很大可能无法在OpenVZ上正常使用(就算有tun和tap也不够),所以建议使用KVM等其他虚拟化架构的VPS或者独立服务器实验。

二.配置

仰慕搞全球大内网的大佬,因为对隧道也有了点兴趣,不过种类确实不少,也不是一直能用到,所以在这边做下收集和记录,方便自己或者其他有需求的人看。

另外,这些隧道的用途是承载其他数据,不带IPSec就连加密都没了,所以如果用于传输重要数据请使用带加密的方式,比如,你要传输文件可以跑个rsync或者scp啊ftp啊啥的。

由于DEB系和RHL系的网络配置文件格式不太一样,所以我这边就只写CentOS(也就是RHL的了)

另外,请确保iptables规则对隧道两端都开放

这边我只介绍最常见的GRE以及IPIP,因为EOIP在Linux下需要额外对内核Patch,而IPSec真的比较烦人。另外推荐WireGuard——>传送门

GRE

需要模块:ip_gre

使用lsmod|grep ip_gre检查

 
1
2
3
4
5
6
#立即加载模块
ip_gre
 
#开机加载模块
modules
modules

Host1:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
EOF
tun0
none
#开机启动(这儿没启用)
no
GRE
#对端外部(联网的)IP
1.2.3.4
#对端隧道IP
192.168.0.2
#对端外部(联网的)IP
192.168.0.1
EOF
 
#启用隧道
tun0

Host2:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
EOF
tun0
none
#开机启动(这儿没启用)
no
GRE
#对端外部(联网的)IP
4.3.2.1
#对端隧道IP
192.168.0.1
#本地隧道IP
192.168.0.2
EOF
 
#启用隧道
tun0

IPIP

需要模块:ipip

使用lsmod|grep ipip检查

 
1
2
3
4
5
6
#立即加载模块
ipip
 
#开机加载模块
modules
modules

Host1:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
EOF
tun0
none
#开机启动(这儿没启用)
no
IPIP
#对端外部(联网的)IP
1.2.3.4
#对端隧道IP
192.168.0.2
#对端外部(联网的)IP
192.168.0.1
EOF
 
#启用隧道
tun0

Host2:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
EOF
tun0
none
#开机启动(这儿没启用)
no
IPIP
#对端外部(联网的)IP
4.3.2.1
#对端隧道IP
192.168.0.1
#本地隧道IP
192.168.0.2
EOF
 
#启用隧道
tun0

 

三.其他

①.调整隧道MTU(两端都需要)

调整后需要重起隧道(ifdown然后ifup)

 
1
1500

②.启用ipv4转发以及关闭rp_filter

 
1
2
3
4
5
6
7
8
9
10
#立即关闭
ip_forward
rp_filter
#注释掉默认配置
conf
#修改配置
conf
conf
#生效配置
p

③.添加静态路由

这个有多种方法

 
1
2
3
4
5
6
7
8
#单个IP走隧道
隧道接口名
 
#指定网段走隧道
dev 隧道接口名
 
#也可以用这个
隧道接口名

PS.我一直是route add -host 8.8.8.8 dev 隧道接口名 然后mtr 8.8.8.8 这样来测试隧道有没有通的

也可以做成路由表类型的

 
1
2
3
4
5
#添加路由表条目,数字代表优先级,看着办
rt_tables
#为该表添加默认路由
路由表名
#指定某个来源的IP走路由表

对端建议添加对应路由以便回源

 
1
隧道接口名

④.配置iptables(可选NAT)

这个基本上就是要做全转发才要的,看需求吧

 
1
2
3
#隧道入口
1.2.3.4
192.168.0.1

如果还不通(理论上不应该),可以加条这个

 
1
MASQUERADE

相关文章: