物理拓扑

1、PC封包:源ip:10.1.1.2,目的ip:20.1.1.2,源mac:fe:fe:fe:fe:fe:aa,目的mac:不知道,此时数据层将这个不完整的包缓存,发arp报文,注意,主机内核会检测到是跨网段访问,arp请求的是网关ip对应的mac
2、ARP报文组成:数据层(源mac:fe:fe:fe:fe:fe:aa,目的mac:ff:ff:ff:ff:ff:ff)+ ARP头部(发送者ip:10.1.1.2,发送者mac:fe:fe:fe:fe:fe:aa,接收者ip:10.1.1.2(网关ip),接收者mac:00::00:00:00:00:00)
3、网关设备收到后将PC的ip和mac存到arp表,并单播回复arp包:数据层(源mac:fe:fe:fe:fe:fe:bb,目的mac:fe:fe:fe:fe:fe:aa)+ arp头(发送者ip:10.1.1.2,发送者mac:fe:fe:fe:fe:fe:bb,接收者ip:10.1.1.1,接收者mac:fe:fe:fe:fe:fe:aa)
4、PC收到网关的arp回包后,将20.1.1.2和fe:fe:fe:fe:fe:bb存到arp表
核心流表显示
cookie=0x1, duration=142927.790s, table=11, n_packets=0, n_bytes=0, priority=24576,arp,arp_tpa=10.1.0.5,arp_op=1 actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],
set_field:fe:fe:fe:fe:fe:fc->eth_src,load:0x2->NXM_OF_ARP_OP[],move:NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],set_field:fe:fe:fe:fe:fe:fc->arp_sha,
move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],set_field:10.1.0.5->arp_spa,load:0->NXM_OF_IN_PORT[],resubmit(,3)
匹配项:
arp:arp协议
arp_tpa:arp请求的目的ip
arp_op:ARP请求(值为1)、ARP应答(2)、RARP请求(3)、RARP应答(4)
执行项
NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[]:将源mac放入目的mac
set_field:fe:fe:fe:fe:fe:fc->eth_src:将fe:fe:fe:fe:fe:fc放入源mac
0x2->NXM_OF_ARP_OP[]:ARP应答(2)
NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[]:将arp request外层源mac放入arp reply的目的mac
set_field:fe:fe:fe:fe:fe:fc->arp_sha:将fe:fe:fe:fe:fe:fc放入arp reply头部的源mac
move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[]:arp request的源ip放入arp reply目的ip
set_field:10.1.0.5->arp_spa:将已知10.1.0.5放入源ip
load:0->NXM_OF_IN_PORT[]:收到的arp包从进来时的接口转发回去

ip netns add ns1
ip l a veth0 type veth peer name ovs-veth0
ip l s veth0 netns ns1
ovs-vsctl add-br br-int
ovs-vsctl add-port br-int ovs-veth0
ip l s ovs-veth0 up
ip netns exec ns1 ip a a 10.0.0.2/24 dev veth0
ip</
OpenFlow与ARP交互解析

最低0.47元/天 解锁文章
2084

被折叠的 条评论
为什么被折叠?



