《零入门kubernetes网络实战》视频专栏地址
https://www.ixigua.com/7193641905282875942
本篇文章视频地址(稍后上传)
本篇文章介绍一下,使用
github.com/vishvananda/netlink
来操作tun设备
1、安装github.com/vishvananda/netlink |
go get github.com/vishvananda/netlink
2、源代码如下 |
代码如下:
package mainimport ("github.com/vishvananda/netlink"
)const tunName = "tun19"func main() {la := netlink.LinkAttrs{Name: tunName,Index: 8,MTU: 1500,}tun := netlink.Tuntap{LinkAttrs: la,Mode: netlink.TUNTAP_MODE_TUN,}l, err := netlink.LinkByName(tunName)if err == nil {// 先将tun虚拟网络设备Down掉netlink.LinkSetDown(l)// 将tun虚拟网络设备删掉netlink.LinkDel(l)}// 每次创建新的tun设备err = netlink.LinkAdd(&tun)if err != nil {panic(err)}l, err = netlink.LinkByName(tunName)ip, err := netlink.ParseIPNet("10.244.1.3/24")addr := &netlink.Addr{IPNet: ip, Label: ""}if err = netlink.AddrAdd(l, addr); err != nil {panic(err)}err = netlink.LinkSetUp(l)if err != nil {panic(err)}
}
3、本地编译 |
编译运行,上传到测试服务器上
为了多次测试运行方便,提供了
Makefile文件
具体内容如下:
build:CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.goscp:scp main root@10.211.55.122:/rootall:make build && make scp
4、登录到测试服务器上 |
ip a s eth0ip link sh tun19./main ip link sh tun19ethtool -i tun19
点击 下面 返回 专栏目录 |
<<零入门kubernetes网络实战>>技术专栏之文章目录