两个接口和丢失的包

两个接口和丢失的包

我有两个以太网接口,分别名为 enp1s0f0 和 enp1s0f1。它们的 IP 地址来自同一子网(但我认为这并不重要)。以下是场景:

我的发行版是 Centos8

我已经完成了“echo 1 > /proc/sys/net/ipv4/ip_forward”

enp1s0f0 有 xyz236 enp1s0f1 有 xyz237

我已经写了 IP 规则

[root@localhost ~]# ip rule list
0:      from all lookup local
32762:  from all to x.y.z.237 lookup 237

以及我的附加路由表 237

[root@localhost ~]# ip route list table 237
default via x.y.z.254 dev enp1s0f1
x.y.z.0/24 dev enp1s0f1 scope link src x.y.z.237

这是我的问题:第一个接口运行良好,对于第二个接口,我可以通过 tcpdump 看到传入的数据包,但 nftables 计数器没有计数。例如,ssh 连接就超时了。我尝试过“meta nftrace set 1”进行输入和转发挂钩,但这里也没有通过任何操作。

这是我的 tcpdump 输出:

[root@localhost ~]# tcpdump -i enp1s0f1 port 22 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp1s0f1, link-type EN10MB (Ethernet), capture size 262144 bytes
17:13:01.305452 IP x.y.z.3.52229 > x.y.z.237.ssh: Flags [S], seq 2642985606, win 8192, options [mss 1428,nop,wscale 8,nop,nop,sackOK], length 0
17:13:04.305689 IP x.y.z.3.52229 > x.y.z.237.ssh: Flags [S], seq 2642985606, win 8192, options [mss 1428,nop,wscale 8,nop,nop,sackOK], length 0
17:13:10.306349 IP x.y.z.3.52229 > x.y.z.237.ssh: Flags [S], seq 2642985606, win 8192, options [mss 1428,nop,nop,sackOK], length 0

这是我的 nftables 规则:

table ip filter {
        chain INPUT {
                type filter hook input priority filter; policy accept;
                ip daddr x.y.z.237 tcp dport 22 meta nftrace set 1 counter packets 0 bytes 0


        chain FORWARD {
                type filter hook forward priority filter; policy accept;
                counter packets 0 bytes 0 accept

        chain OUTPUT {
                type filter hook output priority filter; policy accept;
                ip saddr x.y.z.236 tcp sport 22 counter packets 383 bytes 102888 accept
                ip saddr x.y.z.237 tcp sport 22 counter packets 0 bytes 0 accept

我遗漏了什么?我的包裹去哪儿了?

答案1

我搞明白了。当我添加 ip 规则 add from xyz237/32 table 237 时,它起作用了。虽然不明白为什么 :D 但它确实起作用了,所以没问题。

相关内容