路由问题与iproute2,两个网关和两个networking接口

我正在尝试设置一个3层的iptables防火墙,有两个接口。

我的防火墙有两个物理接口:eno0,连接到我的ISP的网关,eno1,连接到我的本地网关。

networking设置如下所述:

ISP gateway: aaa.aaa.127.17 | | | subnet: aaa.aaa.127.16/30 | | | eno0: aaa.aaa.127.18 ----------------------------- | | | my firewall | | | ----------------------------- | eno1: 172.20.4.1 | | | subnet: 172.20.4.0/30 | | | 172.20.4.2 ----------------------------- | | | my local gateway | | | ----------------------------- | bbb.bbb.137.1 | | | subnet: bbb.bbb.137.0/24 | | Laptop: bbb.bbb.137.20 

(aaa.aaa.127.16 / 30和bbb.bbb.137.1 / 24是公共IP范围)

我试图(不成功)从我的笔记本电脑上网。 目前,我在iptables中没有过滤规则。 所以问题在于路由configuration。

我在/etc/iproute2/rt_tables结尾附加了1 rt2 ,这里是我的/ etc / network / interfaces的相关部分:

 auto eno0 iface eno0 inet static address aaa.aaa.127.18 netmask 255.255.255.252 gateway aaa.aaa.127.17 auto eno1 iface eno1 inet static address 172.20.4.1 netmask 255.255.255.252 post-up ip route add 172.20.4.0/30 dev eno1 src 172.20.4.1 table rt2 post-up ip route add bbb.bbb.137.0/24 dev eno1 src 172.20.4.1 table rt2 post-up ip route add default via 172.20.4.2 dev eno1 table rt2 post-up ip rule add from 172.20.4.1/32 table rt2 post-up ip rule add to 172.20.4.1/32 table rt2 

在我的本地网关,我有一个静态路由,将所有通信redirect到172.20.4.1(如果目标IP不在ARP表中)。

从防火墙,我可以ping通:

  • 我的ISP网关(aaa.aaa.127.17)
  • Google(8.8.8.8)
  • 我的本地网关(172.20.4.2)

但是,问题是我无法从防火墙ping我的笔记本电脑(bbb.bbb.137.20)。

从笔记本电脑,我可以ping我的本地网关,但不是我的防火墙。 从我的本地网关,我可以ping我的防火墙,但不是谷歌。

所以看来我的防火墙不知道如何路由stream量到bbb.bbb.137.0 / 24。 我错过了什么?

任何帮助是极大的赞赏。

我终于明白了。 我改变了/etc/network/interfaces ,它工作:

 auto eno0 iface eno0 inet static address aaa.aaa.127.18 netmask 255.255.255.252 gateway aaa.aaa.127.17 auto eno1 iface eno1 inet static address 172.20.4.1 netmask 255.255.255.252 post-up ip route add bbb.bbb.137.0/24 via 172.20.4.2 post-up ip route add 10.0.0.0/8 via 172.20.4.2 post-up ip route add 192.168.0.0/16 via 172.20.4.2 post-up ip route add 172.16.0.0/12 via 172.20.4.2 

另外,不需要改变/etc/iproute2/rt_tables