2

POX コントローラを使用して TCP パケットを作成し、スイッチの 1 つに送信しようとしています。

パケットは次のように作成されます。

        payload = "MESSAGE"
        tcp_packet = tcp()
        tcp_packet.srcport = 10000
        tcp_packet.dstport = 10001
        tcp_packet.payload = payload
        tcp_packet.seq = 100

        ipv4_packet = ipv4()
        ipv4_packet.iplen = ipv4.MIN_LEN + len(tcp_packet)
        ipv4_packet.protocol = ipv4.TCP_PROTOCOL
        ipv4_packet.dstip = IPAddr('10.0.0.5')
        ipv4_packet.srcip = IPAddr('10.0.0.1')
        ipv4_packet.set_payload(tcp_packet)

        eth_packet = ethernet()
        eth_packet.set_payload(ipv4_packet)
        eth_packet.dst = EthAddr('00:00:00:00:00:05')
        eth_packet.src = EthAddr('00:00:00:00:00:01')
        eth_packet.type = ethernet.IP_TYPE

その後、スイッチのポートの 1 つを介して送信されます。PacketIn ハンドラでパケットをキャプチャしようとすると:

event.parsed.find('tcp')

TCP パケットがないかのように None を返します。Wireshark でトラフィックをキャプチャすると、(OF パケットにラップされた) パケットが表示されますが、Wireshark は TCP ヘッダーがゼロであると警告します。

これは実際にヘッダーの問題ですか?どうすればこれを修正できますか?

ありがとうございました

4

1 に答える 1