Wir untersuchen l2tp. Um der Traffik mit Wireshark zu analysieren bedarf es ein Dissector der es erlaubt das l2tp Payload und die Tunneldigger zu darstellen. Mit tunneldigger wird ein lua script geliefert, leider geht er nur für die tunneldigger Informationen. Eine Dekodierung des Payloades ist nicht vorhanden. Mit nachstehenden lua Script kann das gesamten Verkehr dargestellt werden:
l2tpData_proto = Proto ("l2tpData","l2tp-Freifunk") function l2tpData_proto.dissector(buffer, pinfo, tree) -- look for control or payload local type = buffer(0, 1):uint() if type == 0x00 then -- decode only the l2tpV3 part whithout the payloaditself local udp_table = DissectorTable.get("udp.port") local l2tp_dis = udp_table:get_dissector(1701) sub_buf = buffer(0, 12):tvb() l2tp_dis:call(sub_buf, pinfo, tree) -- we have as first member an ethernet frame, coninue disecton with it ethernet_dissector = Dissector.get("eth") sub_buf = buffer(12, buffer:len() - 12):tvb() ethernet_dissector:call(sub_buf, pinfo, tree) else -- call tunneldiger dissector (lua script from tunneldigger) local udp_table = DissectorTable.get("udp.port") local td_dis = udp_table:get_dissector(8942) td_dis:call(buffer, pinfo, tree) end end -- We recognise the Freifunk data on the port number used -- If the port you use is not 10042 modify the last line udp_table = DissectorTable.get("udp.port") udp_table:add(10042, l2tpData_proto)