Q:如何设置ip/ip或ip/gre tunnel构建VPN
A:通过ip/ip或ip/gre tunnel能够通过两个tunnel网关连接两个私有的网络
例如:
Public Network
------------------------------------
| 10.71.101.100/24 | 10.71.101.200/24
GRE Router A GRE Router B
| 192.168.0.1/24 | 192.168.10.1/24
| |
--------------------- --------------------
| Private Network A | | Private Network B |
| | | |
ClientA1 ClientAn ClientB1 ClientBm
192.168.0.10/24 192.168.10.10/24
如果没有设置tunnel,Private Network A是没有办法访问Private Network B中的机器的,设置
了tunnel之后,两个Private Network中的机器互相访问了。
所需的设置是主要是在两个GRE Router上设置的
GRE Router A的设置 (gre):
# modprobe ipgre
# ip tunnel add.netb mode gre remote 10.71.101.200 local 10.71.101.100 ttl 255
# ip link set netb up
# ip addr add 192.168.0.1 dev netb
# ip route add 192.168.10.0/24 dev netb
GRE Router B的设置 (gre):
# modprobe ipgre
# ip tunnel add neta mode gre remote 10.71.101.100 local 10.71.101.200 ttl 255
# ip link set neta up
# ip addr add 192.168.10.1 dev neta
# ip route add 192.168.0.0/24 dev neta
在Private Network A上的主机设置:
# route add default gw 192.168.0.1
在Private Network B上的主机设置:
# route add default gw 192.168.10.1
对ip/ip tunnel的设置可以通过加载ipip模块,并将ip tunnel命令中的mode改为ipip加以实现。