0x00概述
众所周知,Linux是一个有很多潜在可能性的东西,包括并不仅限于成为一台路由器。
让Linux成为一台路由器并不是一件难事。作为一个通讯硬件厂商出身的攻城狮,自然是习惯于交互式CLI配置的路由器,所以我选择FRRouting。

0x01成为路由器
官网:https://www.frrouting.org
RHEL安装速通:https://rpm.frrouting.org
Debian安装速通:https://deb.frrouting.org
个人倾向于选择frr-8版本,太新的不稳定,太老的有些版本兼容性问题。

0x02其他OS配置
老生常谈,关闭SELinux:vim /etc/sysconfig/selinux打开selinux文件,将文件中“SELINUX=enforcing”修改为“SELINUX=disabled”,修改保存后,重新启动。
配置转发功能并关闭严格过滤:vim /etc/sysctl.conf,添加:
net.ipv4.ip_forward=1
net.ipv6.conf.default.forwarding=1
net.ipv6.conf.all.forwarding=1
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.rp_filter=0
保存后sysctl -p即时生效
其他奇葩的路由配置在bgp troubleshooting系列中说明。

0x03启动端口
无论是Zerotier,TailScale,还是Wireguard,现在是时候创建端口了。如果直控虚拟化环境,可以直接加虚拟网卡更简单,不多赘述。

0x04启动协议
FRRouting默认不启动路由协议,请按需启动。vim /etc/frr/daemon ,文件中有一些熟悉的字眼:
bgpd=no
ospfd=no
ospf6d=no
ripd=no
ripngd=no
isisd=no
pimd=no
ldpd=no
nhrpd=no
eigrpd=no
babeld=no
sharpd=no
pbrd=no
bfdd=no
fabricd=no
vrrpd=no
pathd=no
需要那些就改成yes,保存。执行systemctl restart frr重启frr,再执行systemctl enable frr开机自启动。
这已经是一台成熟的路由器了。

0x05开始搞机
在root权限下输入vtysh进入命令行,是一个比较标准的Cisco逻辑的CLI控制台。
默认是只读视图,查看命令用show。
敲configure terminal进入系统视图,提示符变成(config)#就可以开始搞事情了。
配置BGP,先进router bgp[ASN],里面配邻居和宣告就轻车熟路了。
OSPF同理,router ospf进去配。
配置完了记得先退回到只读模式执行保存 write memory保存后再exit退出。

0x06高级一点
如果不希望私网路由窜进公网,或者想搞一网多用,此处可以使用VRF特性,与企业级网络设备的VRF比较类似。
VRF特性需要iproute支持,先yum install iproute
创建一个VRF:sudo ip link add vrf1 type vrf table 101
绑定端口到VRF:sudo ip link set dev eth0 master vrf1
把VRF开起来:sudo ip link set dev vrf1 up
查看VRF:ip link show
用这种方式隔离不同业务属性的的路由表,通过不同VRF之间的路由可以实现overlay跑在underlay上。

标签: none

添加新评论