我想知道Linux内核的POST_ROUTING之后,输出ICMP数据包的代码路径是什么?调用哪些函数? 传出ICMP数据包的函数调用顺序是什么?我可以通过ftrace找到这个序列吗?
例如,是否创建了how this kernel_flow?
答案 0 :(得分:1)
取决于。
ICMP数据包可以通过两种方式发起:
从用户空间套接字,例如socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)
或原始套接字。
从内核中的网络堆栈,作为某些ICMP事件的结果,例如, ICMP Time Exceeded