首页
学习
活动
专区
圈层
工具
发布
39 篇文章
1
Docker 从Dockerfile 构建镜像 :build 命令的用法
2
[操作系统] 环境变量详解
3
【多厂商设备仿真】EVE-NG社区懒人版5.1+使用方法,如何导入、设备连线、关联CRT、抓包
4
EVE-NG社区懒人版发布——By EmulatedLab
5
一键开启AI编程新纪元:Windows版Trae初体验
6
PySide6 GUI 编程(14):QDial的使用
7
【Python篇】PyQt5 超详细教程——由入门到精通(序篇)
8
猫头虎分享:Python库 Twisted 的简介、安装、用法详解入门教程
9
在 Visual Studio Code 中添加自定义的代码片段
10
【Docker项目实战】使用Docker部署HomeBox家庭库存管理系统
11
Flet-基于Flutter的Python跨平台开发框架(组件学习)
12
Deno对Node最近支持TypeScript的回应
13
深入理解css中的link 和 @import
14
go语言安装及其环境配置
15
《深入浅出Dart》Dart的命令行和Web编程
16
FastAPI(42)- Static Files 静态资源
17
FastAPI 学习之路(三十八)Static Files
18
Python Playwright 入门指南
19
VueHooks Plus:Vue 3 Hooks 的全面解决方案
20
基于 Vue3、TypeScript、Vite2、Pinia 开源的后台管理框架
21
Vue2 + Element-Plus极客范儿后台管理框架,告别繁琐开发!
22
一文带你搞清楚USB、type-C、雷电三接口之间的区别与联系
23
使用tinc+quagga搭建个人SD-WAN网络
24
SSL VPN搭建与使用(OpenVpn)
25
利用Simple-RTMP-Server搭建RTMP和HLS直播服务(上)
26
飞牛 fnos 使用docker部署 Windows 系统:虚拟机的轻量级替代方案
27
iptable端口重定向 MASQUERADE[通俗易懂]
28
68.8K的 star的Supabase免费!2 分钟搞定用户认证功能
29
全新升级!Supabase 与 Next.js 14 的完美融合
30
Arista 收购软件定义网络先驱 Pluribus
31
你的第一个XDP BPF 程序
32
关于 COS 发布新域名 tencentcos.cn 的通知
33
腾讯云主机安装COSFS工具并使用COS对象存储
34
大白话讲清楚:什么是 Langchain 及其核心概念
35
当 Redis 原生支持 JSON,大厂程序员都说它像德芙一样丝滑
36
使用腾讯COS对象存储同步obsidian
37
【linux命令讲解大全】195.Bash 命令解析:declare 的用法和功能详解
38
统信 UOS 使用 Remmina 工具实现 RDP、SSH、SFTP 远程连接
39
终端下强大的资源管理器 -- Ranger 详解
清单首页2025文章详情

使用tinc+quagga搭建个人SD-WAN网络

使用tinc+quagga搭建个人SD-WAN网络

拓扑如下

(图片可点击放大查看)

一、tinc安装与配置

1、CentOS7云主机安装tinc

(图片可点击放大查看)

(图片可点击放大查看)

代码语言:javascript
代码运行次数:0
复制
yum install tinc

(图片可点击放大查看)

代码语言:javascript
代码运行次数:0
复制
mkdir -p /etc/tinc/tincnet/
mkdir  /etc/tinc/tincnet/hosts
cd /etc/tinc/tincnet/
ll

vi tinc.conf

Name = Server_Node 
Interface = tinctun 
AddressFamily = ipv4
Mode = switch 
ConnectTo = Slave_Node
Compression=9 
Cipher = aes-256-cbc 
Digest = sha256 
PrivateKeyFile=/etc/tinc/tincnet/rsa_key.priv

(图片可点击放大查看)

代码语言:javascript
代码运行次数:0
复制
vi tinc-up
#!/bin/sh
ip link set $INTERFACE up
ip addr add 10.254.254.2/24 dev $INTERFACE
ip route add 10.254.254.0/24 dev $INTERFACE

vi tinc-down 
#!/bin/sh
ip route del 10.254.254.0/24 dev $INTERFACE
ip addr del 10.254.254.2/24 dev $INTERFACE
ip link set $INTERFACE down

chmod 755 tinc*

(图片可点击放大查看)

代码语言:javascript
代码运行次数:0
复制
cd /etc/tinc/tincnet/hosts
vi Server_Node

Address = 129.211.209.82
Subnet = 10.254.254.2/32
Port = 655

(图片可点击放大查看)

通过tincd生成非对称密钥

代码语言:javascript
代码运行次数:0
复制
#通过tincd生成非对称密钥
tincd -n tincnet -K 4096

(图片可点击放大查看)

2、分支节点安装配置tinc

配置与上面类似,不再赘述,截图如下

(图片可点击放大查看)

(图片可点击放大查看)

(图片可点击放大查看)

(图片可点击放大查看)

3、保证两个节点的hosts文件夹都有全部节点的hosts信息

代码语言:javascript
代码运行次数:0
复制
scp /etc/tinc/tincnet/hosts/Slave_Node root@129.211.209.82:/etc/tinc/tincnet/hosts/

scp root@129.211.209.82:/etc/tinc/tincnet/hosts/Server_Node /etc/tinc/tincnet/hosts

(图片可点击放大查看)

4、配置etc/sysctl.conf文件

代码语言:javascript
代码运行次数:0
复制
net.ipv4.ip_forward = 1

(图片可点击放大查看)

5、防火墙放通655端口

(图片可点击放大查看)

(图片可点击放大查看)

6、启动tinc服务

代码语言:javascript
代码运行次数:0
复制
systemctl start tinc@tincnet
systemctl status tinc@tincnet

(图片可点击放大查看)

(图片可点击放大查看)

二、手工静态路由方式实现互访

添加路由前截图

(图片可点击放大查看)

例如分支节点上添加静态路由

代码语言:javascript
代码运行次数:0
复制
route add -net 10.106.0.0/20 dev tinctun

(图片可点击放大查看)

三、安装quagga配置ospf实现互通

1、两节点均安装并配置quagga

代码语言:javascript
代码运行次数:0
复制
yum install quagga

cd /etc/quagga/
cp /usr/share/doc/quagga-0.99.22.4/zebra.conf.sample ./
cp /usr/share/doc/quagga-0.99.22.4/ospfd.conf.sample ./
cp zebra.conf.sample zebra.conf
cp ospfd.conf.sample ospfd.conf

chmod 777 *.conf
chmod 777 /var/log/ospfd/

systemctl enable zebra
systemctl enable ospfd

systemctl start zebra
systemctl start ospfd

(图片可点击放大查看)

(图片可点击放大查看)

2、vtysh进行配置ospf

(图片可点击放大查看)

主节点配置步骤如下

代码语言:javascript
代码运行次数:0
复制
VM-0-17-centos# conf t
VM-0-17-centos(config)# interface  eth0
VM-0-17-centos(config-if)# description  Server_eth0
VM-0-17-centos(config-if)# no shut
VM-0-17-centos(config-if)# exit
VM-0-17-centos(config)# interface  tinctun
VM-0-17-centos(config-if)# description  Server_tinctun
VM-0-17-centos(config-if)# no shut
VM-0-17-centos(config-if)# exit
VM-0-17-centos(config)# router ospf 
VM-0-17-centos(config-router)# router-id  1.1.1.1
VM-0-17-centos(config-router)# network  10.254.254.0/24 area 0
VM-0-17-centos(config-router)# network  10.206.0.17/20  area 0
VM-0-17-centos(config-router)# exit
VM-0-17-centos(config)# log file /var/log/quagga/ospfd.log
VM-0-17-centos(config)# exit
VM-0-17-centos# wr
Building Configuration...
Configuration saved to /etc/quagga/zebra.conf
Configuration saved to /etc/quagga/ospfd.conf
[OK]

(图片可点击放大查看)

分支节点配置步骤如下 vtysh

代码语言:javascript
代码运行次数:0
复制
Hello, this is Quagga (version 0.99.22.4).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

centos.walkingcloud.cn# conf t
centos.walkingcloud.cn(config)# interface  ens33
centos.walkingcloud.cn(config-if)# description  Slave_ens33
centos.walkingcloud.cn(config-if)# no shut
centos.walkingcloud.cn(config-if)# exit
centos.walkingcloud.cn(config)# interface tinctun
centos.walkingcloud.cn(config-if)# description  Slave_tinctun
centos.walkingcloud.cn(config-if)# no shut
centos.walkingcloud.cn(config-if)# exit
centos.walkingcloud.cn(config)# 
centos.walkingcloud.cn(config)# exit
centos.walkingcloud.cn# conf t
centos.walkingcloud.cn(config)# router ospf 
centos.walkingcloud.cn(config-router)# router-id  2.2.2.2
centos.walkingcloud.cn(config-router)# network  192.168.31.0/24 area  0
centos.walkingcloud.cn(config-router)# network  10.254.254.0/24 area 0
centos.walkingcloud.cn(config-router)# network 192.168.1.1/24 area 0
centos.walkingcloud.cn(config-router)# exit
centos.walkingcloud.cn(config)# log file  /var/log/quagga/ospfd.log
centos.walkingcloud.cn(config)# exit
centos.walkingcloud.cn# wr
Building Configuration...
Configuration saved to /etc/quagga/zebra.conf
[OK]
centos.walkingcloud.cn# exit

(图片可点击放大查看)

3、防火墙放通ospf协议

代码语言:javascript
代码运行次数:0
复制
firewall-cmd --permanent --zone=public --add-protocol=ospf
firewall-cmd --reload

并重启ospf和zebra服务

代码语言:javascript
代码运行次数:0
复制
systemctl restart zebra
systemctl restart ospfd

(图片可点击放大查看)

4、ospf状态检查

可以用vtysh中 show ip ospf neighbor检查邻居是否建立

show ip route查看对方是否学习到对方的ospf路由

代码语言:javascript
代码运行次数:0
复制
show ip ospf neighbor
show ip route

(图片可点击放大查看)

(图片可点击放大查看)

5、最后进行连通性测试

(图片可点击放大查看)

(图片可点击放大查看)

四、总结

  • 1、本文只是测试使用quagga并使用ospf协议,实际中为了简单起见,可以直接使用静态路由即可
  • 2、当然个人家庭网络中不会把Linux服务器作为出口路由使用,可以openwrt路由器安装tinc来实现
下一篇
举报
领券