MENU

[bgp挖坑v2] 使用tinc链接自己的所有bgp节点

RT
由于zerotier经过gfw一直蜜汁掉速,所以闲的发慌的时候一直在寻找zerotier的代替方案,最后确定的有wireguard/tinc/n2n三个,n2n配置之后不知为何无法正常连接,wireguard则现在作为其它用途所以不考虑,最后剩下的只有tinc,本篇主要讲如何配置tinc

准备

  • 需要互相连接的bgp节点机器
  • 一台作为tinc server的机器,bgp节点机器将连接至此机器,当然也可以使用任意bgp节点代替
  • ubuntu16或更高
    -一段ip(v4/v6都可以,这里建立bgp用的bird1并不是双栈的,便分了2种)
  • 脑子

配置server

安装直接用apt install tinc即可,不止ubuntu,基本所有linux发行版的仓库都有.

server的主要作用和wireguard的一样,就是下面2端同时在nat环境中的时候进行中转使用,还有就是...(我忘了)

配置和wireguard差不多,只是wireguard把用户配置和主机配置放到了一个conf中,而tinc则是分开了.

首先在/etc/tinc中创建一个目录名,然后这个目录名便是tinc的网络名,这里用bgp作为目录名.
然后在bgp中创建hosts文件夹,这里面放置所有相邻节点的公钥文件(即自身和所有子节点的公钥),同时,公钥内可以写对应节点的ip和端口信息(route模式需要,本次配置为switch模式,只需要写明tinc server的ip和port即可).

然后在bgp目录中创建tinc.conf,这里主要记录了本网络的tinc主要配置,看起来如下

Name=server
Device=/dev/net/tun
Mode = switch
Compression=9
Cipher  = aes-256-cbc
Digest = sha256
PrivateKeyFile=/etc/tinc/bgp/rsa_key.priv

其中需要注意到是Name字段,它制定了在hosts目录中本机的配置文件,然后记得更改PrivateKeyFile的路径(只需改路径,这里的文件是之后生成的)

然后在hosts目录中创建server,然后内容看起来应该如下

Subnet=100.72.0.1/32
Address=198.23.176.84
Port=1234

这里指定了对应机器的ip和端口和对应的子网ip,注意,在switch模式下,只需要给tinc server写这些信息,下面的机器是可以不写的

然后在shell中运行tincd -n bgp -K4096生成公私钥,然后一路回车,之后你会发现你的server配置文件中最下面多了公钥信息,然后在bgp目录多出了rsa_key.priv文件

除此之外还需要在bgp目录中创建tinc-uptinc-down两个文件,并设置0755权限,他们分别负责tinc网络启动和结束触发的时间,实质上是2个sh脚本,内容通常为启动的时候为网卡分配ip以及结束的时候设置网卡停止

tinc-up配置文件通常如下

ip link set $INTERFACE up
ip addr add 100.72.0.1/24 dev $INTERFACE
ip addr add 2a0c:b641:24f::1/48 dev $INTERFACE

tinc-down配置文件通常如下

ip link set $INTERFACE down

其中$INTERFACE是网卡名称,tinc执行的时候会自动赋值,不需要手动更改.

然后运行tincd -n bgp启动这个网络,停止则使用tincd -n bgp -k

从机设置

和wiregurad差不多,从机和server配置基本一模一样,只tinc.conf是多了一个ConnecteTo,比如下面这份配置

Name=hk
Device=/dev/net/tun
Mode = switch
Compression=9
Cipher  = aes-256-cbc
Digest = sha256
PrivateKeyFile=/etc/tinc/bgp/rsa_key.priv

然后这里并不需要在hosts里创建hk文件

然后创建tinc-uptinc-down并设置0755权限

tinc-up配置

ip link set $INTERFACE up
ip addr add 100.72.0.2/24 dev $INTERFACE
ip addr add 2a0c:b641:24f::2/48 dev $INTERFACE

tinc-down配置

ip link set $INTERFACE down

然后在shell中运行tincd -n bgp -K4096生成公私钥,然后一路回车,然后hosts里面便多出了hk文件,内容是纯公钥,将这个文件复制到tinc server机器上的bgp/hosts目录中,然后将server复制到从机的bgp/hosts目录中
然后从机执行tincd -n bgp启动即可

之后每增加一个从机,就将其他机器的hosts文件复制到新增的机器,然后新机器的hosts文件也复制到其它机器上,然后新机器启动tinc即可,而且,tinc server和其它从机不需要重启tinc,tinc本身会自动识别到新增的机器

然后按照从机配置增加另外一个新的从机,然后从机互相ping就会发现他们之间的流量没有经过server(前提双机至少有一个机器处于NAT2类型网络下)

然后就可以配置bgp了(这将是另外一篇文章的事情了...)

996.icu 996.icu