mirror of
https://github.com/kubenetworks/kubevpn.git
synced 2025-12-24 11:51:13 +08:00
feat: use netlink
This commit is contained in:
1
go.mod
1
go.mod
@@ -12,7 +12,6 @@ require (
|
||||
github.com/fsnotify/fsnotify v1.6.0
|
||||
github.com/go-openapi/jsonpointer v0.19.6 // indirect
|
||||
github.com/miekg/dns v1.1.50
|
||||
github.com/milosgajdos/tenus v0.0.3
|
||||
github.com/moby/term v0.0.0-20221205130635-1aeaba878587
|
||||
github.com/opencontainers/image-spec v1.0.3-0.20220303224323-02efb9a75ee1
|
||||
github.com/pkg/errors v0.9.1
|
||||
|
||||
2
go.sum
2
go.sum
@@ -628,8 +628,6 @@ github.com/miekg/pkcs11 v1.0.2/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WT
|
||||
github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs=
|
||||
github.com/miekg/pkcs11 v1.1.1 h1:Ugu9pdy6vAYku5DEpVWVFPYnzV+bxB+iRdbuFSu7TvU=
|
||||
github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs=
|
||||
github.com/milosgajdos/tenus v0.0.3 h1:jmaJzwaY1DUyYVD0lM4U+uvP2kkEg1VahDqRFxIkVBE=
|
||||
github.com/milosgajdos/tenus v0.0.3/go.mod h1:eIjx29vNeDOYWJuCnaHY2r4fq5egetV26ry3on7p8qY=
|
||||
github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4=
|
||||
github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db h1:62I3jR2EmQ4l5rM/4FEfDWcRD+abF5XlKShorW5LRoQ=
|
||||
github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db/go.mod h1:l0dey0ia/Uv7NcFFVbCLtqEBQbrT4OCwCSKTEv6enCw=
|
||||
|
||||
@@ -11,7 +11,6 @@ import (
|
||||
|
||||
"github.com/containernetworking/cni/pkg/types"
|
||||
"github.com/docker/libcontainer/netlink"
|
||||
"github.com/milosgajdos/tenus"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"golang.zx2c4.com/wireguard/tun"
|
||||
|
||||
@@ -29,40 +28,40 @@ func createTun(cfg Config) (conn net.Conn, itf *net.Interface, err error) {
|
||||
mtu = config.DefaultMTU
|
||||
}
|
||||
|
||||
var ifce tun.Device
|
||||
ifce, err = tun.CreateTUN("utun", mtu)
|
||||
var device tun.Device
|
||||
device, err = tun.CreateTUN("utun", mtu)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
var name string
|
||||
name, err = ifce.Name()
|
||||
name, err = device.Name()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
link, err := tenus.NewLinkFrom(name)
|
||||
ifc, err := net.InterfaceByName(name)
|
||||
if err != nil {
|
||||
err = fmt.Errorf("could not find interface name: %s", err)
|
||||
return
|
||||
}
|
||||
|
||||
cmd := fmt.Sprintf("ip link set dev %s mtu %d", name, mtu)
|
||||
log.Debugf("[tun] %s", cmd)
|
||||
if er := link.SetLinkMTU(mtu); er != nil {
|
||||
if er := netlink.NetworkSetMTU(ifc, mtu); er != nil {
|
||||
err = fmt.Errorf("%s: %v", cmd, er)
|
||||
return
|
||||
}
|
||||
|
||||
cmd = fmt.Sprintf("ip address add %s dev %s", cfg.Addr, name)
|
||||
log.Debugf("[tun] %s", cmd)
|
||||
if er := link.SetLinkIp(ip, ipNet); er != nil {
|
||||
if er := netlink.NetworkLinkAddIp(ifc, ip, ipNet); er != nil {
|
||||
err = fmt.Errorf("%s: %v", cmd, er)
|
||||
return
|
||||
}
|
||||
|
||||
cmd = fmt.Sprintf("ip link set dev %s up", name)
|
||||
log.Debugf("[tun] %s", cmd)
|
||||
if er := link.SetLinkUp(); er != nil {
|
||||
if er := netlink.NetworkLinkUp(ifc); er != nil {
|
||||
err = fmt.Errorf("%s: %v", cmd, er)
|
||||
return
|
||||
}
|
||||
@@ -81,7 +80,7 @@ func createTun(cfg Config) (conn net.Conn, itf *net.Interface, err error) {
|
||||
}
|
||||
|
||||
conn = &tunConn{
|
||||
ifce: ifce,
|
||||
ifce: device,
|
||||
addr: &net.IPAddr{IP: ip},
|
||||
}
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user