ip tunnel不同网段打洞实现互通教程

如下图所示,pub1能和net1进行互通(都有10网段的ip),net1与pub2能互通(都有131开头的IP),但是pub1与pub2没办法互通,在不改变配置的情况下最简洁有效的方式就是用ip tunnel来打洞让pub1和pub2之间建立一个隧道直接进行互访。
ping
ping
ping
ping
实现pub1与pub2的互通
pub1\10.20.54.228
net1\10.22.4.222/131.1.1.3
pub2\131.1.1.3
在三台机器上打开加载ip_forward
echo "1" > /proc/sys/net/ipv4/ip_forward
modprobe ip_gre
在net1上设置
ip tunnel add name tun-dong mode gre remote 10.20.54.228 local 10.22.4.222
ifocnfig tun-dong 192.168.20.131 netmask 255.255.255.0 up

这里的意思可以理解为让net1和pub1用绳子链接起来然后打个结叫做tun-dong,然后给这个节点起个名字叫tun-dong,然后赋予一个ip地址可以看做是隧道洞口的一头。

在pub1上设置
1.ip tunnel add name tun-dong mode gre remote 10.22.4.222 local 10.20.54.228
2.ifconfig tun-dong 192.168.20.132 netmask 255.255.255.0 up
3.route add -net 131.1.1.0 netmask 255.255.255.0 gw 192.168.20.132

pub1上的设置和net1上的设置有点类似,只不过是remote和local换了一下,同时洞口的ip名字都一样,但是ip地址不一样,然后在pub1上设置路由,访问131网段的请求都转发到洞口ip。

在pub2上设置
1.route add-net 10.20.54.0 netmask 255.255.255.0 gw 131.1.1.3
2.route add -net 192.168.20.0 netmask 255.255.255.0 gw 131.1.1.3 

pub2上最大的不同是不需要打洞了,只需要添加路由网关就行。

你可能感兴趣的:(linux常见问题)