香橙派R2S手搓双宽带聚合指南

引言

本次手搓路由器,是为了实现通信网基础课程设计。

题目如下:
将Linux系统配置成NAT网关,具备NAT、DHCP、DNS功能,利用地址池实现内网访问外网的通信、实现外网对内网特定主机的访问以及域名解析的功能。搭建实验测试网络。

本次实验设备为:
Orange Pi R2s 一台
使用官方Ubuntu 24.0 镜像


桥接两个LAN口

由于香橙派有两个2.5G网口,我想让他们都作为LAN口使用,此处建立网桥:

# 创建网桥并设置 IP
sudo nmcli con add type bridge ifname br0 con-name br0 ip4 192.168.17.1/24

# 取消 STP (生成树),避免接入时有几十秒延迟
sudo nmcli con modify br0 bridge.stp no

配置DHCP服务器

使用如下命令安装必要的环境

sudo apt update && sudo apt upgrade
sudo apt install isc-dhcp-server dnsmasq iptables

再将dhcp服务器绑定至LAN口

sudo vi /etc/default/isc-dhcp-server

在此配置中加入
INTERFACESv4="br0"

再编辑dhcpd.conf,加入

subnet 192.168.17.0 netmask 255.255.255.0{
    range 192.168.17.100 192.168.17.117;
    option routers 192.168.17.1;
    option domain-name-servers 192.168.17.1;
}

重启dhcpd

$ sudo systemctl start isc-dhcp-server
$ sudo systemctl enable isc-dhcp-server

此时已经完成了配置,重新插拔网线发现主机得到了dhcp地址


配置DNS服务

编辑配置文件 /etc/dnsmasq.conf。为了避免混乱,建议先备份原文件,新建一个空的配置文件写入以下内容:

# 备份
sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
# 编辑
sudo vim /etc/dnsmasq.conf

填入以下内容

interface = enP2p1s0
listen-address=127.0.0.1,192.168.17.1

# 上游 DNS:
server=223.5.5.5

# 加载本地 hosts 文件
domain-needed
bogus-priv
expand-hosts

题目要求“实现内网特定主机的访问以及域名解析”,这里设定 setmyrouter.com 指向网关主机192.168.17.1
修改网关本机 (VM1) 的 /etc/hosts 文件,在末尾添加:

192.168.17.1 setmyrouter.com   

由于Ubuntu默认开启了systemd-resolved服务,占用了53端口,我们需要关闭它以让dnsmasq接管dns服务:

# 停止服务
sudo systemctl stop systemd-resolved
# 禁用服务(防止重启后自动运行)
sudo systemctl disable systemd-resolved
sudo systemctl restart dnsmasq 
sudo systemctl enable dnsmasq

配置NAT

香橙派的镜像默认不启用IPv4转发,编辑 /etc/sysctl.conf,找到 net.ipv4.ip_forward=1 取消注释,然后执行 sudo sysctl -p,使用cat /proc/sys/net/ipv4/ip_forward返回1,开启成功。

设置NAT

# 1. 允许内网通过 end0 (互联网) 访问外网
sudo iptables -t nat -A POSTROUTING -s 192.168.17.0/24 -o end0 -j MASQUERADE

# 2. 允许内网通过 end1 (校园网) 访问外网
sudo iptables -t nat -A POSTROUTING -s 192.168.17.0/24 -o end1 -j MASQUERADE

设置两条宽带负载均衡:

sudo ip route del default
sudo ip route add default \ nexthop via 192.168.31.1 dev end0 weight 1 \ nexthop via 202.60.0.1 dev end1 weight 1

此时,主机已经可以上网


配置反向代理

为了实现外网访问内网指定主机,我们需要设置DNAT

sudo iptables -t nat -A PREROUTING -i end0 -p tcp --dport 8080 -j DNAT --to-destination 192.168.17.100:8080
sudo iptables -A FORWARD -d 192.168.17.100 -p tcp --dport 8080 -j ACCEPT

此时,所有的8080端口流量都将流向100主机

posted @ 2025-12-02 16:19  Undef1ned  阅读(0)  评论(0)    收藏  举报