- 论坛徽章:
- 2
|
又一天了,问题有一点进展了。
我通过在kernel内打桩,发现,RTP包没有在PREROUTING链路上匹配成功,导致包在经过ip_rcv_finish之后,进入了LOCAL链路。
start to send icmp, type = 3, code = 3
drop packet, src ip:0x0a000132, port: 0x2e06, dst ip:0x0a00010a, port:0x2710.
Call Trace:
[ee1c7c70] [c00077d8] show_stack+0x48/0x15c (unreliable)
[ee1c7cb0] [c04c3e3c] icmp_send+0x1c0/0x3e0
[ee1c7da0] [c04c0e74] __udp4_lib_rcv+0x37c/0x614
[ee1c7de0] [c04972c8] ip_local_deliver_finish+0x110/0x30c
[ee1c7e00] [c0496db0] ip_rcv_finish+0x60/0x468
[ee1c7e20] [c0463898] __netif_receive_skb+0x348/0x3fc
[ee1c7e70] [c046506c] netif_receive_skb+0x4c/0xd0
[ee1c7ea0] [c0399104] _dpa_rx+0x1b4/0x2e8
[ee1c7ee0] [c03992ac] ingress_rx_default_dqrr+0x74/0x140
[ee1c7f10] [c043b7d0] qman_poll_dqrr+0x170/0x1d4
[ee1c7f40] [c0397b44] dpaa_eth_poll+0x20/0x58
[ee1c7f60] [c046538c] net_rx_action+0x11c/0x1d0
[ee1c7fa0] [c003874c] __do_softirq+0xf0/0x180
[ee1c7ff0] [c000d4a0] call_do_softirq+0x14/0x24
[e326dee0] [c000451c] do_softirq+0x98/0xc4
[e326df00] [c0038ab0] irq_exit+0xac/0xc8
[e326df10] [c000420c] do_IRQ+0x94/0x188
[e326df40] [c000f14c] ret_from_except+0x0/0x18
照理的话,他应该会匹配上NAT表在PREROUTING上的一条规则,如果匹配了,应该就走ip_forward的了,就不会出现ICMP-目的端口不可达。 |
|