Frrouting

Frrouting

1. FRR配置

拓扑图

Cloud1和Cloud2分别代表两台linux主机,两台主机连接路由器
在这里插入图片描述

1.1 安装基础包

系统

Linux archlinux 5.12.12-arch1-1

# 更新系统
pacman -Syu
# 安装基础包
pacman -S git base-devel cmake make gcc pkg-config doxygen python3 net-snmp python-pytest c-ares python-sphinx systemd-libs python systemd json-c libcap libnl libunwind ncurses pam perl readline bison patch perl-xml-libxml libxml2 vim
# 重启加载新的内核和模块
reboot
# 新建普通用户
useradd -m test

1.2 安装libyang

# 安装libyang
cd /home/test
git clone https://github.com/CESNET/libyang.git
cd libyang
mkdir build; cd build
cmake -D CMAKE_INSTALL_PREFIX:PATH=/usr \
      -D CMAKE_BUILD_TYPE:String="Release" ..
make && make install

# 创建用户和组
groupadd -r -g 92 frr
groupadd -r -g 85 frrvty
useradd --system -g frr \
--home-dir /var/run/frr/ \
-c "FRR suite" --shell /sbin/nologin frr
usermod -a -G frrvty frr

1.3 安装frrouting

# 安装frr
cd /home/test
git clone https://github.com/frrouting/frr.git
cd frr
./bootstrap.sh
./configure \
    --prefix=/usr/ \
    --includedir=\${prefix}/include \
    --enable-exampledir=\${prefix}/share/doc/frr/examples \
    --bindir=\${prefix}/bin \
    --sbindir=\${prefix}/lib/frr \
    --libdir=\${prefix}/lib/frr \
    --libexecdir=\${prefix}/lib/frr \
    --localstatedir=/var/run/frr \
    --sysconfdir=/etc/frr \
    --with-moduledir=\${prefix}/lib/frr/modules \
    --enable-configfile-mask=0640 \
    --enable-logfile-mask=0640 \
    --enable-snmp=agentx \
    --enable-multipath=64 \
    --enable-user=frr \
    --enable-group=frr \
    --enable-vty-group=frrvty \
    --with-pkg-git-version \
    --enable-systemd=yes \
    --with-pkg-extra-version=-MyOwnFRRVersion \
    SPHINXBUILD=/usr/bin/sphinx-build
make && make install

# 安装frr配置文件
install -m 775 -o frr -g frr -d /var/log/frr
install -m 775 -o frr -g frrvty -d /etc/frr
install -m 640 -o frr -g frrvty tools/etc/frr/vtysh.conf /etc/frr/vtysh.conf
install -m 640 -o frr -g frr tools/etc/frr/frr.conf /etc/frr/frr.conf
install -m 640 -o frr -g frr tools/etc/frr/daemons.conf /etc/frr/daemons.conf
install -m 640 -o frr -g frr tools/etc/frr/daemons /etc/frr/daemons

# 内核转发
echo "net.ipv4.conf.all.forwarding=1" >> /etc/sysctl.d/90-routing-sysctl.conf
echo "net.ipv6.conf.all.forwarding=1" >> /etc/sysctl.d/90-routing-sysctl.conf

# 添加MPLS内核模块
echo "mpls_router" >> /etc/modules-load.d/modules.conf
echo "mpls_iptunnel" >> /etc/modules-load.d/modules.conf

# 载入内核模块
modprobe mpls-router mpls-iptunnel

#启用MPLS转发
echo "net.mpls.conf.ens33.input=1" >> /etc/sysctl.conf
echo "net.mpls.conf.ens34.input=1" >> /etc/sysctl.conf
echo "net.mpls.platform_labels=100000" >> /etc/sysctl.conf
sysctl -p

# 安装服务
install -m 644 tools/frr.service /etc/systemd/system/frr.service

# 启动frr
systemctl daemon-reload && systemctl restart frr

# 开机自启
systemctl enable frr

1.4 启动路由服务

# 开启服务相应服务将“no”改为“yes”,本例启动ospf
vim /etc/frr/daemons
ospfd=yes
ospfd_instances=1							# ospf进程号,支持多进程,用“,”隔开
pimd=yes

# 启用MAX_FDS
MAX_FDS=1024
# 启用vtysh
vtysh_enable=yes
zebra_options=" -s 90000000 --daemon -A 127.0.0.1"
bgpd_options="   --daemon -A 127.0.0.1"
ospfd_options="  --daemon -A 127.0.0.1"
ospf6d_options=" --daemon -A ::1"
ripd_options="   --daemon -A 127.0.0.1"
ripngd_options=" --daemon -A ::1"
isisd_options="  --daemon -A 127.0.0.1"
pimd_options="  --daemon -A 127.0.0.1"
ldpd_options="  --daemon -A 127.0.0.1"
nhrpd_options="  --daemon -A 127.0.0.1"
eigrpd_options="  --daemon -A 127.0.0.1"
babeld_options="  --daemon -A 127.0.0.1"
sharpd_options="  --daemon -A 127.0.0.1"
pbrd_options="  --daemon -A 127.0.0.1"
staticd_options="  --daemon -A 127.0.0.1"
bfdd_options="  --daemon -A 127.0.0.1"
fabricd_options="  --daemon -A 127.0.0.1"
vrrpd_options="  --daemon -A 127.0.0.1"
pathd_options="  --daemon -A 127.0.0.1"

#添加以下条目到/etc/services
zebrasrv      2600/tcp                 # zebra service
zebra         2601/tcp                 # zebra vty
ripd          2602/tcp                 # RIPd vty
ripngd        2603/tcp                 # RIPngd vty
ospfd         2604/tcp                 # OSPFd vty
bgpd          2605/tcp                 # BGPd vty
ospf6d        2606/tcp                 # OSPF6d vty
ospfapi       2607/tcp                 # ospfapi
isisd         2608/tcp                 # ISISd vty
babeld        2609/tcp                 # BABELd vty
nhrpd         2610/tcp                 # nhrpd vty
pimd          2611/tcp                 # PIMd vty
ldpd          2612/tcp                 # LDPd vty
eigprd        2613/tcp                 # EIGRPd vty
bfdd          2617/tcp                 # bfdd vty
fabricd       2618/tcp                 # fabricd vty
vrrpd         2619/tcp                 # vrrpd vty
# 重新启动frr
systemctl daemon-reload && systemctl restart frr

1.5 配置路由服务

# 命令类似思科系列
# 进入路由配置
vtysh
# 显示当前配置
show running-config
# 进入全局配置
conf t
# 进入ospf配置
router ospf 1
# 配置route-id
ospf router-id 1.1.1.1
# 宣告网络及区域
network 192.168.10.0/24 area 0
# 退出
exit或quit
# 保存
write
# 配置保存在/etc/frr/frr.conf

2. 配置路由器

# 路由器开启ospf并配置ospf网络

3. 测试

# 在路由器上查看ospf邻居是否有两台Linux主机的route-id和IP地址,或者分别在linux主机查看是否有路由器的route-id和IP地址
show ip ospf neighbor

在这里插入图片描述

# 分别在linux主机查看是否有以“O”开头的路由
show ip route

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值