-
当main进程启动后端后,会触发handleSubnetEvents处理事件
-
新建vxlanRoute路由,用作流量封包,结构如下:
netlink.Route{ LinkIndex: nw.dev.link.Attrs().Index, Scope: netlink.SCOPE_UNIVERSE, Dst: sn.ToIPNet(), Gw: sn.IP.ToIP(), }
-
新建directRoute路由,若远程主机在一个子网内,则不需要走vxlanRoute,走directRoute,结构如下:
netlink.Route{ Dst: sn.ToIPNet(), Gw: attrs.PublicIP.ToIP(), }
-
通过DirectRouting判断路由是否在一个子网内,若是则对路由表directRoute进行修改,否则对FDB、ARP、vxlanRoute进行修改
-
判断事件类型,有EventAdded和EventRemoved两种,分别为添加路由和删除路由
flannel源码分析--handleSubnetEvents
最新推荐文章于 2021-07-28 11:25:57 发布