Twisted python:UDP组播接口和组

时间:2012-08-06 22:54:33

标签: python security interface twisted multicast

我有两个关于twisted的UDP组播安全性的问题。

class UDPProtocol(twisted.internet.protocol.DatagramProtocol):
        def startProtocol(self):
                self.transport.joinGroup('224.0.0.1')
        def datagramReceived(self, data, (host, port)):
            if host == '192.126.1.65':
                print "UDPWebscriptProtocol: received %r from %s:%d" % (data, host, port)   

这就是我的倾听方式:

reactor.listenMulticast(10222, UDPProtocol(), listenMultiple = True, interface = '224.0.0.1')

注意listenMulticast中的接口规范。

  1. 在listenMulticast中指定接口与在协议中加入组有什么区别?
  2. 在协议中,我检查主机接口是否具有正确的IP(在这种情况下,是具有rfc 1918地址的专用接口)。有人可能会欺骗这个IP并向我的小组广播吗?或者它只能欺骗IP而不是界面?
  3. 一般来说,这段代码有多安全?

1 个答案:

答案 0 :(得分:1)

  1. 您收听的是监听界面。加入该组会告诉内核以及您希望接收该组的所有路由器,例如您的路由器将传递来自该组的消息,而不是像默认情况下那样丢弃它们。

  2. 我不明白。你的意思是你检查传入数据报的源IP地址?我不知道如何检查别人的主机界面。如果允许的源地址是私有的,则唯一可能的欺骗来自私有子网内部。