SDN软件定义网络(SDN) 中的OpenDaylight与Mininet

如何配置流表使数据包返回发送来的节点

2019-01-14  本文已影响1人  顽强的猫尾草

假设有如图所示的拓扑,由 Mininet 创建,链路都是双向的,交换机通过控制器下发的流表控制数据包流向。

若需要配置这样一条路径:s1→s2→s4→s2→s3。s1→s2 与 s2→s3 的流表无需赘述,关键是 s2→s4→s2 这一段,怎么才能让 s4 发回到 s2 呢?

试过的不可行方法

单纯地给 s4 配置这样一条流表是行不通的:

 cookie=0x0, duration=22.849s, table=0, n_packets=0, n_bytes=0, idle_age=22, 
priority=3,udp,in_port=1,nw_src=10.0.0.18,nw_dst=10.0.0.26 actions=output:1

出端口等于入端口,交换机能接收到数据包,并不会保存这份数据包然后将它从入端口转发出去。

同理设置流表中的动作为 OFPP_IN_PORT 也不行(所以这个选项到底是用在哪的)。

可行的方法

把需要折返的链路看作单向链路,在 s2 与 s4 之间建立两条连线,如图所示。

给 s4 配置流表:

 cookie=0x0, duration=22.849s, table=0, n_packets=0, n_bytes=0, idle_age=22, 
priority=3,udp,in_port=2,nw_src=10.0.0.18,nw_dst=10.0.0.26 actions=output:1

给 s2 配置流表:

 cookie=0x0, duration=22.849s, table=0, n_packets=0, n_bytes=0, idle_age=22, 
priority=3,udp,in_port=1,nw_src=10.0.0.18,nw_dst=10.0.0.26 actions=output:3
 cookie=0x0, duration=22.849s, table=0, n_packets=0, n_bytes=0, idle_age=22, 
priority=3,udp,in_port=2,nw_src=10.0.0.18,nw_dst=10.0.0.26 actions=output:4

这样才可以实现数据流的折返。

上一篇下一篇

猜你喜欢

热点阅读