Linux 高级路由策略控制配置:两个不同路由子网间通信

场景:

Linux 路由服务器,设备上存在两个子网路由段

1、eth0 192.168.0.0/24 网卡IP为:192.168.0.8

2、ppp 10.0.0.0/24 网卡IP为:10.0.0.244

现期望,192.168.0.0子网接入设备(如:192.168.0.24),可以通过该 Linux 路由器跨域访问 10.0.0.251。

方案:

1、修改 /etc/sysctl.conf 文件

bash 复制代码
net.ipv4.conf.all.route_localnet=1
net.ipv4.ip_forward=1
net.ipv4.conf.all.forwarding=1
net.ipv4.conf.default.forwarding=1

net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.lo.forwarding = 1
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0

net.ipv6.conf.all.accept_ra = 2
net.ipv6.conf.default.accept_ra = 2

net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.default.accept_redirects=0
net.ipv4.conf.all.secure_redirects=0
net.ipv4.conf.default.secure_redirects=0
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.rp_filter=0

添加上述的内核选项配置,并且通过 sysctl -p 命令生效路由转发。

2、配置 iptables SNAT路由转发配置。

192.168.0.0/24 为 eth0 网卡输入的报文,将其转发给 ppp 网卡并修改 SourceIP 为

10.0.0.1(网关IP)或 10.0.0.244(网卡接口IP)

bash 复制代码
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp -j SNAT --to-source 10.0.0.1

若设置为网关IP,必须设置 -o 具体输出网卡,-i 为输入网卡。

替代方案:

bash 复制代码
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 10.0.0.244

3、如果不采用,第二项指出的路由转发配置,可以使用以下的替代方案。

bash 复制代码
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp -j MASQUERADE

上述命令行强制设置输出网卡接口,该命令会在内核中自动使用网卡的接口SNAT。

bash 复制代码
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

上述命令行没有强制输出网卡接口,该命令会在内核中自动根据路由表设置SNAT。

测试效果:

相关推荐
chenyuhao202437 分钟前
Linux网络编程:传输层协议UDP
linux·服务器·网络·后端·udp
小鹏linux38 分钟前
【linux】进程与服务管理命令 - batch
linux·运维·服务器
米羊1215 小时前
fastjson (3修复)
网络·网络协议·安全
人工智能训练7 小时前
OpenEnler等Linux系统中安装git工具的方法
linux·运维·服务器·git·vscode·python·ubuntu
QT 小鲜肉7 小时前
【Linux命令大全】001.文件管理之which命令(实操篇)
linux·运维·服务器·前端·chrome·笔记
oMcLin8 小时前
Ubuntu 22.04 无法连接外部网络的故障排查与解决(解决 DNS 配置问题)
linux·网络·ubuntu
还不秃顶的计科生9 小时前
LeetCode 热题 100第二题:字母易位词分组python版本
linux·python·leetcode
咯哦哦哦哦9 小时前
WSL + ubantu22.04 + 远程桌面闪退+黑屏闪退解决
linux·开发语言
fantasy5_59 小时前
Linux 动态进度条实战:从零掌握开发工具与核心原理
linux·运维·服务器
weixin_462446239 小时前
exo + tinygrad:Linux 节点设备能力自动探测(NVIDIA / AMD / CPU 安全兜底)
linux·运维·python·安全