https://github.com/mininet/openflow-tutorial/wiki/Control-a-Slice-of-a-real-Network
在本练习中,您将创建一个静态的第3层转发器/交换机。它不完全是路由器,因为它不会递减IP TTL并在每个跃点处重新计算校验和(因此traceroute无法工作)。在即将发布的OpenFlow 1.1版中,预计将进行TTL和校验和修改的操作。但是,它将像真实路由器一样在掩码的IP前缀范围内匹配。
IP路由器可以与其他种类的分组交换设备区分开来,因为路由器会在交换过程中检查IP协议头。通常,它会删除接收消息的链路层头,修改IP头,并替换链路层头以进行重传。
为了简化练习,您的“路由器”将完全是静态的。如果没有BGP或OSPF,则无需发送或接收路由表更新。
每个网络节点将具有一个已配置的子网。如果将数据包发送到该子网中的主机,则该节点将充当交换机,将数据包无任何更改地转发到已知端口或广播,就像在上一个练习中一样。如果数据包发往路由器知道下一跳的某个IP地址,则应修改第2层目标并将数据包转发到正确的端口。
我们的希望是,该练习将表明,使用启用了OpenFlow的转发设备,网络实际上是无层的。您可以混合使用交换机,路由器和更高层的功能。
创建拓扑
您将需要一个稍微不同的拓扑,如下所示: 注意:对于Mininet 2.0,主机已重新编号为h1-h3和10.1-10.3。
在以下位置有一个示例自定义拓扑:sudo mn --c