openwrt下wan口和lan口的单播转发 本地广播转发 组播转发 总结

openwrt是居于linux的,所以本质上还是linux下的问题。

1 本地广播即255.255.255.255,正常只能在本地局域网下转发。

wan口到lan口转发:首先通过iptables设置一个DNAT,将255.255.255.255指向lan下的单播IP,然后在iptable_nat.c nf_nat_ipv4_in()下将skb->pkt_type类型变成PACKET_HOST这样就可以了。局限性就是只能向单播IP转发。主要是要保留ip数据包源IP的值。这一接收方才知道是谁发来的。如果只是转发数据包内容,那写一个转发程序就可以了。

 

lan口到wan口转发:写一个程序,指定端口或端口列表进行转发。重点是socket必须指定网卡接口。发送的socket要指定是广播包。

 

2 组播的转发

使用pimd-2.1.8即可实现双向转发。igmpproxy只能设置单向转发upstream和downstream。

https://github.com/downloads/troglobit/pimd/pimd-2.1.8.tar.bz2

测试的组播收发程序:Wsend,Wlisten。

注意点1:测试的PC,如果安装了虚拟网卡,则需要禁用虚拟网卡。

注意点2:把wan和lan接口都设置成ACCEPT。

 

3 单播转发

默认情况下,lan口向wan口转发数据,且lan口ip会masq成wan口ip,类似SNAT。

因此转发指的是wan口到lan口的转发,其实就是iptables设置一个DNAT转发,即将对wan口的访问转发到lan下的指定ip。可以全端口转发,也可以指定端口转发。当转发端口比较明确和固定的时候,建议指定端口转发。 

 

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
OpenWrt是一个开源的路由器操作系统,它提供了丰富的功能和灵活的配置选项。组播转发是其中一个重要的功能,它可以实现组播数据的分发和传输。 组播,即多播,是一种广播数据的方式,只有特定的组成员可以接收到这些数据。与单播(一对一)和广播(一对多)不同,组播是一对多的传输方式。 在OpenWrt中实现组播转发需要进行以下步骤: 1. 配置组播路由:在OpenWrt的网络设置中,需要启用IGMP(Internet Group Management Protocol)代理,以支持组播路由。IGMP是用于管理组播组的一个网络协议。 2. 配置组播转发:在OpenWrt的网络设置中,需要开启组播传送,将接收到的组播数据转发给有效的组播组成员。可以通过配置组播转发规则来指定接收和转发的接。 3. 配置组播组成员:在OpenWrt的网络设置中,需要指定组播组的成员,以便接收组播数据。可以通过设置组播组的IP地址和组播组源地址来加入指定的组播组。 4. 测试组播转发:在配置完成后,可以使用组播测试工具(如mtools、smcroute等)来验证组播转发是否正常工作。可以发送组播数据包,并检查组播组成员是否都能接收到数据。 总之,OpenWrt提供了功能强大的组播转发功能,通过配置路由和接,可以实现组播数据的分发和传输。但是需要注意的是,正确的配置和测试是至关重要的,以确保组播转发的正常运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值