首页 文章

openvswitch在哪里处理TCP seq和ack?

提问于
浏览
0

我使用openvswitch在流表中使用多个动作 . 当我想修改TCP ipv4_dst并将数据包复制到另一个输出端时,数据包的确认号会随机更改 . 我不会更改IP标头中的其他字段 . 为什么会这样?我不想看到确认号码的变化 .

流表项:OFPST_FLOW回复(OF1.3)(xid = 0x2):cookie = 0x0,持续时间= 6.846s,表= 0,n_packets = 0,n_bytes = 0,优先级= 6,tcp,nw_src = 10.0.0.2 ,nw_dst = 10.0.0.1 actions = output:1

cookie = 0x0,duration = 6.846s,table = 0,n_packets = 0,n_bytes = 0,priority = 7,tcp,nw_src = 10.0.0.1,nw_dst = 10.0.0.2 actions = output:2,set_field:10.0.0.3- > ip_dst,set_field:00:00:00:00:00:03-> eth_dst,输出:3

cookie = 0x0,duration = 6.846s,table = 0,n_packets = 0,n_bytes = 0,priority = 8,tcp,nw_src = 10.0.0.3,nw_dst = 10.0.0.1 actions = output:1

cookie = 0x0,持续时间= 6.847s,表= 0,n_packets = 0,n_bytes = 0,优先级= 0动作=控制器:65535

拓扑:10.0.0.1 --------开关-------- 10.0.0.2 | | 10.0.0.3 enter image description here

2 回答

  • 0

    使用Mininet重现您的设置后,我无法重现该问题 .

    ovs-appctl ofproto/trace s1 in_port=1,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,tcp,nw_src=10.0.0.1,nw_dst=10.0.0.2
    

    输出不包括任何序列号修改 .

    • 我使用Wireshark比较了端口2和3上的数据包 . 在我的情况下,它们具有完全相同的ACK号 .

    这三点让我相信你的问题不是来自Open vSwitch . ACK编号修改是否可以来自其他软件?您是在Mininet还是在物理主机上运行实验?

  • 0

    我找到了答案 . 由于在Linux内核中监视tcp连接,我们无法复制tcp状态 .

相关问题