网络子系统18_arp对代理的处理

本文档介绍了ARP代理在Linux内核中的处理,包括代理特性和延迟处理机制。当ARP请求的目标地址非本地地址时,会检查设备的转发功能、目的IP类型、连接接口等条件来决定是否启用代理。如果满足条件, ARP请求会被放入延迟队列,根据设定的延迟时间决定是否应答。同时,文中也提到了介质标识符(medium-id)在判断不同LAN连接时的作用。
摘要由CSDN通过智能技术生成
//	代理使用的特性:
//		medium-id  当ARP请求的目的地址非本机地址时,处理ip子网横跨不同的lan,且该子网中提供arp请求的主机有多快nic,设置这些nic是否在同一lan

//	arp代理处理的特点:
//		1.本机arp请求的优先级高于对代理主机的arp请求

//	延迟处理的实现:
//		1.通过tbl->proxy_queue入队对代理地址的arp,通过param->proxy_delay指定封包在代理队列中应该待的时间

//	arp代理处理
//	函数主要功能:
//		1. 设备需要开启转发功能
//		2. 目的ip地址应该为单播类型
//		3. 发送arp请求的主机与被代理的主机使用不同的接口设备连接
//		4. 已经开启全局代理或设备代理,并且入口lan与出口lan不同
//		5. 如果arp没有被延迟处理,则延迟处理,否则应答	
1.1 static int arp_process(struct sk_buff *skb)
{
	...

		//请求地址非本机ip,存在到目的地的路由
		} else if (IN_DEV_FORWARD(in_dev)) {//输入接口具有转发功能
			if ((rt->rt_flags&RTCF_DNAT) ||//此路由项执行目的地网络地址转换
			    (addr_type == RTN_UNICAST  && rt->u.dst.dev != dev &&//或目的ip地址为单播类型,并且出口设备不是入口设备
			     (arp_fwd_proxy(in_dev, rt) || pneigh_lookup(&arp_tbl, &tip, dev, 0)))) {//设备可以处理代理,或者代理过的地址数据库中有目的地址
				n = neigh_event_ns(&arp_tbl,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值