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。

测试效果:

相关推荐
大大大大小小7 分钟前
ARP Detection & MAC-Address Static
网络
cdut_suye12 分钟前
【Linux系统】从 C 语言文件操作到系统调用的核心原理
java·linux·数据结构·c++·人工智能·机器学习·云计算
码熔burning20 分钟前
内网互通原则详解!
网络·内网互通
新时代的弩力25 分钟前
CSRF 和 XSS 攻击分析与防范
网络
sz66cm1 小时前
Linux基础 -- 在内存中使用chroot修复eMMC
linux·服务器
小刘不想改BUG1 小时前
LeetCode LCR 015. 找到字符串中所有字母异位词 (Java)
linux·算法·leetcode
是大强2 小时前
编译OpenSSL时报错,Can‘t locate IPC/Cmd.pm in @INC perl环境
网络·网络协议·ssl
神仙别闹2 小时前
基于C#实现中央定位服务器的 P2P 网络聊天系统
服务器·网络·c#
zm2 小时前
网络编程超时检测,unix域套接字,粘包
网络
Li_yizYa2 小时前
网络原理 | 网络基础概念复习
运维·服务器·网络·计算机网络