Linux 通过在同一网络中指定源地址来添加ip路由
我有4台pc和另一台pc,称之为proxy,它们都在同一个网络中:172.16.96.0/20。我可以在彼此之间打乒乓球。 但是,我想把它们分成两部分。即:Linux 通过在同一网络中指定源地址来添加ip路由,linux,networking,routing,ip,forwarding,Linux,Networking,Routing,Ip,Forwarding,我有4台pc和另一台pc,称之为proxy,它们都在同一个网络中:172.16.96.0/20。我可以在彼此之间打乒乓球。 但是,我想把它们分成两部分。即: pc1直接连接到pc2 pc3直接连接到pc4 但是,, 从pc1或pc2到pc3或pc4的所有流量都必须通过代理服务器和 从pc3或pc4到pc1或pc2的所有流量都必须通过代理服务器 pc1 pc3 | -proxy- | pc2 pc4 pc1 IP: 172.16.97.24 pc
- pc1直接连接到pc2
- pc3直接连接到pc4
pc1 pc3
| -proxy- |
pc2 pc4
pc1 IP: 172.16.97.24
pc3 IP: 172.16.97.27
proxy IP: 172.16.97.2
为了在pc1上实现这一点,我添加了:
ip route add 172.16.97.27 via 172.16.97.2
但是,当我执行traceroute 172.16.97.27时,172.16.97.2不会显示为跃点..我不确定它是否应该
在代理服务器上,路由表如下所示:
default via 172.16.111.254 dev eth0
172.16.96.0/20 dev eth0 proto kernel scope link src 172.16.97.2
我想我应该添加另一个来源,即pc1 172.16.97.24。
为了能够将从pc1(172.16.97.24)接收到的流量转发到其目的地(pc3或pc4),我使用了以下方法:
ip route add 172.16.96.0/20 via 0.0.0.0 src 172.16.97.24
错误:RTNETLINK回答:没有此类设备
ip route add 172.16.96.0/20 dev eth0:0 via 0.0.0.0 src 172.16.97.24
错误:RTNETLINK回答:参数无效
以及:
错误:RTNETLINK回答:没有此类设备
ip route add 172.16.96.0/20 dev eth0:0 via 0.0.0.0 src 172.16.97.24
我不确定我是否在正确的路径上进行此配置。如果没有请告诉我。谢谢大家! 我通过在代理上添加以下内容来解决问题:
# sysctl net.ipv4.ip_forward=1 or add net.ipv4.ip_forward=1 in /etc/sysctl.conf (to keep it after you close the terminal)
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING Append a rule to the POSTROUTING chain
-o eth0 this rule is valid for packets that leave on the eth0 network interface (-o stands for "output")
-j MASQUERADE the action that should take place is to 'masquerade' packets, i.e. replacing the sender's address by the router's address.
我在pc1、pc2、pc3、pc4上添加了:
ip route add pcDestIP via proxy
其中,pcDest ip是pc3和pc4,以防我在pc1上编写规则
更多信息:
在这里: