大家好呀,今天来介绍一下搭建GRE隧道的简单教程,把一台服务器的IP地址映射给另外一台服务器使用。之前写过一篇IPIP隧道的(https://hostloc.com/forum.php?mod=viewthread&tid=343926),这次介绍更好用的GRE隧道。
典型的使用场景:有一台SoYouStart大盘鸡,它有16个免费的IPv4,然而我们只需要用1个IP地址;另有一台Kimsufi杜甫,我们需要用它来生小鸡,但是没有多余的IP地址给它用。因此,我们就可以搭建GRE隧道,将SoYouStart的免费IPv4映射给Kimsufi杜甫使用。下面开始教程。
提供IP的服务器为A,接受IP的服务器为B。服务器A提供的IP地址为88.88.88.88,服务器B地址为99.99.99.99.
1, 在服务器上绑定IP.
以Ubuntu 20.04为例,编辑文件/etc/netplan/50-cloud-init.yaml,添加下面的语段:
- network:
- version: 2
- ethernets:
- 网卡名:
- dhcp4: true
- match:
- macaddress: 网卡MAC地址
- set-name: 网卡名
- addresses:
- – 88.88.88.88/32
然后输入命令让IP绑定生效:
- netplan try
- netplan apply
此时,如果你用SSH登录88.88.88.88,你应该能够登录上服务器A。
2, 启用GRE模块,以及前置准备工作
在两台服务器上分别执行
- modprobe ip_gre
- lsmod | grep gre
- apt-get install -y iptables iproute2
如果执行lsmod这步的时候看不到相应模块的显示,可能需要换内核。
然后,在服务器A上执行
- echo ‘net.ipv4.ip_forward=1’ >> /etc/sysctl.conf
- sysctl -p
3, 搭建GRE隧道
服务器A上执行:
- ip tunnel add qing.su mode gre local 88.88.88.88 remote 99.99.99.99 ttl 255
- ip addr add 10.0.0.1/30 dev qing.su
- ip link set qing.su up
服务器B上执行:
- ip tunnel add qing.su mode gre local 99.99.99.99 remote 88.88.88.88 ttl 255
- ip addr add 10.0.0.2/30 dev qing.su
- ip link set qing.su up
此时,在服务器A上ping 10.0.0.2或者在服务器B上ping 10.0.0.1,应该都能ping通。
4, 设置路由表、数据与端口转发
服务器B上执行:
- echo ‘100 SHC’ >> /etc/iproute2/rt_tables
- ip rule add from 10.0.0.0/30 table SHC
- ip route add default via 10.0.0.1 table SHC
服务器A上执行:
- iptables -t nat -A POSTROUTING -s 10.0.0.0/30 ! -o gre+ -j SNAT –to-source 88.88.88.88
- iptables -A FORWARD -d 10.0.0.2 -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT
- iptables -A FORWARD -s 10.0.0.2 -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT
- iptables -t nat -A PREROUTING -d 88.88.88.88 -p TCP -m TCP -j DNAT –to-destination 10.0.0.2
- iptables -t nat -A PREROUTING -d 88.88.88.88 -p UDP -m UDP -j DNAT –to-destination 10.0.0.2
至此,GRE隧道及后续的转发全部配置完毕。此时,原来分配给服务器A的IP地址88.88.88.88已经被映射到IP地址为99.99.99.99的服务器B上了,可以进行后面的做网站、开小鸡等操作了。此时如果你再用SSH登录88.88.88.88,你应该能够登录上服务器B。
如果大家觉得有用或者有什么问题,欢迎在这里或者在我的博客上留言。本文作者为香菇肥牛,原文链接为https://qing.su/article/create-gre-tunnel-for-ipv4-mapping.html,转载需注明原文链接。谢谢大家的支持!
留言