前言
在前几篇文章中,我们得到了ASN IP地址段和一台可以用于BGP的服务器,现在我们就可以开始我们的BGP之旅了~(现在讲这个是不是不大对?算了不管了,继续)
今天要讲的是Peer,那我们首先就要知道什么是Peer.
注意:本文讲的不是Peer-to-Peer(P2P)网络!
那么什么是Peer呢?
我相信看这个文章的应该都知道traceroute(Windows就是tracert,一样的),那么大家在追踪路由的时候肯定会遇到某一个地址它对你的运营商不是”直连”的,会”绕路”.那Peer就是在网络运营商级别对这种问题的解决办法之一,它会在运营商与运营商之间建立BGP会话,双方会将相应对端宣告的IP地址段收录到系统路由表内(你可以这样想:电信说:”最近很多用户反馈从电信到长城会绕路.”那现在可以通过Peer解决这个问题,他们去找了长城之后呢,双方的骨干网设备路由表里有了到对方的路由,直接走系统路由表.)这个时候我不得不提Peer的弊端:路由表是要占内存的!而且因为所有这个运营商的流量都会从这一台设备上走,这会大大增大这台设备的负载.(当然,这么说并不完整,希望有大佬能在评论区补充)
正文
那我们作为一个普通的BGP Player,我们应该怎么Peer别人呢?
首先假设我们有一个运营商 A 到运营商 B 是绕路的
那么A或B其中一方可能会去联系对方表示我们可不可以Peer,在双方达成共识后,我们就可以开始Peer了.
首先要知道Peer的条件,双方同意(毕竟是需要双方共同配置的吗),我们需要在同一个局域网(大内网)内,如果需要通过公网Peer的话您可以通过自建光缆来打通双方的内网.这个时候我们假设网络已经打通.
现在我们正式开始配置
我们采用CentOS7与bird6作为演示
router id 10.0.0.3; # 路由器ID 格式与IPv4地址相同
protocol device {
scan time 15; # 设备上绑定的IP扫描 (单位是秒)
}
protocol kernel {
scan time 45; # 内核路由表扫描 (单位:秒)
device routes; # 定义设备
import none; # 不从内核路由表中导入任何路由
export all;
}
protocol static {
import all;
route 2001:db8::/32 reject; # 宣告的IP段 一行一个 reject为拒绝 此处用途是占位
}
protocol bgp AS1 { # 会话名称和协议定义
local 2001:db8:f1ca::0001:1 as 1; # 本端信息
import all; # 接受对端发送的所有路由表
export filter { # 宣告给对端的过滤
include "./v6/my.conf"; # 引用v6目录下的my.conf文件
reject; # 拒绝不匹配的路由表
};
next hop self; # 不知道怎么解释
direct; # 直接连接
graceful restart on; # 启用平滑重启
neighbor 2001:db8:f1ca::0002:1 as 2; # 对端信息
}
大佬 tql
大佬!绝对是大佬
是个大佬