首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >子网到子网转发业务

子网到子网转发业务
EN

Server Fault用户
提问于 2020-04-06 11:26:17
回答 1查看 900关注 0票数 1

我想知道如何将流量从网关转发到子网。

网络设置

我有这个工作设置,主机A后面的隧道可以平主机B 10.151.0.1,但不是主机C 10.151.0.2。

如果我在主机B 10.151.0.1 (子网网关)上转储数据包,我会在接口上看到ping。

代码语言:javascript
运行
复制
tcpdump: listening on eno1, link-type EN10MB (Ethernet), capture size 262144 bytes
     (host A)10.0.1.18 > (host c)10.151.0.2: ICMP echo request, id 21863, seq 7, length 64

因此,数据包到达(主机b) 10.151.0.1,但没有转发到10.151.0.2主机C。我看到主机C接口上什么都没有。

我已经启用了ip转发,并添加了iptables规则(主机B):

代码语言:javascript
运行
复制
iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE
iptables -A FORWARD -i eno1 -o eno2 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eno2 -o eno1 -j ACCEPT

我还尝试将此路由添加到主机C:

代码语言:javascript
运行
复制
ip route add 10.151.0.0/30 via 10.151.0.2 dev eno2

也许有人能帮我?非常感谢

我试图通过嵌入整个子网来避免多个主机托管ipsec。顺便提一下,主机B 10.151.0.1可以ping 10.151.0.2 ;-)

更新1:我现在可以用代理ARP从主机C中平主机A:

代码语言:javascript
运行
复制
 echo 1 > /proc/sys/net/ipv4/conf/eno2/proxy_arp

魔法发生了:

代码语言:javascript
运行
复制
root@hostC:/home/administrateur# ping 10.0.1.21
PING 10.0.1.21 (10.0.1.21) 56(84) bytes of data.
64 bytes from 10.0.1.21: icmp_seq=1 ttl=62 time=16.0 ms
64 bytes from 10.0.1.21: icmp_seq=2 ttl=62 time=16.0 ms

但是我总是不能从主机A来平主机C,但是主机A和B之间的ping是可以的。

UPDATE2:从主机B中删除它,所有的工作:

代码语言:javascript
运行
复制
/sbin/route add -net 10.0.1.0 netmask 255.255.255.0 gw 10.151.0.1
/sbin/iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE

所有主机都可以平平所有主机,子网到子网工作:)

EN

回答 1

Server Fault用户

发布于 2020-04-06 12:17:12

您在主机C上的路线应该是这样的:

代码语言:javascript
运行
复制
ip route add HOST-A-IP-RANGE via 10.151.0.2 dev eno2

例如:

代码语言:javascript
运行
复制
IP route add 10.0.1.0/24 via 10.151.0.2 dev eno2

实际上这可能是错误的,因为我没有你的主机-一个网络地址。您还应该在主机A上添加相同的路由。

代码语言:javascript
运行
复制
ip route add HOST-B-IP-RANGE via 10.151.0.2 dev eno2
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1011112

复制
相关文章

相似问题

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