2016-06-07 93 views
1

我知道这不是典型的,合法的 stackoverflow问题,但它似乎是一个非常艰难的,因为没有人有一个确切的答案。所以,回到主题,我知道有一个隧道ID元数据匹配字段,它是在1.3 openflow版本中引入的,如果我没有弄错的话。但是,在支持隧道协议的封装和解封装过程中是否有任何行动,比如GTP?我猜想,由于隧道元数据存在于openflow匹配实现中,所以在这种情况下,为了将实际隧道ip包的路由决策应用于特定的encap/decap操作,具体是什么?OpenFlow中的GTP支持

回答

1

tunnel_id是一个通用的字段,其中隧道协议标识符应当匹配(参见OpenFlow spec 1.5):

在隧道ID字段中的可选封装元数据的映射是由逻辑端口定义实现,它依赖于逻辑端口的类型,并且是实现特定的。我们建议对于通过包含(32位)密钥的GRE隧道接收的数据包,密钥存储在较低的32位中,高位为零。我们建议对于MPLS逻辑端口,低20位表示MPLS标签。我们建议对于VxLAN逻辑端口,低24位表示VNI。

因此,基本上,是的,如果一些设备将解析GTP报头,它应该(可能)的TEID映射到tunnel_id领域,这一切似乎是直接在数据路径内完成 - 自动并且 - 根据规范 - 没有任何可以/不得不采取的进一步行动。

关于GTP:我不知道在任何支持它的普遍可用的OpenFlow硬件(我很喜欢,我们有这方面的用例..)。

+0

我对自己的GTP事情有了更多的了解,简短的回答是NO,在当前的OpenFlow实现中,由于GTP本身不是交换机定义的,所以gtp头中的TEID不会被识别。 – pa5h1nh0