首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GRE隧道信源

GRE隧道信源
EN

Server Fault用户
提问于 2009-08-12 00:26:15
回答 1查看 2.4K关注 0票数 1

在Linux上,我创建了一个名为gre1 172.17.1 -> 172.17.2的GRE隧道。Linux为10.10.100.100,端点IP为10.10.101.101。

我正在尝试做一个源NAT (而不是目的NAT)隧道,从Linux机器到隧道的流量实际上是80。我试过这样的方法,但没有成功:

代码语言:javascript
复制
iptables -t nat -A OUTPUT -p tcp --dport 80 -j SNAT --to 172.17.1.1
iptables -t nat -A FORWARD -p tcp --dport 80 -j SNAT --to 172.17.1.1

我发现的大多数GRE隧道的例子都是针对DNAT的,而不是SNAT。有对我的案子有用的例子吗?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2009-08-12 05:01:04

如果我没看错你的问题,你希望80号港的交通通过你的隧道。这不是用SNAT完成的,而是通过策略路由完成的。

首先,我们需要设置一个新的路由表:

代码语言:javascript
复制
# echo "2  tunnel" >> /etc/iproute2/rt_tables

接下来,我们需要设置路由表,以便通过隧道发送所有流量:

代码语言:javascript
复制
# ip route add default via 172.16.1.2 dev gre1 table tunnel

现在我们需要让一些流量使用那个路由表,而不是默认的路由表。这是通过标记数据包,然后添加一个规则来为那些标记的数据包使用指定的表来完成的:

代码语言:javascript
复制
# iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --mark 200
# ip rule add fwmark 200 table tunnel

如果希望将流量转发到隧道中,请将输出替换为正向输出。这只适用于本地生成的具有输出的通信量。

您可以在Linux高级路由和流量控制(LARTC)指南中找到更多信息。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/53027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档