[步骤] Linux 脚本的管理 (通过 systemd 实现)

步骤一:创建要被管理的脚本

# vim /root/12456.sh

创建以下内容:

#!/bin/bash
for i in {1..5}
do
echo $i
done

(补充:这里以创建 /etc/root/for.sh 脚本为例)

步骤二:创建 systemctl 的管理文件

# vim /etc/systemd/system/12456.service

创建以下内容:

[Unit]
Description=12345
After=default.target

[Service]
Type=oneshot
ExecStart=/root/12456.sh

[Install]
WantedBy=default.target

(补充:这里以创建 /etc/systemd/system/12456.service 来管理 ExecStart=/root/12456.sh 为例)

步骤三:加载刚刚创建的 systemctl 管理文件

# systemctl daemon-reload

步骤四:给 systemctl 的管理文件添加执行权限

# chmod u+x /etc/systemd/system/12456.service

步骤五:通过 systemd 管理脚本

5.1 启动脚本

# systemctl start 12456.service

5.2 关闭脚本

# systemctl stop 12456.service

5.3 重启脚本

# systemctl restart 12456.service

5.4 让脚本开机自启

# systemctl enable 12456.service

[步骤] Linux 周期性计划任务 cron 的设置

步骤一:进入周期任务计划的文件

1.1 案例一:直接进入周期任务计划的文件

# crontab -e

1.2 案例二:以某一个用户的身份进入周期任务计划的文件

# crontab -u root -e

(补充:这里以使用 root 用户的身份进入周期任务计划的文件为例)

步骤二:设置周期任务计划

2.1 设置周期任务计划的格式

<what minute> <what hour> <day of the month> <what month> <day of the week> <command>


补充:
1) 当以上内容是 1 个星号 “*” 时,代表任意时刻都会执行
2) 当在某一个时刻执行时,可以直接写入对应的数字,例如:0,代表在 0 时执行
3) 当同时在多个时刻执行时,可以直接写入多个对应的数字,例如:0,15,30,代表在 0 时、15 时、30 时都会执行
4) 当每隔一段时间就执行时,可以在星号 “*” 后面添加斜杠和间隔的数字,例如:*/5,代表每隔 5 就会执行 1 次
5) 当是执行 /sbin 下的命令时,需要使用命令的全路径
6) 有些特殊符号不会在此地起作用,例如:$(<command>)

2.2 设置周期任务计划的案例

2.2.1 案例一
0 1 * * * curl eternalcenter.com

(补充:此案例会在每天 1 点 0 时访问一次 eternalcenter.com)

2.2.2 案例二
*/5 * * * * curl eternalcenter.com

(补充:此案例会每过 5 分钟访问一次 eternalcenter.com)

2.2.3 案例三
0 0 1,5,10,15 /sbin/reboot

(补充:此案例会在每个月的 1 号 5 号 10 号 15 号的 0 点 0 分重启系统)

步骤三:显示已设置的周期任务计划

3.1 案例一:显示本用户已设置的周期任务计划

# crontab -l

3.2 案例二:以某 1 个用户的身份进入周期任务计划的文件

# crontab -u root -l

(补充:这里以显示 root 用户已设置的周期任务计划为例)

补充:# crontab -e 命令编辑文件的所在位置

如果是 Rocky Linux & RHEL

/var/spool/cron/

如果是 openSUSE & SLES

/var/spool/cron/tabs/

[命令] Linux 命令 ovs (管理网桥) (转载)

OVS常用命令与使用总结

OVS常用命令与使用总结
说明

在平时使用ovs中,经常用到的ovs命令,参数,与举例总结,持续更新中…
进程启动

1.先准备ovs的工作目录,数据库存储路径等

mkdir -p /etc/openvswitch
mkdir -p /var/run/openvswitch

    1
    2

2.先启动ovsdb-server

ovsdb-server /etc/openvswitch/conf.db \
-vconsole:emer -vsyslog:err -vfile:info \
--remote=punix:/var/run/openvswitch/db.sock \
--private-key=db:Open_vSwitch,SSL,private_key \
--certificate=db:Open_vSwitch,SSL,certificate \
--bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert --no-chdir \
--log-file=/var/log/openvswitch/ovsdb-server.log \
--pidfile=/var/run/openvswitch/ovsdb-server.pid \
--detach --monitor

    1
    2
    3
    4
    5
    6
    7
    8
    9

ps: 如果想清除配置,可以先删除/etc/openvswitch/*,然后再手动创建一个数据库:

ovsdb-tool create /etc/openvswitch/conf.db /usr/share/openvswitch/vswitch.ovsschema

    1

3.初始化ovsdb
针对于新创建的数据库才需要初始化

ovs-vsctl --no-wait init

    1

4.启动vswitchd进程

ovs-vswitchd unix:/var/run/openvswitch/db.sock \
-vconsole:emer -vsyslog:err -vfile:info --mlockall --no-chdir \
--log-file=/var/log/openvswitch/ovs-vswitchd.log \
--pidfile=/var/run/openvswitch/ovs-vswitchd.pid \
--detach --monitor

    1
    2
    3
    4
    5

ovs常用命令
控制管理类

1.查看网桥和端口

ovs-vsctl show

    1

2.创建一个网桥

ovs-vsctl add-br br0
ovs-vsctl set bridge br0 datapath_type=netdev

    1
    2

3.添加/删除一个端口

# for system interfaces
ovs-vsctl add-port br0 eth1
ovs-vsctl del-port br0 eth1
# for DPDK
ovs-vsctl add-port br0 dpdk1 -- set interface dpdk1 type=dpdk options:dpdk-devargs=0000:01:00.0
# for DPDK bonds
ovs-vsctl add-bond br0 dpdkbond0 dpdk1 dpdk2 \
    -- set interface dpdk1 type=dpdk options:dpdk-devargs=0000:01:00.0 \
    -- set interface dpdk2 type=dpdk options:dpdk-devargs=0000:02:00.0
# or new version
ovs-vsctl add-port br0 dpdkbond0 \
    -- set interface dpdkbond0 type=dpdk options:dpdk-devargs=0000:01:00.0,0000:02:00.0

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

4.设置/清除网桥的openflow协议版本

ovs-vsctl set bridge br0 protocols=OpenFlow13
ovs-vsctl clear bridge br0 protocols

    1
    2

5.查看某网桥当前流表

ovs-ofctl dump-flows br0
ovs-ofctl -O OpenFlow13 dump-flows br0
ovs-appctl bridge/dump-flows br0

    1
    2
    3

6.设置/删除控制器

ovs-vsctl set-controller br0 tcp:1.2.3.4:6633
ovs-vsctl del-controller br0

    1
    2

7.查看控制器列表

ovs-vsctl list controller

    1

8.设置/删除被动连接控制器

ovs-vsctl set-manager tcp:1.2.3.4:6640
ovs-vsctl get-manager
ovs-vsctl del-manager

    1
    2
    3

9.设置/移除可选选项

ovs-vsctl set Interface eth0 options:link_speed=1G
ovs-vsctl remove Interface eth0 options link_speed

    1
    2

10.设置fail模式,支持standalone或者secure
standalone(default):清除所有控制器下发的流表,ovs自己接管
secure:按照原来流表继续转发

ovs-vsctl del-fail-mode br0
ovs-vsctl set-fail-mode br0 secure
ovs-vsctl get-fail-mode br0

    1
    2
    3

11.查看接口id等

ovs-appctl dpif/show

    1

12.查看接口统计

ovs-ofctl dump-ports br0

    1

流表类
流表操作

1.添加普通流表

ovs-ofctl add-flow br0 in_port=1,actions=output:2

    1

2.删除所有流表

ovs-ofctl del-flows br0

    1

3.按匹配项来删除流表

ovs-ofctl del-flows br0 "in_port=1"

    1

匹配项

1.匹配vlan tag,范围为0-4095

ovs-ofctl add-flow br0 priority=401,in_port=1,dl_vlan=777,actions=output:2

    1

2.匹配vlan pcp,范围为0-7

ovs-ofctl add-flow br0 priority=401,in_port=1,dl_vlan_pcp=7,actions=output:2

    1

3.匹配源/目的MAC

ovs-ofctl add-flow br0 in_port=1,dl_src=00:00:00:00:00:01/00:00:00:00:00:01,actions=output:2
ovs-ofctl add-flow br0 in_port=1,dl_dst=00:00:00:00:00:01/00:00:00:00:00:01,actions=output:2

    1
    2

4.匹配以太网类型,范围为0-65535

ovs-ofctl add-flow br0 in_port=1,dl_type=0x0806,actions=output:2

    1

5.匹配源/目的IP
条件:指定dl_type=0x0800,或者ip/tcp

ovs-ofctl add-flow br0 ip,in_port=1,nw_src=10.10.0.0/16,actions=output:2
ovs-ofctl add-flow br0 ip,in_port=1,nw_dst=10.20.0.0/16,actions=output:2

    1
    2

6.匹配协议号,范围为0-255
条件:指定dl_type=0x0800或者ip

# ICMP
ovs-ofctl add-flow br0 ip,in_port=1,nw_proto=1,actions=output:2

    1
    2

7.匹配IP ToS/DSCP,tos范围为0-255,DSCP范围为0-63
条件:指定dl_type=0x0800/0x86dd,并且ToS低2位会被忽略(DSCP值为ToS的高6位,并且低2位为预留位)

ovs-ofctl add-flow br0 ip,in_port=1,nw_tos=68,actions=output:2
ovs-ofctl add-flow br0 ip,in_port=1,ip_dscp=62,actions=output:2

    1
    2

8.匹配IP ecn位,范围为0-3
条件:指定dl_type=0x0800/0x86dd

ovs-ofctl add-flow br0 ip,in_port=1,ip_ecn=2,actions=output:2

    1

9.匹配IP TTL,范围为0-255

ovs-ofctl add-flow br0 ip,in_port=1,nw_ttl=128,actions=output:2

    1

10.匹配tcp/udp,源/目的端口,范围为0-65535

# 匹配源tcp端口179
ovs-ofctl add-flow br0 tcp,tcp_src=179/0xfff0,actions=output:2
# 匹配目的tcp端口179
ovs-ofctl add-flow br0 tcp,tcp_dst=179/0xfff0,actions=output:2
# 匹配源udp端口1234
ovs-ofctl add-flow br0 udp,udp_src=1234/0xfff0,actions=output:2
# 匹配目的udp端口1234
ovs-ofctl add-flow br0 udp,udp_dst=1234/0xfff0,actions=output:2

    1
    2
    3
    4
    5
    6
    7
    8

11.匹配tcp flags
tcp flags=fin,syn,rst,psh,ack,urg,ece,cwr,ns

ovs-ofctl add-flow br0 tcp,tcp_flags=ack,actions=output:2

    1

12.匹配icmp code,范围为0-255
条件:指定icmp

ovs-ofctl add-flow br0 icmp,icmp_code=2,actions=output:2

    1

13.匹配vlan TCI
TCI低12位为vlan id,高3位为priority,例如tci=0xf123则vlan_id为0x123和vlan_pcp=7

ovs-ofctl add-flow br0 in_port=1,vlan_tci=0xf123,actions=output:2

    1

14.匹配mpls label
条件:指定dl_type=0x8847/0x8848

ovs-ofctl add-flow br0 mpls,in_port=1,mpls_label=7,actions=output:2

    1

15.匹配mpls tc,范围为0-7
条件:指定dl_type=0x8847/0x8848

ovs-ofctl add-flow br0 mpls,in_port=1,mpls_tc=7,actions=output:2

    1

16.匹配tunnel id,源/目的IP

# 匹配tunnel id
ovs-ofctl add-flow br0 in_port=1,tun_id=0x7/0xf,actions=output:2
# 匹配tunnel源IP
ovs-ofctl add-flow br0 in_port=1,tun_src=192.168.1.0/255.255.255.0,actions=output:2
# 匹配tunnel目的IP
ovs-ofctl add-flow br0 in_port=1,tun_dst=192.168.1.0/255.255.255.0,actions=output:2

    1
    2
    3
    4
    5
    6

一些匹配项的速记符
速记符	匹配项
ip	dl_type=0x800
ipv6	dl_type=0x86dd
icmp	dl_type=0x0800,nw_proto=1
icmp6	dl_type=0x86dd,nw_proto=58
tcp	dl_type=0x0800,nw_proto=6
tcp6	dl_type=0x86dd,nw_proto=6
udp	dl_type=0x0800,nw_proto=17
udp6	dl_type=0x86dd,nw_proto=17
sctp	dl_type=0x0800,nw_proto=132
sctp6	dl_type=0x86dd,nw_proto=132
arp	dl_type=0x0806
rarp	dl_type=0x8035
mpls	dl_type=0x8847
mplsm	dl_type=0x8848
指令动作

1.动作为出接口
从指定接口转发出去

ovs-ofctl add-flow br0 in_port=1,actions=output:2

    1

2.动作为指定group
group id为已创建的group table

ovs-ofctl add-flow br0 in_port=1,actions=group:666

    1

3.动作为normal
转为L2/L3处理流程

ovs-ofctl add-flow br0 in_port=1,actions=normal

    1

4.动作为flood
从所有物理接口转发出去,除了入接口和已关闭flooding的接口

ovs-ofctl add-flow br0 in_port=1,actions=flood

    1

5.动作为all
从所有物理接口转发出去,除了入接口

ovs-ofctl add-flow br0 in_port=1,actions=all

    1

6.动作为local
一般是转发给本地网桥

ovs-ofctl add-flow br0 in_port=1,actions=local

    1

7.动作为in_port
从入接口转发回去

ovs-ofctl add-flow br0 in_port=1,actions=in_port

    1

8.动作为controller
以packet-in消息上送给控制器

ovs-ofctl add-flow br0 in_port=1,actions=controller

    1

9.动作为drop
丢弃数据包操作

ovs-ofctl add-flow br0 in_port=1,actions=drop

    1

10.动作为mod_vlan_vid
修改报文的vlan id,该选项会使vlan_pcp置为0

ovs-ofctl add-flow br0 in_port=1,actions=mod_vlan_vid:8,output:2

    1

11.动作为mod_vlan_pcp
修改报文的vlan优先级,该选项会使vlan_id置为0

ovs-ofctl add-flow br0 in_port=1,actions=mod_vlan_pcp:7,output:2

    1

12.动作为strip_vlan
剥掉报文内外层vlan tag

ovs-ofctl add-flow br0 in_port=1,actions=strip_vlan,output:2

    1

13.动作为push_vlan
在报文外层压入一层vlan tag,需要使用openflow1.1以上版本兼容

ovs-ofctl add-flow -O OpenFlow13 br0 in_port=1,actions=push_vlan:0x8100,set_field:4097-\>vlan_vid,output:2

    1

ps: set field值为4096+vlan_id,并且vlan优先级为0,即4096-8191,对应的vlan_id为0-4095

14.动作为push_mpls
修改报文的ethertype,并且压入一个MPLS LSE

ovs-ofctl add-flow br0 in_port=1,actions=push_mpls:0x8847,set_field:10-\>mpls_label,output:2

    1

15.动作为pop_mpls
剥掉最外层mpls标签,并且修改ethertype为非mpls类型

ovs-ofctl add-flow br0 mpls,in_port=1,mpls_label=20,actions=pop_mpls:0x0800,output:2

    1

16.动作为修改源/目的MAC,修改源/目的IP

# 修改源MAC
ovs-ofctl add-flow br0 in_port=1,actions=mod_dl_src:00:00:00:00:00:01,output:2
# 修改目的MAC
ovs-ofctl add-flow br0 in_port=1,actions=mod_dl_dst:00:00:00:00:00:01,output:2
# 修改源IP
ovs-ofctl add-flow br0 in_port=1,actions=mod_nw_src:192.168.1.1,output:2
# 修改目的IP
ovs-ofctl add-flow br0 in_port=1,actions=mod_nw_dst:192.168.1.1,output:2

    1
    2
    3
    4
    5
    6
    7
    8

17.动作为修改TCP/UDP/SCTP源目的端口

# 修改TCP源端口
ovs-ofctl add-flow br0 tcp,in_port=1,actions=mod_tp_src:67,output:2
# 修改TCP目的端口
ovs-ofctl add-flow br0 tcp,in_port=1,actions=mod_tp_dst:68,output:2
# 修改UDP源端口
ovs-ofctl add-flow br0 udp,in_port=1,actions=mod_tp_src:67,output:2
# 修改UDP目的端口
ovs-ofctl add-flow br0 udp,in_port=1,actions=mod_tp_dst:68,output:2

    1
    2
    3
    4
    5
    6
    7
    8

18.动作为mod_nw_tos
条件:指定dl_type=0x0800
修改ToS字段的高6位,范围为0-255,值必须为4的倍数,并且不会去修改ToS低2位ecn值

ovs-ofctl add-flow br0 ip,in_port=1,actions=mod_nw_tos:68,output:2

    1

19.动作为mod_nw_ecn
条件:指定dl_type=0x0800,需要使用openflow1.1以上版本兼容
修改ToS字段的低2位,范围为0-3,并且不会去修改ToS高6位的DSCP值

ovs-ofctl add-flow br0 ip,in_port=1,actions=mod_nw_ecn:2,output:2

    1

20.动作为mod_nw_ttl
修改IP报文ttl值,需要使用openflow1.1以上版本兼容

ovs-ofctl add-flow -O OpenFlow13 br0 in_port=1,actions=mod_nw_ttl:6,output:2

    1

21.动作为dec_ttl
对IP报文进行ttl自减操作

ovs-ofctl add-flow br0 in_port=1,actions=dec_ttl,output:2

    1

22.动作为set_mpls_label
对报文最外层mpls标签进行修改,范围为20bit值

ovs-ofctl add-flow br0 in_port=1,actions=set_mpls_label:666,output:2

    1

23.动作为set_mpls_tc
对报文最外层mpls tc进行修改,范围为0-7

ovs-ofctl add-flow br0 in_port=1,actions=set_mpls_tc:7,output:2

    1

24.动作为set_mpls_ttl
对报文最外层mpls ttl进行修改,范围为0-255

ovs-ofctl add-flow br0 in_port=1,actions=set_mpls_ttl:255,output:2

    1

25.动作为dec_mpls_ttl
对报文最外层mpls ttl进行自减操作

ovs-ofctl add-flow br0 in_port=1,actions=dec_mpls_ttl,output:2

    1

26.动作为move NXM字段
使用move参数对NXM字段进行操作

# 将报文源MAC复制到目的MAC字段,并且将源MAC改为00:00:00:00:00:01
ovs-ofctl add-flow br0 in_port=1,actions=move:NXM_OF_ETH_SRC[]-\>NXM_OF_ETH_DST[],mod_dl_src:00:00:00:00:00:01,output:2

    1
    2

ps: 常用NXM字段参照表
NXM字段	报文字段
NXM_OF_ETH_SRC	源MAC
NXM_OF_ETH_DST	目的MAC
NXM_OF_ETH_TYPE	以太网类型
NXM_OF_VLAN_TCI	vid
NXM_OF_IP_PROTO	IP协议号
NXM_OF_IP_TOS	IP ToS值
NXM_NX_IP_ECN	IP ToS ECN
NXM_OF_IP_SRC	源IP
NXM_OF_IP_DST	目的IP
NXM_OF_TCP_SRC	TCP源端口
NXM_OF_TCP_DST	TCP目的端口
NXM_OF_UDP_SRC	UDP源端口
NXM_OF_UDP_DST	UDP目的端口
NXM_OF_SCTP_SRC	SCTP源端口
NXM_OF_SCTP_DST	SCTP目的端口

27.动作为load NXM字段
使用load参数对NXM字段进行赋值操作

# push mpls label,并且把10(0xa)赋值给mpls label
ovs-ofctl add-flow br0 in_port=1,actions=push_mpls:0x8847,load:0xa-\>OXM_OF_MPLS_LABEL[],output:2
# 对目的MAC进行赋值
ovs-ofctl add-flow br0 in_port=1,actions=load:0x001122334455-\>OXM_OF_ETH_DST[],output:2

    1
    2
    3
    4

28.动作为pop_vlan
弹出报文最外层vlan tag

ovs-ofctl add-flow br0 in_port=1,dl_type=0x8100,dl_vlan=777,actions=pop_vlan,output:2

    1

meter表
常用操作

由于meter表是openflow1.3版本以后才支持,所以所有命令需要指定OpenFlow1.3版本以上
ps: 在openvswitch-v2.8之前的版本中,还不支持meter
在v2.8版本之后已经实现,要正常使用的话,需要注意的是datapath类型要指定为netdev,band type暂时只支持drop,还不支持DSCP REMARK

1.查看当前设备对meter的支持

ovs-ofctl -O OpenFlow13 meter-features br0

    1

2.查看meter表

ovs-ofctl -O OpenFlow13 dump-meters br0

    1

3.查看meter统计

ovs-ofctl -O OpenFlow13 meter-stats br0

    1

4.创建meter表

# 限速类型以kbps(kilobits per second)计算,超过20kb/s则丢弃
ovs-ofctl -O OpenFlow13 add-meter br0 meter=1,kbps,band=type=drop,rate=20
# 同上,增加burst size参数
ovs-ofctl -O OpenFlow13 add-meter br0 meter=2,kbps,burst,band=type=drop,rate=20,burst_size=256
# 同上,增加stats参数,对meter进行计数统计
ovs-ofctl -O OpenFlow13 add-meter br0 meter=3,kbps,burst,stats,band=type=drop,rate=20,burst_size=256
# 限速类型以pktps(packets per second)计算,超过1000pkt/s则丢弃
ovs-ofctl -O OpenFlow13 add-meter br0 meter=4,pktps,band=type=drop,rate=1000

    1
    2
    3
    4
    5
    6
    7
    8

5.删除meter表

# 删除全部meter表
ovs-ofctl -O OpenFlow13 del-meters br0
# 删除meter id=1
ovs-ofctl -O OpenFlow13 del-meter br0 meter=1

    1
    2
    3
    4

6.创建流表

ovs-ofctl -O OpenFlow13 add-flow br0 in_port=1,actions=meter:1,output:2

    1

group表

由于group表是openflow1.1版本以后才支持,所以所有命令需要指定OpenFlow1.1版本以上
常用操作

group table支持4种类型

    all:所有buckets都执行一遍
    select: 每次选择其中一个bucket执行,常用于负载均衡应用
    ff(FAST FAILOVER):快速故障修复,用于检测解决接口等故障
    indirect:间接执行,类似于一个函数方法,被另一个group来调用

1.查看当前设备对group的支持

ovs-ofctl -O OpenFlow13 dump-group-features br0

    1

2.查看group表

ovs-ofctl -O OpenFlow13 dump-groups br0

    1

3.创建group表

# 类型为all
ovs-ofctl -O OpenFlow13 add-group br0 group_id=1,type=all,bucket=output:1,bucket=output:2,bucket=output:3
# 类型为select
ovs-ofctl -O OpenFlow13 add-group br0 group_id=2,type=select,bucket=output:1,bucket=output:2,bucket=output:3
# 类型为select,指定hash方法(5元组,OpenFlow1.5+)
ovs-ofctl -O OpenFlow15 add-group br0 group_id=3,type=select,selection_method=hash,fields=ip_src,bucket=output:2,bucket=output:3

    1
    2
    3
    4
    5
    6

4.删除group表

ovs-ofctl -O OpenFlow13 del-groups br0 group_id=2

    1

5.创建流表

ovs-ofctl -O OpenFlow13 add-flow br0 in_port=1,actions=group:2

    1

goto table配置

数据流先从table0开始匹配,如actions有goto_table,再进行后续table的匹配,实现多级流水线,如需使用goto table,则创建流表时,指定table id,范围为0-255,不指定则默认为table0
1.在table0中添加一条流表条目

ovs-ofctl add-flow br0 table=0,in_port=1,actions=goto_table=1

    1

2.在table1中添加一条流表条目

ovs-ofctl add-flow br0 table=1,ip,nw_dst=10.10.0.0/16,actions=output:2

    1

tunnel配置

如需配置tunnel,必需确保当前系统对各tunnel的remote ip网络可达
gre

1.创建一个gre接口,并且指定端口id=1001

ovs-vsctl add-port br0 gre1 -- set Interface gre1 type=gre options:remote_ip=1.1.1.1 ofport_request=1001

    1

2.可选选项
将tos或者ttl在隧道上继承,并将tunnel id设置成123

ovs-vsctl set Interface gre1 options:tos=inherit options:ttl=inherit options:key=123

    1

3.创建关于gre流表

# 封装gre转发
ovs-ofctl add-flow br0 ip,in_port=1,nw_dst=10.10.0.0/16,actions=output:1001
# 解封gre转发
ovs-ofctl add-flow br0 in_port=1001,actions=output:1

    1
    2
    3
    4

vxlan

1.创建一个vxlan接口,并且指定端口id=2001

ovs-vsctl add-port br0 vxlan1 -- set Interface vxlan1 type=vxlan options:remote_ip=1.1.1.1 ofport_request=2001

    1

2.可选选项
将tos或者ttl在隧道上继承,将vni设置成123,UDP目的端为设置成8472(默认为4789)

ovs-vsctl set Interface vxlan1 options:tos=inherit options:ttl=inherit options:key=123 options:dst_port=8472

    1

3.创建关于vxlan流表

# 封装vxlan转发
ovs-ofctl add-flow br0 ip,in_port=1,nw_dst=10.10.0.0/16,actions=output:2001
# 解封vxlan转发
ovs-ofctl add-flow br0 in_port=2001,actions=output:1

    1
    2
    3
    4

sflow配置

1.对网桥br0进行sflow监控

    agent: 与collector通信所在的网口名,通常为管理口
    target: collector监听的IP地址和端口,端口默认为6343
    header: sFlow在采样时截取报文头的长度
    polling: 采样时间间隔,单位为秒

ovs-vsctl -- --id=@sflow create sflow agent=eth0 target=\"10.0.0.1:6343\" header=128 sampling=64 polling=10 -- set bridge br0 sflow=@sflow

    1

2.查看创建的sflow

ovs-vsctl list sflow

    1

3.删除对应的网桥sflow配置,参数为sFlow UUID

ovs-vsctl remove bridge br0 sflow 7b9b962e-fe09-407c-b224-5d37d9c1f2b3

    1

4.删除网桥下所有sflow配置

ovs-vsctl -- clear bridge br0 sflow

    1

QoS配置
ingress policing

1.配置ingress policing,对接口eth0入流限速10Mbps

ovs-vsctl set interface eth0 ingress_policing_rate=10000
ovs-vsctl set interface eth0 ingress_policing_burst=8000

    1
    2

2.清除相应接口的ingress policer配置

ovs-vsctl set interface eth0 ingress_policing_rate=0
ovs-vsctl set interface eth0 ingress_policing_burst=0

    1
    2

3.查看接口ingress policer配置

ovs-vsctl list interface eth0

    1

4.查看网桥支持的Qos类型

ovs-appctl qos/show-types br0

    1

端口镜像配置

1.配置eth0收到/发送的数据包镜像到eth1

ovs-vsctl -- set bridge br0 mirrors=@m \
-- --id=@eth0 get port eth0 \
-- --id=@eth1 get port eth1 \
-- --id=@m create mirror name=mymirror select-dst-port=@eth0 select-src-port=@eth0 output-port=@eth1

    1
    2
    3
    4

2.删除端口镜像配置

ovs-vsctl -- --id=@m get mirror mymirror -- remove bridge br0 mirrors @m

    1

3.清除网桥下所有端口镜像配置

ovs-vsctl clear bridge br0 mirrors

    1

4.查看端口镜像配置

ovs-vsctl get bridge br0 mirrors

    1

聚合口配置

1.创建一个聚合口

ovs-vsctl add-port br0 dpdkbond0 \
    -- set interface dpdkbond0 type=dpdk options:dpdk-devargs=0000:01:00.0,0000:02:00.0

    1
    2

2.设置聚合口模式

# mode=1
ovs-vsctl set port dpdkbond0 bond_mode=active-backup

# mode=2
ovs-vsctl set port dpdkbond0 bond_mode=balance-slb

# mode=4
ovs-vsctl set port dpdkbond0 bond_mode=balance-tcp
ovs-vsctl set port dpdkbond0 lacp=active
ovs-vsctl set port dpdkbond0 lacp=off
ovs-vsctl set port dpdkbond0 lacp=passive

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

3.查看mode=4 lacp协商状态

ovs-appctl lacp/show
————————————————
版权声明:本文为CSDN博主「云云生息」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/rocson001/article/details/73163041/

注明:所有转载内容皆直接从被转载文章网页的标题和内容的文本中复制而来

CC 4.0 BY-SA 版权协议网址:https://creativecommons.org/licenses/by-sa/4.0/deed.z

[内容] Linux 虚拟网桥的设置 (Bridge 版) (转载)

Linux 网桥(br)配置

1、brctl命令安装
yum -y install bridge-utils
2、临时配置步骤
临时配置机器重启后配置失效。多网口配置网桥需开启转发。
临时转发生效:
echo “1” > /proc/sys/net/ipv4/ip_forward
永久配置:
将文件/etc/sysctl.conf里面的net.ipv4.ip_forward=1的注释去除
sysctl -p (重新加载)
(1)查看系统是否存在网桥配置
brctl show

(2)添加一个新的逻辑网桥接口br0
brctl addbr br0

(3)将eth1加入逻辑网桥br0
brctl addif br0 eth1/eth2

(4)网口配置混杂模式
ifconfig eth1/eth2 down
ifconfig eth1/eth2 0.0.0.0 up
或者ifconfig eth0 promisc / -promisc
(5)配置网桥地址并启动
ifconfig br0 172.168.0.1 up

注:
网卡工作模式:
A、广播方式:该模式下,网卡能够接收网络中的广播信息。
B、组播方式:该模式下,网卡能够接收组播数据。
C、直接方式:该模式下,只有目的网卡才能接收该数据。
D、混杂模式:该模式下,网卡能够接收一切通过它的数据。
3、永久配置
(1)修改eth1/et2网卡配置
vim /etc/sysconfig/network-scripts/ifcfg-eth1/eth2
DEVICE=eth1/eth2
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
BRIDGE=br0
(2)修改br0配置
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-br0
vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
NETMASK=255.255.255.0
IPADDR=172.168.0.2
GATEWAY=172.168.0.1
(3)重启网卡
service network restart
(4)开机激活
echo “modprobe bridge”>>/etc/rc.local
4、brctl命令拓展
addbr
#添加bridge
delbr
#删除bridge
addif
#添加接口到bridge
delif
#从bridge中删除接口
setageing
#设置老化时间,即生存周期
setbridgeprio
#设置bridge的优先级
setfd
#设置bridge转发延迟时间
sethello
#设置hello时间
setmaxage
#设置消息的最大生命周期
setpathcost
#设置路径的权值
setportprio
#设置端口的优先级
show
#显示bridge列表
showmacs
#显示MAC地址
showstp
#显示bridge的stp信息
stp bridge {on|off}
#开/关stp
————————————————
版权声明:本文为CSDN博主「linux言叙」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34493319/article/details/104486641

注明:所有转载内容皆直接从被转载文章网页的标题和内容的文本中复制而来

CC 4.0 BY-SA 版权协议网址:https://creativecommons.org/licenses/by-sa/4.0/deed.z

[命令] Linux 命令 ipmitool (管理服务器硬件)(转载)

ipmitool安装,常用指令

IPMI: Intelligent Platform Management Interface
1.下载地址:

https://sourceforge.net/projects/ipmitool/
2.安装步骤

a. tar -xvf ipmitool-1.8.18.tar.bz2
b. cd ipmitool-1.8.18
c. ./configure
d. make
e.make install
f.
modprobe ipmi_si
modprobe ipmi_devintf
modprobe ipmi_msghandler
安装成功(实测Centos7.4)
3.常用指令

    远程电源控制类 远程电源控制类
    Ipmitool -I lanplus –H 10.32.228.111 –U username –P Passwordchassis power off
    Ipmitool -I lanplus –H 10.32.228.111 –U username –P Passwordchassis power on
    Ipmitool -I lanplus –H 10.32.228.111 –U username –P Passwordchassis power reset
    Ipmitool -I lanplus –H 10.32.228.111 –U username –P Passwordchassis power cycle
    (注意power cycle 和power reset的区别在于前者从掉电到上电有1秒钟的间隔,而后者是很快上电)
    读取系统状态类
    Ipmitool sensor list  显示系统所有传感器列表
    Ipmitool fru list   显示系统所有现场可替代器件的列表
    Ipmitool sdr list   显示系统所有SDRRepository设备列表 
    Ipmitool pef list   显示系统平台时间过滤的列表
    3 系统日志类
    Ipmitool sel elist   显示所有系统事件日志
    Ipmitool sel clear   删除所有系统时间日志
    Ipmitool sel delete ID 删除第ID条SEL
    Ipmitool sel time get  显示当前BMC的时间
    Ipmitool sel time set XXX 设置当前BMC的时间
    启动设置类
    Ipmitool chassis bootdev bios 重启后停在BIOS 菜单
    Ipmitool chassis bootdev pxe 重启后从PXE启动
    系统相关的命令
    Ipmitool mc info 显示BMC版本信息
    Ipmitool bmc reset cold BMC 热启动
    Ipmitool bmc reset warmBMC冷启动
    网络接口相关命令
    Ipmitool lan print 1 显示channel1的网络配置信息
    Ipmitool lan set 1ipaddr 10.32.2.2 设置channel1的IP地址
    Ipmitool lan set 1 netmask 255.255.0.0 设置channel1的netmask
    Ipmitool lan set 4 defgw ipaddr255.255.0.254 设置channel4的网关
    Ipmitool lan set 2 defgw macaddr  设置channel2的网关mac address
    Ipmitool lan set 2 ipsrc dhcp 设置channel2的ip 源在DHCP
    Ipmitool lan set 3 ipsrc static 设置channel2的ip是静态获得的
    通道相关命令
    Ipmitool channel info 显示系统默认channel
    Ipmitool channel authcap channel-number privilege  修改通道的优先级别
    Ipmitool channel getaccess channel-number user-id 读取用户在通道上的权限
    Ipmitool channel setacccess channel-number user-id callin=on ipmi=on link=onprivilege=5 // 设置用户在通道上的权限
    看门狗相关命令
    Ipmitool mc watchdog get 读取当前看门狗的设置
    Ipmitool watchdog off   关掉看门狗
    Ipmitool watchdog reset   在最近设置的计数器的基础上重启看门狗
    用户管理相关命令
    Ipmitool user list chan-id 显示某通道上的所有用户
    Ipmitool set password [] 修改某用户的密码
    Ipmitool disable   禁止掉某用户
    ipmitool enable   使能某用户
    ipmitool priv [] 修改某用户在某通道上的权限
    ipmitool test <16|20>[<password]> 测试用户
————————————————
版权声明:本文为CSDN博主「Rudy,Zhao」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_40343504/article/details/82664389

注明:所有转载内容皆直接从被转载文章网页的标题和内容的文本中复制而来

CC 4.0 BY-SA 版权协议网址:https://creativecommons.org/licenses/by-sa/4.0/deed.z