feat(routing): add IPv6 inbound routing

This commit is contained in:
Quentin McGaw
2022-03-13 19:36:45 +00:00
parent ace5e97e68
commit e2ba2f82c0

View File

@@ -18,12 +18,12 @@ func (r *Routing) routeInboundFromDefault(defaultRoutes []DefaultRoute) (err err
} }
defaultDestinationIPv4 := net.IPNet{IP: net.IPv4(0, 0, 0, 0), Mask: net.IPv4Mask(0, 0, 0, 0)} defaultDestinationIPv4 := net.IPNet{IP: net.IPv4(0, 0, 0, 0), Mask: net.IPv4Mask(0, 0, 0, 0)}
// TODO IPv6 defaultDestinationIPv6 := net.IPNet{IP: net.IPv6zero, Mask: net.IPMask(net.IPv6zero)}
for _, defaultRoute := range defaultRoutes { for _, defaultRoute := range defaultRoutes {
defaultDestination := defaultDestinationIPv4 defaultDestination := defaultDestinationIPv4
if defaultRoute.Family == netlink.FAMILY_V6 { if defaultRoute.Family == netlink.FAMILY_V6 {
continue // skip IPv6 default routes defaultDestination = defaultDestinationIPv6
} }
err := r.addRouteVia(defaultDestination, defaultRoute.Gateway, defaultRoute.NetInterface, inboundTable) err := r.addRouteVia(defaultDestination, defaultRoute.Gateway, defaultRoute.NetInterface, inboundTable)
@@ -37,12 +37,12 @@ func (r *Routing) routeInboundFromDefault(defaultRoutes []DefaultRoute) (err err
func (r *Routing) unrouteInboundFromDefault(defaultRoutes []DefaultRoute) (err error) { func (r *Routing) unrouteInboundFromDefault(defaultRoutes []DefaultRoute) (err error) {
defaultDestinationIPv4 := net.IPNet{IP: net.IPv4(0, 0, 0, 0), Mask: net.IPv4Mask(0, 0, 0, 0)} defaultDestinationIPv4 := net.IPNet{IP: net.IPv4(0, 0, 0, 0), Mask: net.IPv4Mask(0, 0, 0, 0)}
// TODO IPv6 defaultDestinationIPv6 := net.IPNet{IP: net.IPv6zero, Mask: net.IPMask(net.IPv6zero)}
for _, defaultRoute := range defaultRoutes { for _, defaultRoute := range defaultRoutes {
defaultDestination := defaultDestinationIPv4 defaultDestination := defaultDestinationIPv4
if defaultRoute.Family == netlink.FAMILY_V6 { if defaultRoute.Family == netlink.FAMILY_V6 {
continue // skip IPv6 default routes defaultDestination = defaultDestinationIPv6
} }
err := r.deleteRouteVia(defaultDestination, defaultRoute.Gateway, defaultRoute.NetInterface, inboundTable) err := r.deleteRouteVia(defaultDestination, defaultRoute.Gateway, defaultRoute.NetInterface, inboundTable)