Fix: restricting route listing to IPv4 only (#419)
This commit is contained in:
@@ -95,7 +95,7 @@ func (c *configurator) enable(ctx context.Context) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, network := range c.localNetworks {
|
for _, network := range c.localNetworks {
|
||||||
if err := c.acceptOutputFromIPToSubnet(ctx, network.InterfaceName, network.IP, network.Subnet, remove); err != nil {
|
if err := c.acceptOutputFromIPToSubnet(ctx, network.InterfaceName, network.IP, *network.IPNet, remove); err != nil {
|
||||||
return fmt.Errorf("cannot enable firewall: %w", err)
|
return fmt.Errorf("cannot enable firewall: %w", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -109,7 +109,7 @@ func (c *configurator) enable(ctx context.Context) (err error) {
|
|||||||
// Allows packets from any IP address to go through eth0 / local network
|
// Allows packets from any IP address to go through eth0 / local network
|
||||||
// to reach Gluetun.
|
// to reach Gluetun.
|
||||||
for _, network := range c.localNetworks {
|
for _, network := range c.localNetworks {
|
||||||
if err := c.acceptInputToSubnet(ctx, network.InterfaceName, network.Subnet, remove); err != nil {
|
if err := c.acceptInputToSubnet(ctx, network.InterfaceName, *network.IPNet, remove); err != nil {
|
||||||
return fmt.Errorf("cannot enable firewall: %w", err)
|
return fmt.Errorf("cannot enable firewall: %w", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type LocalNetwork struct {
|
type LocalNetwork struct {
|
||||||
Subnet net.IPNet
|
IPNet *net.IPNet
|
||||||
InterfaceName string
|
InterfaceName string
|
||||||
IP net.IP
|
IP net.IP
|
||||||
}
|
}
|
||||||
@@ -117,7 +117,7 @@ func (r *routing) LocalNetworks() (localNetworks []LocalNetwork, err error) {
|
|||||||
return localNetworks, fmt.Errorf("cannot find any local interfaces")
|
return localNetworks, fmt.Errorf("cannot find any local interfaces")
|
||||||
}
|
}
|
||||||
|
|
||||||
routes, err := netlink.RouteList(nil, netlink.FAMILY_ALL)
|
routes, err := netlink.RouteList(nil, netlink.FAMILY_V4)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return localNetworks, fmt.Errorf("cannot list local routes: %w", err)
|
return localNetworks, fmt.Errorf("cannot list local routes: %w", err)
|
||||||
}
|
}
|
||||||
@@ -131,9 +131,9 @@ func (r *routing) LocalNetworks() (localNetworks []LocalNetwork, err error) {
|
|||||||
|
|
||||||
var localNet LocalNetwork
|
var localNet LocalNetwork
|
||||||
|
|
||||||
localNet.Subnet = *route.Dst
|
localNet.IPNet = route.Dst
|
||||||
if r.verbose {
|
if r.verbose {
|
||||||
r.logger.Info("local subnet found: %s", localNet.Subnet.String())
|
r.logger.Info("local ipnet found: %s", localNet.IPNet.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
link, err := netlink.LinkByIndex(route.LinkIndex)
|
link, err := netlink.LinkByIndex(route.LinkIndex)
|
||||||
|
|||||||
Reference in New Issue
Block a user