双网口应用场景介绍及配置建议

XNIUPI-R系列开发板/主机作为高性能开发板/主机,双网口设计提供了灵活的网络应用能力。以下是常见应用场景、出厂默认配置方案及网络模式切换方法:

一、双网口典型应用场景

1. 路由/网关设备

  • 场景:将开发板作为家庭或小型企业路由器,一个网口连接外网(如宽带调制解调器),另一个连接内网设备。

  • 优势:利用XNIUPI-R系列开发板/主机的高性能CPU实现高速数据包转发、防火墙、VPN等功能。

2. 工业控制与IoT网关

  • 场景:一个网口连接生产网络(如PLC、传感器),另一个连接企业管理网络,实现数据隔离与转换。

  • 优势:支持工业协议(如Modbus、Profinet)与云平台协议(如MQTT)的双向转换。

3. 测试与开发环境

  • 场景:一个网口连接开发主机(如PC),另一个连接被测设备,实现独立的控制与数据采集通道。

  • 优势:避免测试流量干扰开发环境,提高调试效率。

4. 多网络隔离应用

  • 场景:同时连接内网(如公司局域网)和外网(如互联网),实现数据隔离。

  • 优势:适用于安全敏感场景,如工控系统监控、医疗设备数据传输。

5. 高可用网络备份

  • 场景:两个网口连接到不同的网络交换机或ISP,实现链路冗余。

  • 优势:通过链路聚合(LACP)或故障转移机制提高网络可靠性。

二、出厂默认配置方案

推荐采用静态IP + DHCP双模式共存的配置,兼顾通用性与灵活性:

1. 网口1(eth0)配置

  • 模式:静态IP(默认)+ DHCP(可切换)

  • 默认参数

    • IP地址:192.168.100.10/24

    • 网关:192.168.100.1

    • 用途:作为开发板的主管理接口,便于用户首次连接

    • 说明:用户可通过该IP访问Web管理界面或SSH登录

2. 网口2(eth1)配置

  • 模式:DHCP客户端(默认)+ 静态IP(可切换)

  • 默认参数

    • 通过DHCP自动获取IP

    • 用途:灵活连接外部网络(如路由器、交换机)

    • 说明:适合作为数据传输或上联接口

3. 网络服务配置

  • SSH服务:默认开启,方便远程管理

  • Web管理界面:提供图形化配置工具(如LuCI)

  • 防火墙:默认启用,开放必要端口(SSH:22, HTTP:80, HTTPS:443)

三、快速切换网络配置的方法

为方便用户在不同场景间切换,建议提供以下几种方式:

1. 命令行工具(推荐)

开发简单的脚本,支持一键切换网络模式:

# network_switch.sh
#!/bin/bash

echo "请选择网络模式:"
echo "1. 路由模式 (eth0:内网, eth1:外网)"
echo "2. 双网卡模式 (eth0:静态IP, eth1:静态IP)"
echo "3. 测试模式 (eth0:开发, eth1:设备)"
echo "4. 恢复默认配置"

read -p "输入选择 [1-4]: " choice

case $choice in
  1) 
    # 配置为路由模式
    ./scripts/setup_router_mode.sh
    echo "已切换到路由模式"
    ;;
  2) 
    # 配置为双静态IP模式
    ./scripts/setup_static_ip_mode.sh
    echo "已切换到双网卡模式"
    ;;
  3) 
    # 配置为测试模式
    ./scripts/setup_test_mode.sh
    echo "已切换到测试模式"
    ;;
  4) 
    # 恢复出厂默认配置
    cp /etc/network/default_interfaces /etc/network/interfaces
    systemctl restart networking
    echo "已恢复默认配置"
    ;;
  *) 
    echo "无效选择"
    ;;
esac

2. Web管理界面

集成基于LuCI或自定义的Web配置界面,允许用户通过浏览器图形化配置网络参数:

Web配置界面示例

3. 物理按键/拨码开关

  • 硬件设计:在开发板上添加一个网络模式切换按键或拨码开关

  • 软件实现:检测按键状态,启动相应的网络配置脚本

4. 环境变量自动配置

通过检测特定文件或环境变量,实现开机自动配置:

# /etc/rc.local
if [ -f "/boot/network_mode_router" ]; then
    /usr/bin/setup_router_mode.sh
elif [ -f "/boot/network_mode_test" ]; then
    /usr/bin/setup_test_mode.sh
else
    # 默认配置
    /usr/bin/setup_default_mode.sh
fi

四、具体配置示例

1. 路由模式配置脚本

# setup_router_mode.sh
#!/bin/bash

# 配置eth0为内网接口
cat > /etc/network/interfaces.d/eth0 << EOF
auto eth0
iface eth0 inet static
    address 192.168.10.1
    netmask 255.255.255.0
EOF

# 配置eth1为外网接口
cat > /etc/network/interfaces.d/eth1 << EOF
auto eth1
iface eth1 inet dhcp
EOF

# 启用IP转发
echo 1 > /proc/sys/net/ipv4/ip_forward
sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf

# 设置NAT规则
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

# 重启网络服务
systemctl restart networking

2. 双静态IP模式配置

# setup_static_ip_mode.sh
#!/bin/bash

# 配置eth0
cat > /etc/network/interfaces.d/eth0 << EOF
auto eth0
iface eth0 inet static
    address 192.168.1.10
    netmask 255.255.255.0
    gateway 192.168.1.1
EOF

# 配置eth1
cat > /etc/network/interfaces.d/eth1 << EOF
auto eth1
iface eth1 inet static
    address 192.168.2.10
    netmask 255.255.255.0
    gateway 192.168.2.1
EOF

# 重启网络服务
systemctl restart networking

五、注意事项

  1. 防火墙配置:切换网络模式时,需同步更新防火墙规则,避免安全漏洞

  2. DNS配置:确保每个网络配置都包含正确的DNS服务器地址

  3. 服务依赖:某些应用可能依赖特定的网络配置,切换时需考虑服务重启顺序

  4. 日志记录:添加网络配置变更日志,方便问题排查

通过以上配置方案,您的RK3588开发板可以满足多样化的网络应用需求,同时保持出厂配置的通用性和用户切换的便捷性。