最终效果
躺在床上的时候,看到桌面上有个不知道放了多久的树莓派,整天看着别人的软路由就很想搞一个,可是看看ROS那些的硬件和授权价格,再看看硬路由的价格只能表示打扰了,再看看自己的TPlink路由器留下了不争气的泪水
本次使用的是树莓派3B+FRRouting,如果各位富婆有4B的话性能可能会好很多(咱这种五类线用户,压根就不需要千兆啥的,看树莓派配置也蛮香的)
网络架构如下
设备如下
设备 | 系统 | 软件 |
树莓派Raspberry Pi | Ubuntu 18.04 | FRRouting |
镇江NAT VPS | Debian 10 | FRRouting |
日本Vultr VPS | Debian 10 | Bird6 |
因为咱本地到日本Vultr 200ms左右 ,咱到镇江30~40ms 镇江到日本 60~110ms,所以就拿镇江当类似中转了,加上镇江VPS的配置比较高,可以在上面做多点有趣的事情(虽然直接选择香港可能会好很多,可是香港的价格,劝退)
配置这里的一大部分时间主要还是在树莓派上,Ubuntu 19.04出现了下面几个坑
- netplan 抽风,咱在netplan配置的v6 ip地址,莫名奇妙的同时出现在了ZeroTier网卡和io网卡上,然后ZeroTier不分配ip报废
- deb frrouting 404错误,虽然可以通过apt install frr 来进行安装,安装后好像还是有奇怪的问题(咱不知道怎么编译安装)
每台机器记得开启IPV6转发(编辑 /etc/sysctl.conf 文件)
在 /etc/sysctl.conf 后面加上
net.ipv4.conf.all.forwarding=1
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.all.proxy_ndp = 1
net.ipv6.conf.all.accept_ra = 2
然后终端输入命令 sysctl -p
树莓派网卡配置
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.120
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameserver 8.8.8.8
auto eth0:1
iface eth0:1 inet6 static
address 网关IPV6
netmask 48
# dns-nameserver 2400:3200::1 2400:da00::6666
source /etc/network/interfaces.d/*.cfg
树莓派FRRouting配置
Current configuration:
!
frr version 7.2
frr defaults traditional
hostname YFRoute
log syslog informational
service integrated-vtysh-config
!
ipv6 route ::/0 镇江VPS ZeroTier IPV6
!
router bgp 你的ASN
bgp router-id 114.5.1.4
no bgp default ipv4-unicast
neighbor 镇江VPS ZeroTier IPV6 remote-as 139782
!
address-family ipv6 unicast
network 要广播的网段
neighbor 镇江VPS ZeroTier IPV6 activate
exit-address-family
!
line vty
!
end
镇江NAT VPS 配置(因为镇江还有ZT与LAX其他对等所以删除了一部分多余的内容)
Current configuration:
!
frr version 7.2
frr defaults traditional
hostname zj
log syslog informational
service integrated-vtysh-config
!
ipv6 route ::/0 日本Vultr ZT IPV6
!
router bgp 恁的ASN
no bgp default ipv4-unicast
neighbor 树莓派 ZT IPV6 remote-as 9886
neighbor 日本Vultr ZT IPV6 remote-as 恁的ASN
neighbor 日本Vultr ZT IPV6 description Vultr
!
address-family ipv6 unicast
neighbor 树莓派 ZT IPV6 activate
neighbor 日本Vultr ZT IPV6 activate
exit-address-family
!
!
line vty
!
end
日本Vultr VPS配置
router id 19.19.8.10;
protocol kernel {
scan time 60;
import none;
export all; # Actually insert routes into the kernel routing table
}
protocol direct
{
interface "dummy*";
import all;
}
protocol static
{
}
protocol device {
scan time 60;
}
protocol bgp zhenjiang
{
local as 208498;
source address ZT本机IP;
import filter {
if net = 恁树莓派宣告的ip段 then accept;
reject;
};
export none;
neighbor 镇江ZT IPV6 as 恁的ASN;
}
protocol bgp vultr
{
local as 208498;
source address VPS IPV6;
import all;
export all;
graceful restart on;
multihop 2;
neighbor Vultr给出的对等IP as 64515;
password "11451419191810(你Vultr设置的密码)";
}
protocol bgp he
{
local as 208498;
source address HE Tunnel本地IP;
import all;
export all;
neighbor HE Tunnel IP as 6939;
}
电脑端 联网配置
(如果网络不稳定,嗯,一定是NTT和垃圾镇江网络的锅,逃)
后续可做
- 配置DHCP服务器,自动分配IPV6
- 把树莓派贴到路由器上面
- 配置Vultr优先走AS20473 其次才是 AS6939
你好,想請教個問題
看了一下路由追蹤的截圖以及文章內容
請問第二路是到日本Vultr還是香港He Tunnel呀
@Yi 写这篇文章的时候是因为江苏镇江到日本东京Vultr延迟只有50ms且非常稳定(现在不推荐这样了)。
路由路径第一跳是镇江,第二条是日本VU。
日本Vultr和香港He打了Tunnel,所以效果图出现了走到日本Vultr后 日本Vultr下一跳是香港HE的情况。