【问题标题】:ip route add by specifying source address in the same networkip route add 指定源地址在同一个网络
【发布时间】:2015-10-04 19:16:12
【问题描述】:

我有 4 台电脑和另一台电脑,称之为代理,都在同一个网络中:172.16.96.0/20。我可以互相ping通。 但是,我想将它们分成 2 个。即:

  • pc1直接连接pc2
  • pc3直接连接pc4

但是, 从 pc1 或 pc2 到 pc3 或 pc4 的所有流量都必须通过代理和 从 pc3 或 pc4 到 pc1 或 pc2 的所有流量都必须通过代理

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 答案:无效参数

和:

ip route add 172.16.96.0/20 src 172.16.97.24

错误:RTNETLINK 回答:没有这样的设备

我不确定我是否走在正确的道路上进行此配置。如果没有,请告诉我。谢谢!

【问题讨论】:

    标签: linux networking routing ip forwarding


    【解决方案1】:

    我设法通过在代理上添加以下内容来解决问题:

    # 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
    

    如果我在 pc1 上编写规则,pcDest ip 是 pc3 和 pc4。

    更多信息:http://www.karlrupp.net/en/computer/nat_tutorial

    这里:https://serverfault.com/questions/306024/how-to-route-network-traffic-of-a-host-via-another-host

    【讨论】:

      猜你喜欢
      • 2016-07-18
      • 2016-02-07
      • 2019-02-03
      • 1970-01-01
      • 2014-08-05
      • 2021-05-31
      • 2020-04-29
      • 1970-01-01
      • 2018-01-28
      相关资源
      最近更新 更多