我已经尝试解决以下任务近一周了,但不幸的是,我认为我没有适当的技能以最佳方式解决它。
我需要设置以下网络:
192.168.2.1 <----------> 192.168.2.20 ^ | | | | v 192.168.1.1 <----------> 192.168.1.10
其中2.1
和1.1
是“路由器”(Ubuntu 16.04)的两个独立接口,和2.20
是1.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
。当我tcpdump
在 1.10 上使用 ping 2.20 时,2.20 可以看到传入的请求,但没有发送响应。我还尝试在 2.20 上
进行设置,并使用绑定到 1.10 来请求 2.20 上的网页。它有效,但是我在 1.10 上看不到任何东西,所以我假设该请求甚至没有离开网卡。nginx
wget
tcpdump
我有 2 个问题:
1) 我的配置有什么问题?
2) 解决这个任务的最佳方法是什么?
答案1
路由表没有意义,在客户端上它应该是通过 192.168.1.20 到 192.168.1.0/24 以及通过 192.168.2.20 到 192.168.2.0/24。
然后,192.168.1.1 将被视为 192.168.1.10 本地,并将从该接口发送出去。