在 Linux 上安装和配置 OLSRd
本文档介绍如何在基于 Debian/Ubuntu 的 Linux 系统上安装、配置和测试 OLSRd(Optimized Link State Routing protocol)。
步骤 1:更新系统并安装依赖
# 更新软件包列表
sudo apt update
# 安装编译工具和依赖
sudo apt install -y bison flex build-essential
步骤 2:下载并编译 OLSRd
# 从 GitHub 克隆 OLSRd 仓库
git clone https://github.com/OLSR/olsrd.git
# 进入源码目录
cd olsrd
# 编译 OLSRd
make
# 安装 OLSRd
sudo make install
步骤 3:配置 OLSRd
编辑 OLSRd 配置文件,通常位于 /etc/olsrd/olsrd.conf:
sudo vim /etc/olsrd/olsrd.conf
在配置文件中,确保指定正确的网络接口(例如 ens18):
Interface "ens18"
{
# 可选参数(根据需求调整)
Ip4Broadcast 255.255.255.255
HelloInterval 2.0
TcInterval 5.0
MidInterval 5.0
HnaInterval 5.0
}
步骤 4:运行 OLSRd
前台运行(调试模式,输出详细信息):
sudo olsrd -i ens18 -d 2
后台运行(无输出):
sudo olsrd -i ens18 -d 0 &
步骤 5:验证 OLSRd 运行
查看路由表:
ip route show
或使用:
route -n
如果 OLSRd 正常运行,你应该能看到通过 OLSR 协议学习到的路由条目。
步骤 6:防火墙配置
OLSRd 使用 UDP 端口 698 进行通信,确保防火墙允许该端口:
sudo ufw allow 698/udp
步骤 7:测试 OLSR 【同一子网情况下】
假设有三台主机:
172.16.40.54172.16.40.55172.16.40.56
实验目的: 172.16.40.56通过172.16.40.55学习到172.16.40.54的路由,用来模拟54设备与56断连情况。
测试步骤:
- 在
172.16.40.56上临时拒绝来自172.16.40.54的流量:
sudo ufw insert 1 deny from 172.16.40.54
-
在
172.16.40.54上检查是否仍能看到172.16.40.56的路由信息(通过 OLSR 邻居状态)。 -
恢复规则(测试完成后):
sudo ufw delete deny from 172.16.40.54
步骤八:不同子网路由传递
假设有三台主机:
172.16.40.54172.16.40.55172.16.40.56
实验目的: 172.16.40.54>>172.16.40.55>>172.16.40.56 172.16.40.55将192.168.0.0路由发布给172.16.40.54
172.16.40.54配置
172.16.40.55配置
olsrd -f /etc/olsrd/olsrd.conf -d 0
172.16.40.56配置
最终效果 跨子网路由传递成功
注意事项
- 确保所有节点的 OLSRd 配置中使用接口名称正确。
- 如需持久化运行,可考虑使用
systemd服务管理 OLSRd。 - 调试时可使用
-d参数输出日志,生产环境建议使用-d 0静默运行。 - 实现多跳访问时 需要开启ipv4转发功能 【net.ipv4.ip_forward=1】