ubuntu 如何使用vrf

在Ubuntu或其他Linux系统中,您使用ip命令和sysctl命令配置的网络和内核参数通常是临时的,这意味着在系统重启后这些配置会丢失。为了将这些配置持久化,您需要采取一些额外的步骤。

对于ip命令配置的网络接口和路由,您可以将这些配置添加到网络管理工具的配置文件中,或者创建一个启动脚本来在系统启动时重新应用这些配置。然而,对于VRF(Virtual Routing and Forwarding)这样的高级配置,通常需要特定的网络管理工具或自定义脚本来处理。

以下是一些可能的步骤来持久化您的配置:

  1. 使用Netplan(如果适用)

    Netplan是Ubuntu 18.04及更高版本中的网络配置工具。但是,Netplan原生不支持VRF配置。因此,您可能需要编写一个自定义的启动脚本来设置VRF。

  2. 编写自定义启动脚本

    您可以创建一个脚本,该脚本使用ip命令来设置VRF和其他网络配置,并将该脚本添加到系统的启动项中。例如,您可以将脚本放在/etc/network/if-up.d/目录中(如果此目录存在且被系统使用),或者创建一个systemd服务来在启动时运行该脚本。

    脚本示例(假设保存为/etc/network/if-up.d/vrf-setup-script.sh):

    bash 复制代码
    #!/bin/bash
    ip link add mgmt type vrf table 2
    ip link set dev mgmt up
    ip link set ens37 vrf mgmt
    route add default gw 192.168.8.1 dev mgmt

    确保脚本具有执行权限:sudo chmod +x /etc/network/if-up.d/vrf-setup-script.sh

    但是,请注意,这种方法可能不适用于所有情况,因为/etc/network/if-up.d/目录和其中的脚本可能在某些Ubuntu版本或网络配置中不被使用。

  3. 使用systemd服务

    创建一个systemd服务来在启动时运行配置脚本可能是一个更可靠的方法。您可以创建一个systemd单元文件,该文件指定了一个在启动时运行的脚本。

    单元文件示例(假设保存为/etc/systemd/system/vrf-setup.service):

    ini 复制代码
    [Unit]
    Description=Setup VRF
    After=network.target
    
    [Service]
    Type=oneshot
    ExecStart=/etc/network/if-up.d/vrf-setup-script.sh
    RemainAfterExit=true
    
    [Install]
    WantedBy=multi-user.target

    然后,启用并启动该服务:

    bash 复制代码
    sudo systemctl enable vrf-setup.service
    sudo systemctl start vrf-setup.service


  1. 持久化sysctl设置
    对于sysctl设置,您可以将它们添加到/etc/sysctl.conf文件或/etc/sysctl.d/目录中的某个文件中。例如:

    bash 复制代码
    echo "net.ipv4.tcp_l3mdev_accept=1" | sudo tee -a /etc/sysctl.conf
    echo "net.ipv4.udp_l3mdev_accept=1" | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p

    创建VRF
    ip link add yewu type vrf table 1
    ip link add mgmt type vrf table 2
    启用VRF
    ip link set dev yewu up
    ip link set dev mgmt up

    ##简要查看采用-br参数

    ip -br link show type vrf

    ##查看所有vrf,-d参数可以显示ID号

    ip link show type vrf

    将物理接口绑定VRF
    ip link set ens33 vrf yewu
    ip link set ens37 vrf mgmt
    将物理接口移除VRF
    ip link set dev ens33 nomaster

    ##显示被分配给vrf的设备
    $ ip link show vrf yewu

    查看
    ip neigh show vrf yewu
    ip route show table 1

    route add default gw 192.168.162.2 dev yewu
    route add default gw 192.168.8.1 dev mgmt

    ip route get vrf yewu 223.5.5.5
    ping -I yewu -4 www.baidu.com

    sysctl -w net.ipv4.tcp_l3mdev_accept=1
    sysctl -w net.ipv4.udp_l3mdev_accept=1

    sysctl net.ipv4.raw_l3mdev_accept
    sysctl net.ipv4.tcp_l3mdev_accept
    sysctl net.ipv4.udp_l3mdev_accept

相关推荐
下一页盛夏花开7 小时前
ubuntu 20中安装QT以后出现红色空心断点
linux·运维·ubuntu
拾贰_C12 小时前
【OpenClaw | openai | QQ】 配置QQ qot机器人
运维·人工智能·ubuntu·面试·prompt
郝亚军13 小时前
ubuntu 22.04如何安装libmodbus
运维·服务器·ubuntu
乌恩大侠14 小时前
【AI-RAN】在空ubuntu服务器安装环境和生成TV,高达430G文件
服务器·人工智能·ubuntu·fpga开发·o-ru
Hello.Reader14 小时前
Ubuntu 上正确安装 Kali 虚拟机、Docker 与 kail 工具指南
linux·ubuntu·docker
一袋米扛几楼9815 小时前
【报错问题】解决 Vercel 部署报错:Express 类型失效与 TypeScript 2349/2339/2769 错误排查
ubuntu·typescript·express
MIXLLRED16 小时前
Ubuntu22.04 + ROS2 Humble + RealSense D435i 部署VINS-Fusion视觉惯性SLAM
ubuntu·slam·d435i·ros2·humble·vins
Gary Studio17 小时前
ubuntu 16.04一键换源
linux·运维·ubuntu
拾贰_C18 小时前
【node.js | Ubuntu | update】如何升级旧的nodejs本版至最新;如何升级npm
ubuntu·npm·node.js
有谁看见我的剑了?18 小时前
ubuntu 22.04 /etc/fstab 文件修改有误导致无法进入系统处理
linux·运维·ubuntu