server1 搭建gre隧道 server2
pc1 ping 通 pc2
范例:(基于H560N)
server1 IP:192.168.1.253
PC1 IP:192.168.2.3
server2 IP:192.168.1.3
PC1 IP:192.168.3.3
server1端配置:
#加载GRE模块
/sbin/modprobe ip_gre
#添加tunnel口
/sbin/ip tunnel add gre_tunnel mode gre remote 192.168.1.3 local 192.168.1.253 ttl 255
#设置tunnel的IP地址
/sbin/ip addr add 10.0.1.1 dev gre_tun1
#启动tunnel
/sbin/ip link set gre_tunnel up
#添加去往server2网段的路由
/sbin/ip r add 10.0.1.0/24 dev gre_tunnl
/sbin/ip r add 192.168.3.0/24 via 10.0.1.1 dev gre_tun1
server2端配置
#加载gre模块
/sbin/modprobe ip_gre
#添加tunnel口
/sbin/ip tunnel add gre_tun1 mode gre remote 192.168.1.253 local192.168.1.3 ttl 255
#设置tunnel ip地址
/sbin/ip addr add 10.0.1.2 dev gre_tun1
#启动tunnel
/sbin/ip link set gre_tunn1 up
#添加去往server1网段的路由
/sbin/ip r add 10.0.1.0/24 dev gre_tun1
/sbin/ip r add 102.168.2.0/24 via 10.0.1.2 dev gre_tun1
配置完毕后,隧道即建立起来,tunnel地址可以ping通。
出现问题:PC1 ping不通PC2,PC1能ping通server1的tunnel地址,但ping不通server2的tunnel地址
解决方案:打开server1与server2端的一个转发数据包
echo 1 > /proc/sys/net/ipv4/ip_forward
默认为0,开启内核转发功能。
IP地址ping指定网卡
ping 192.168.1.253 -I eth0/1
路由器工作的时候,根据它的某个端口收到的数据包的目的IP地址,查询路由器自己的路由表,然后决定把数据包转发到相应的端口。