Skip to content

添加类似于MPLS或者SRv6的segment routing,提高线路选择自由度 #193

Description

@ccaapton

目前客户只能选择p2p或者relay, 如果有3个节点A/B/C, A->C的直连很差,A->B->C的连接很好,但是B在nat后面没办法成为服务器,那现在是没有办法做到的。

从目前包结构来看,把src/dest变成一个label stack应该是比较容易实现。

如果觉得label stack会太占用空间,而且对zero-copy不友好,可以用另外一种方式:
把dest id和真实节点解藕, 让真实节点可以对应多个dest id.换句话说,dest id实际上可以变成path id. 这样的话, 通过下面的路由表就能实现线路选择:
RouteTable_A: {1: C, 2:B}
RouteTable_B: {2:C, 3:A}
RouterTable_C: {3: B, 4: A}

A如果要选A->C, 可以设定path id为1, 如果A->B->C中转就选path id=2.
C如果要选C->A, 可以设定path id为4, 如果C->B->A中转就选path id=3.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions