内核能够动态确定ip包的发送接口,通过路由信息确定

原创 2005年04月24日 16:16:00
lzgogogo
(stranger)
03-11-16 18:45
怎么样在内核中按照自己的需要的向外发送一个数据包?

我在Netfilter框架下面写了一段包处理的函数,现在要实现一个功能,是按照自己的要求产生一个数据包并且发送出去.比如说我现在要发送一个数据包,该数据包从192.168.1.154:80发送到192.168.1.155, Seq为3187958690
ACK为 3187958691,SYN ACK置位等等
我得想法是参照一些驱动程序中产skb结构的方法,即先调用dev_alloc_skb(),然后再将其相应的部分进行填充.最后调用dev_queue_xmit()进行发送.碰到了一些问题:第一是怎么样确定使用那一个网络接口进行发送,我找到了函数dev_get_by_name(),但是这个调用需要指定网络接口名(如eth0,eth1).但是事先并不能确定是那一个网络接口,这样的话是不是只能在插入模块的时候进行指定,有没有什么方法动态的确定那一个网络接口?
第二个问题是skb的有关部分怎么样填充?如dst,csum,sk,stamp等等,还是根本就不必管这些部分.
不知道我的想法是否可行,需要注意那些部分?各位在做类似的功能是是怎么做的?有没有现成的例子参考参考
请指教 ,谢谢

文章选项: 打印   将这篇文章放置于备忘录中,待有空时回覆   好友分享   通知版主

dl_dht
(member)
03-11-17 10:18
Re: 怎么样在内核中按照自己的需要的向外发送一个数据包? 新[re: lzgogogo]

使用 ip_route_output_key 可以确定使用那一个接口进行发送.

文章选项: 打印   将这篇文章放置于备忘录中,待有空时回覆   好友分享   通知版主

找出ip数据包在网络中经过的路由

有两种方法 利用icmp协议,icmp协议一般用于传递udp、tcp报文的差错信息,但是也有个选项可以被配置成为可以记录沿路的路由ip的功能(在icmp报文的首部有类型和代码两个字段,被分别配置为8和...
  • qq_15650553
  • qq_15650553
  • 2016年10月23日 14:51
  • 1293

Linux 内核网络协议栈 ------ Linux 内核路由机制(二)之 ip层开始 -> 直到包被处理

Linux 内核路由机制(二) ---- ip层开始 -> 直到包被处理
  • shanshanpt
  • shanshanpt
  • 2014年03月10日 22:44
  • 8751

如何使用确定对方已经阅读你发送的邮件并从对方邮件中确定对方的ip地址

好多大学的选修课都是按照老师的要求把作业发送到邮箱中,但是好多同学发送了作业or结业论文后不知道老师是否已经接收到。可以使用以下的方式来确定老师是否已经阅读邮件。 第一步:打开邮箱找到“已发送” ...
  • yuyushikuan
  • yuyushikuan
  • 2016年05月08日 22:36
  • 3784

怎样判断静态路由下一跳和出站接口的区别及交叉线与直连线的使用区别

我们知道,在配置静态路由时,可以使用下一跳地址,也可以使用出站接口,使用下一跳IP地址和使用出站接口会影响路由器的处理方式。 所以判断是使用下一跳IP地址还是使用出站接口就比较重要了。 ...
  • yiluyangguang1234
  • yiluyangguang1234
  • 2016年06月12日 17:26
  • 960

LINUX IP 路由实现

摘自:http://www.cnblogs.com/super-king/p/3296091.html  以下代码取自 kernel 2.6.24. [数据结构] 该结构被基于路由表的cla...
  • scdxmoe
  • scdxmoe
  • 2014年11月20日 17:04
  • 1563

组播的发送与接收问题

...
  • xwchen
  • xwchen
  • 2007年06月05日 22:44
  • 841

通过配置静态ip实现两个直连路由器的loopback地址通信

试验拓扑图如下所示: 路由器AR1 配置 ip route-static 2.0.0.0 255.0.0.0 172.16.0.2(注意不能直接配置物理接口, ip route-static...
  • yiluyangguang1234
  • yiluyangguang1234
  • 2016年06月12日 16:46
  • 1238

【php】利用新浪api接口与php获取远程数据的方法,获取IP地址,并获取相应的IP归属地

本文与《【Servlet】Javaweb中,利用新浪api接口,获取IP地址,并获取相应的IP归属地》(点击打开链接)为姊妹篇,只是后端编程语言换成了php。 做出同样的效果,打开页面,得到客户端的...
  • yongh701
  • yongh701
  • 2015年06月19日 16:07
  • 1651

CCNP路由实验之三 动态路由之RIP

CCNP路由实验之三动态路由协议之RIP     动态路由协议可以自动的发现远程网络,只要网络拓扑结构发生了变化,路由器就会相互交换路由信息,不仅能够自动获知新增加的网络,还可以在当前网络连接失败...
  • kkfloat
  • kkfloat
  • 2013年11月24日 02:09
  • 7089

Linux内核构造数据包并发送(Netfilter方式)

一、构造数据包简析  这里并不详细介绍如何在内核中构造数据包,下文如有需要会在适当的位置进行分析。这里简单的分析讲一下内核态基于Netfilter框架构造数据包的方式。         内...
  • lanmolei814
  • lanmolei814
  • 2015年12月15日 18:44
  • 2255
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:内核能够动态确定ip包的发送接口,通过路由信息确定
举报原因:
原因补充:

(最多只允许输入30个字)