在
Linux中创建TUN设备时,在我的机器上创建的TUN设备具有以下标志:
<POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP>
很明显,MULTICAST列在那里但不是BROADCAST.由于TUN设备使用IP数据包,因此它是处理TUN设备文件的程序,该文件应决定如何处理发送到广播地址的数据包.此外,即使此设备上未列出BROADCAST标志,在TUN设备上将数据包发送到广播地址的应用程序也是合法的.
那么为什么TUN设备没有BROADCAST标志呢?
编辑:抱歉混乱.通过TUN设备,我并不是特意指OpenVPN用于隧道的方式.我的意思是Linux(或其他Unix)中的TUN设备,如下所述:http://www.kernel.org/doc/Documentation/networking/tuntap.txt
解决方法
关键是它是“POINTTOPOINT”……你的机器直接连接到远程端,任何实际的广播都必须由远程端生成.当然,如果您将数据包发送到广播地址,您的远程端肯定会将其传递,并且还会将发送到广播地址的任何数据包传回给您.
相反,如果您有多个工作站直接插入交换机,您的计算机可以发送广播,并且不需要任何网关将该广播重新传输给其他对等方.