如何设置两台机器作为两个子网之间的“路由器”?

我一直试图解决以下任务近一个星期,但不幸的是,我不认为我有适当的技能来解决这个最好的方法。

我需要安装以下networking: 192.168.2.1 <----------> 192.168.2.20 ^ | | | | v 192.168.1.1 <----------> 192.168.1.10 192.168.2.1 <----------> 192.168.2.20 ^ | | | | v 192.168.1.1 <----------> 192.168.1.10

其中2.11.1是“路由器”(Ubuntu 16.04)的两个独立接口, 2.201.10是“客户端”(Ubuntu 17.04)的两个单独接口。

不幸的是,我甚至无法进行ping工作。 客户端上的路由表: 192.168.1.1 dev eth1 192.168.1.10 via 192.168.2.1 dev eth2 192.168.2.20 via 192.168.1.1 dev eth1 192.168.2.1 dev eth2

在“路由器”上, net.ipv4.ip_forward=1 。 当我在1.10上使用tcpdump来ping 2.20时,2.20可以看到传入的请求,但是不发送响应。
我也尝试在2.20上设置nginx ,并使用wget绑定到1.10来请求2.20上的网页。 它的工作,但是我没有看到tcpdump 1.10上的任何东西,所以我认为这个请求甚至没有离开网卡。

我有两个问题:
1)我的configuration有什么问题?
2)解决这个任务的最好方法是什么?

路由表是没有意义的,在客户端上它应该是192.168.1.0/24,通过192.168.1.20和192.168.2.0/24,通过192.168.2.20。

那么,192.168.1.1将被认为是本地192.168.1.10,并将被发送出该接口。