network网卡常用命令介绍cat /sys/class/net/enox驱动升级方法http://t.zoukankan.com/zhangmingda-p-14363854.html解压后进到目录 ./mlnxofedinstall 假如说安装失败,--force后面加个这个强制安装--nodeps–add-kernel-supFW升级方法https://www.cnblogs.com/seaBiscuit0922/p/9294541.htmlflint -d /dev/mst/mt*** -i *.bin burn先打mst startflint -d /dev/mst/mt4117_pciconf0 -i fw-ConnectX4Lx-rel-14_23_1000-MCX4121A-ACA_Ax-UEFI 14.16.15-FlexBoot-3.5.504.bin burnCd /etc/sysconfig/network-scriptscat /proc/net/bonding/bond0Service network restart 重启网络 可以解决直连但是灯不亮,无速率,删除bond/etc/init.d/network restart networkingsystemctl stop NetworkManager cent/rhel的网络管理 重启网络chkconfig NetworkManager off 开机启动或关闭egrep -c '(vmx|svm)' /proc/cpuinfo //输出结果大于0即代表支持虚拟化tcpdump -e -i enox ip src host 10.10.10.20 and dst net 10.10.10.10tcpdump -i enox|grep -i "ICMP echo request" 查看mtu,字节长度吧ethtool -S enox |egrep -i "dropped|error" 查看丢包ifconfig ethX 抓软件层面丢包误码 ethtool -S ethX 抓硬件层面丢包误码ping xxxx.xxxx.xxxx.xxxx -s 10000cd /etc/netplanvi 01-netcfg.yaml ubuntu专用修改ip方法rpm -qa|grep kernel 查询rpm已安装的包lsmod|grep -I xxx 查询某个模块是否被加载rmmod xxx 卸载某个模块insmod xxx 加载某个驱动?modprobe -r driver_name 卸载驱动modprobe driver_name 加载驱动./mlnxofedinstall --add-kernel-support --distro rhel7.6alternate ARM BCLINUX7.6用 x86的redhat7.6的mellanox安装包./mlnxofedinstall --distro rhel7.6alternate --skip-distro-check --add-kernel-support 安装方法2MAC单播 原本MAC组播 AABB任意单播 0000广播 六组全FFmlxconfig -d /dev/mst/mt*_pciconf* s SRIOV_EN=1 NUM_OF_VFS=127 查询能创建多少个VF把echo 127 > /sys/class/infiniband/mlx5_0/device/mlx5_num_vfs使能VFsecho 6 > /sys/class/net/enp3s0f0/device/sriov_numvfsifconfig enp6s0 inet6 add fe80::2218:8ff:febc:1941/96ifconfig enp6s0 del fe80::2218:8ff:febc:1941/64ping6 -I ethx ipv6_addressethtool -S enox | egrep -i 'drop|error'ethtool -s enox speed 1000 duplex full autoneg off 会导致与交换机自协商不了灯不亮ethtool -s enox autoneg on./configure -build=armdmesg|egrep -i "error|fail|warn|wrong|bug|respond|pending|call trace"Kill -9 xxxx 杀掉某一线程Pkill -9 netperf 可以杀掉所有netperf进程ip link show enox|grep -i link-state 主机上使用,查看VF口状态吧ip link set enox vf 0 state enable 打开vf口吧echo 8 > /sys/class/net/enox/device/sriov_numvfsethtool -G enox rx 8192 ethtool -g enox 修改rx和tx为最大ethtool -L enox combined 8 修改combind为8ifconfig enox mtu 9000 最大有9978,9702(SP332),9414(SF400HT)ping -c 1000 -f -s 2048 [Server IP] mtu不能为9000,要改为1500generic-receive-offload GRO 一般收到卸载ethtool -K enox gro onethtool -K enox gro offethtool -k enox|grep genlarge-receive-offload LRO 大获得卸载ethtool -K enox lro onethtool -K enox lro offethtool -k enox|grep lartcp-segmentation-offload TSO tcp分段卸载ethtool -K enox tso onethtool -K enox tso offethtool -k enox|grep tcpethtool -k enox|grep genethtool -k enox|grep larethtool -k enox|grep tcpethtool -k enoxethtool -K enox tx onnetperf -H 10.10.10.20 -l 120 -- -m 65150 -M 65150 发送端tcpdump -i enox -nn src net 10.10.10.10 -c 500 接收端netperf -H <Server IP> -t UDP_STREAM -l 300 -- -m pkt_length -M pkt_length (-s 4096000)互信ssh-keygen -R xx.xx.xxx.xx 报错,更新密钥就可以ssh-keygen -t rsa 互信scp .ssh/id_rsa.pub root@10.10.10.20:/root/.ssh/authorized_keysssh 10.10.10.20sh_dispatch_run_fatal: Connection to 10.10.10.20 port 22: message authentication code incorrectlost connectionacket_write_wait: Connection to 10.10.10.10 port 22: Broken pipessh xx@xx.xx.xx.xx NCSI时systemctl restart sshd.service 重启ssh服务,2条都是把service sshd restartvi /etc/ssh/sshd_config文件配置,是否可以密码认证 更改PasswordAuthentication yes然后重启sshd服务 这个是解决只能用公私钥登录的modprobe 8021qip link add link enox name enox.100 type vlan id 100ip addr add 192.168.100.50/24 dev enox.100ip link set enox.100 upifconfig enox.100ip link delete eth0.1 type vlan 删除vlanip link add link bond0 name bond0.1107 type vlan id 1107ip addr add 192.168.100.50/24 dev bond0.1107ip link set bond0.1107 upethtool -S enox | grep -I rx | grep -I packetsrpmbuild -tb i40e-2.15.9.tar.gz 驱动升级方法,先编译rpm -e xxx 卸载需要卸载的东西ip addr add xx.xx.xx.110/23 dev enp125s0f0 添加OA网IP和掩码route add default gw xx.xx.xx.1 添加OA网关,这个应该是全部网口while [ 1 ]; do esxcli network nic down -n vmnic5;sleep 1; esxcli network nic up -n vmnic5;sleep 10;doneNCSI不成功排查思路关闭业务口,port口改为自动获取并开启网口防火墙?ifconfig查看网卡数量,使能后,可以用ifconfig|grep -I eth|wc -lSFP是机架的KR是刀片和异构的WOL Wake On Lan 网络唤醒 通过ethtool xxx,查到wake on : d d为不支持,g为支持ethtool -m ens1f0 查询线缆信息虚拟机添加使能网口后进不去 报错不支持 vi /etc/default/grubintel_iommu=on iommu=pt #x86iommu.passthrough=1 #armꟊgrub2-mkconfig -o /boot/efi/EFI/系统/grub.cfgLspciLspci 显示所有的pci设备信息lspci -v/-vv/-vvv:显示详细的pci设备信息,v越多,越详细,当然,上限3个。Lspci -s(bdf) -vvv 显示网卡详细信息Vmware ESXIvi /etc/ssh/sshd_config 文件配置,是否可以密码认证 更改PasswordAuthentication yes然后重启sshd服务 这个是解决只能用公私钥 publick key登录的无需其他操作即可Alt+f1 进入终端 Alt+f2 退出命令行Ping不通,可以把网口开关都开关一下vmware -vvmware -lesxcli system version getesxcli software vib list,查看已安装的驱动列表驱动安装方法:esxcli software vib install -v /vib20/ixgben/INT_bootbank_ixgben_1.9.12.0-1OEM.700.1.0.15843807.vibesxcli software vib install -v /vmfs/volumes/datastore1/vib20/nmlx5-core/MEL_bootbank_nmlx5-core_4.21.71.101-1OEM.702.0.0.17630552.vibesxcli software vib install -v /vmfs/volumes/datastore1/vib20/nmlx5-rdma/MEL_bootbank_nmlx5-rdma_4.21.71.101-1OEM.702.0.0.17630552.vib-d 升级zip包固件安装方法:Intel按照官方文档来进FusionServer Tools-FwUpgrade-V102执行install.sh升级固件Esxcli network firewall get 查看防火墙状态Esxcli network firewall set –enabled false 设置防火墙为falsedmesg|egrep -i "error|fail|warn|wrong|bug|respond|pending|call trace"esxcli software vib remove -n ixgben 如果错误可以卸载esxcli network nic list 列出当前ESXi主机上所有NICs的状态esxcli network nic get -n vmnic4 查看网卡驱动版本及固件版本vim-cmd hostsvc/maintenance_mode_enter 进入维护模式esxcli network nic stats get -n vmnic4 查看是否丢包lspci | grep 'Network controller' 查看一下 Intel Corporation 10-Gigabit 网卡驱动是否能被正确识别出来esxcli network nic down -n vmnic4 down掉网口esxcli network nic set -S=1000 -n=vmnic4 -D=full 设置速率1000m,全双工esxcli network nic set -n=vmnic4 -a 设置网卡自适应esxcli system settings advanced set -o /Net/UseHwTSO -i 0 关闭TSOesxcli system settings advanced list -o /Net/UseHwTSO 查询是否成功esxtopesxcli software vib list 查看驱动安装情况esxcli system settings advanced set -o /Net/Vmxnet3HwLRO -i 0 关闭虚拟网卡驱动模块LROesxcli system settings advanced list -o /Net/Vmxnet3HwLRO 查询是否成功esxcli system settings advanced set -o /Net/TcpipDefLROEnabled -i 0 在主机上关闭LROesxcli system settings advanced list -o /Net/TcpipDefLROEnabled 查询是否成功esxcli network nic up -n vmnic4esxcli network nic down -n vmnic4 down掉网卡端口esxcfg-module -u ixgben 卸载网卡驱动esxcli software vib remove -n ixgben 卸载网卡驱动esxcfg-module -s VMDQ=2 ixgben 加载网卡驱动vmkload_mod nmlx5_core 加载迈络斯网卡驱动进入维护模式:vim-cmd hostsvc/maintenance_mode_enter退出维护模式:vim-cmd hostsvc/maintenance_mode_exit暂定于用nic2去冲包,nic3来downwhile [ 1 ]; do esxcli network nic down -n vmnic3;sleep 1; esxcli network nic up -n vmnic3;sleep 10;doneesxcli hardware memory get 查询内存dmesg|grep -i msiesxcfg-nics -l 查看ESXI上网口的信息、端口、速率、型号、Mac地址等信息lspci | grep 'Network controller' 查看该网卡是否被识别esxcli hardware memory get 查询内存大小esxcli system module parameters set -m ixgben -p max_vfs=63,63 使能vi /etc/ssh/sshd_config文件配置,是否可以密码认证 更改PasswordAuthentication yes然后重启sshd服务 这个是解决只能用公私钥 publick key登录的无需重启ssh服务,无需重启服务器,直接可以用关于卡连接交换机后一直Down,无法up先设置速率为正常速率/自协商速率,然后设置自协商,就可以了esxcli network nic set -S=25000 -n=vmnic3 -D=fullesxcli network nic set -n=vmnic3 -a网口使能网页使能和命令使能是两码事,不要混用,用命令就一直用命令,用网页就一直用网页否则就会导致命令无作用,只能靠网页esxcli network nic listesxcli system module parameters set -m nmlx5_core -p max_vfs=1,1建议这条命令打完后,不要立马重启,而是等待10多秒在重启1、在TC端开启server端,启动命令为:iperf –s –p 5001/ iperf –s –p 5002;发起测试命令taskset –c X iperf -c xxx.xxx.xxx.xxx -i 3 -t 60 -P 10 -p 5003/ taskset –c X iperf -c xxx.xxx.xxx.xxx -i 3 -t 60 -P 10 -p 5004在SUT端开启server端,启动命令为:iperf –s –p 5003/ iperf –s –p 5004;发起测试命令taskset –c X iperf -c xxx.xxx.xxx.xxx -i 3 -t 60 -P 10 -p 5001/ taskset –c X iperf -c xxx.xxx.xxx.xxx -i 3 -t 60 -P 10 -p 5002Citrix必装XencenterCitrixHypervisor-8.2.0-XenCenter.msi 在安装包目录下安装后可以图形化管理网口,虚拟机Exit可以退出进入系统主页使能Temphttps://blog.csdn.net/xnf1991/article/details/50063769注意intel_iommu=on iommu=pt 不敲也可以6.进入 XS 控制台, 查看此虚拟机的 PCI 映射情况:xe vm-list uuid=UUID号 params=other-configxe vm-list uuid=889f57ba-2e5c-6687-bd66-108065b01c6c params=other-configecho 32 > /sys/class/net/eth2/device/sriov_numvfs如果想清除 VM 对应的映射关系可使用此命令进行清除:xe vm-param-clear param-name=other-config uuid=xxxxxxxxxx 关闭虚拟机,然后再开机.Ifconfig查看网口数量ifconfig -a |egrep -v 'lo|br|bond|vnet|vtap'|grep mtu |wc -l调优systemctl status firewalldsystemctl status irqbalance关闭smmu虚拟机的话记得加内存和CPU, 虚拟机最大只能加255G内存1 开启lro ethtool -K enox lro on2 修改combind为16 ethtool -L enox combined 16 186.195一改就死机3 修改rx和tx为最大 ethtool -G enox rx 8192 ethtool -g enox4 修改MTU为9000 ifconfig enox mtu 9978 能否更高99785 绑核systemctl stop firewalldsystemctl stop irqbalanceethtool -K enox lro onethtool -K enp1s0f1 lro onethtool -L enox combined 16ethtool -L enp1s0f1 combined 16ethtool -G enox rx 8192ethtool -G enp1s0f1 rx 8192ethtool -G enox tx 8192ethtool -G enp1s0f1 tx 8192ifconfig enox mtu 9978ifconfig enp1s0f1 mtu 9978ethtool -K bond0 lro onethtool -L bond0 combined 16ethtool -G bond0 rx 8192ethtool -G bond0 tx 8192ifconfig bond0 mtu 9978线的接口不一样,100G的IB卡线很粗,25G的线只有单根光模块和线,应该56G是双根光纤线mlxfwreset -d/dev/mst/mt4117_pciconf0 reset 强刷固件,刷到想到的固件版本关于link detected:no, 敲命令opensmFC网卡:一般也叫光纤网卡,学名Fibre Channel HBA。传输协议为光纤通道协议,一般通过光纤线缆与光纤通道交换机连接。接口类型分为光口和电口。光口一般都是通过光纤线缆来进行数据传输,接口模块一般为SFP(传输率可达8Gb/s)和GBIC(1Gb/s),对应的接口为SC和LC。电口的接口类型一般为DB9针或HSSDC以太网卡:学名Ethernet Adapter,传输协议为IP协议,一般通过光纤线缆或双绞线与以太网交换机连接。接口类型分为光口和电口。光口一般都是通过光纤线缆来进行数据传输,接口模块一般为SFP(传输率2Gb/s)和GBIC(1Gb/s),对应的接口为SC、ST和LC。电口目前常用接口类型为RJ45,用来与双绞线连接,也有与同轴电缆连接的接口,不过现在已经用的比较少了Infinite band InfiniBand直译为“无限带宽”技术,缩写为IB)是一个用于高性能计算的计算机网络通信标准,它具有极高的吞吐量和极低的延迟,用于计算机与计算机之间的数据互连。InfiniBand也用作服务器与存储系统之间的直接或交换互连,以及存储系统之间的互连HBA(Host Bus Adapter) 卡是将主机接入FC网络必不可少的设备, 主机总线适配器是网络与交换,是能插入计算机或大型主机的板卡关于芯片厂商和网卡厂商高速线缆(Direct Attach Cable)简称DAC,一般译为直接连接电缆或直连铜缆。是指在高速跳线的两端都装上光模块,通过将交换机连接到路由器或服务器上,广泛应用于存储区域网络、数据中心和高性能计算机连接,在网络通信中正逐渐崛起。查询资料得知,高速线缆DAC的有优势如下:1、高性能:适用于数据中心的短距离布线,使用范围广,集成方案交换能力强。2、节能环保:高速线缆内部材质是铜芯,铜缆的自然散热效果好,节能环保。3、低功耗:高速线缆功耗低。由于无源电缆不需要电源,耗电量几乎为0;有源电缆耗电量一般在440mW左右。绑定网卡冗余/绑定 务必要用交换机,出现down不切换的话 机x条DAC,机1条DACNmtui绑定时,网口1和2会变为1个mac地址 是用service network restart 和active和重启 后出现Mac地址变为一样,是正常现象,因为可以正常做和正常主备建议用1根黄色和蓝色DAC线去插在卡上面Cent 网口开关灰色动不了不显示速率可以打开开关怀疑是网线问题,普通的橙色25G线缆2端插在同一个网卡,可以正常使用,但是插在两张网卡会不通换了25G线秒好驱动升级方法解压后进到目录 ./mlnxofedinstall 假如说安装失败,--force后面加个这个强制安装--nodeps要先升级驱动,才能升级固件,但是一般驱动升级后,固件会更新的,一般也会同步升级也可以 –add-kernel-sup固件升级方法flint -d /dev/mst/mt*** -i *.bin burn先打mst startMst status可以查看mst的状况,flint -d /dev/mst/mt4117_pciconf0 -i fw-ConnectX4Lx-rel-14_23_1000-MCX4121A-ACA_Ax-UEFI 14.16.15-FlexBoot-3.5.504.bin burnburn不要忘了正常安装并搭建本地源出现,yum install redhat-rpm-config kernel-devel-4.19.25-200.el7.bclinux.aarch64 安装不上在bc7.6的镜像文件packages文件夹可以找到对应软件却装不上rpm -qa|grep kernel 查询确实没装上yum install kernel-bek-devel-4.19.25-200.el7.bclinux.aarch64 通过手动安装,可以安装上,看着不太一样,应该都一样通过进入packages文件,强制rpm安装 redhat-rpm-config ,安装成功,不强制安装会报错 已安装rpm -ivh redhat-rpm-config-9.1.0-87.el7.centos.noarch.rpm --nodeps –force./mlnxofedinstall --distro rhel7.6alternate --skip-distro-check --add-kernel-support 安装方法1./mlnxofedinstall --add-kernel-support --distro rhel7.6alternate 安装方法2./mlnxofedinstall --distro openeuler20.03 --without-fw-updaterhel7.6+rhel7.6mellanox一直催你注册,vim /etc/yum/pluginconf.d/subscription-manager.conf 里面改为0https://blog.csdn.net/oraoharu/article/details/106808108 这是rhel7.6的 yum install tcl gcc-gfortran tkIntel安装驱动注意:挂本地源yum install kernel*,不然会报错 kernel-devel 这个也可以试试common.mk:82: *** Kernel header files not in any of the expected locations.common.mk:83: *** Install the appropriate kernel development package, e.g.common.mk:84: *** kernel-devel, for building kernel modules and try again. Stop.方法:Tar zxvf i40e-2.15.9.tar.gzCd i40e-2.15.9/srcMakeMake installreboot假如说要卸载驱动,进入src文件夹,make uninstall 执行后,重启就好了方法2:编译安装rpmbuild -tb i40e-xxx.tar.gz 生成rpm驱动文件,在反馈中找到生成的驱动路径rpm –ivh xxx.rpm 安装驱动卸载驱动再加载驱动一次,查看驱动是否更改为目标版本固件可以用https://support.huawei.com/enterprise/zh/doc/EDOC1100240022/58f3b1f7就是服务器挂载FusionServer Tools-FwUpgrade-V104.iso,然后通过DVD启动,进入迷你linux说是用eeupdate64e去做升级固件动作 先用./eeupdate64 去确定nic是几,如果有多个,默认用第一个./eeupdate64e /nic=x /D xxxx.bin虚拟机驱动I40e的网卡,要装iavfiavf-4.1.1.tar.gz挂本地源yum install kernel*,不然会报错 kernel-devel 这个也可以试试目前X86 sles15.2 26-2大包是成功装过的,刚开始报错3行 后面挂本地源安装kernel-devel就可以X86 cent8.3 26-2大包 kernel*和kernel-devel都不行编译内核模块时出现:cc1: error: code model kernel does not support PIC mode删除该模块目录下的 .cache.mk 文件就好了,重新 make 即可安装kernel-devel和kernel*都不行,可以试试安装Libelf-dev,libelf-devel,elfutils-libelf-devel有可能是 kernel-devel没有安装rpm -qa kernel-devel kernel-headers如果没有找到,那就先安装yum install kernel-devel kernel-headers如果已经安装了,还出现以上错误,是因为在Makefile文件中,它连接的目录为/usr/src/linux但是系统里面并没有这个目录,这个时候可以使用以下命令:cd /usr/srcln -s /kernels/2.6.32-4xx.11.2.el6.x86_64/ linux创建一个软链接。再执行:make最后成功编译!IB报错mst start/etc/init.d/opensmd start/etc/init.d/openibd start ibstatlspci |grep -i mell./mlnxofedinstall --add-kernel-supportIbstat 可以查看linkup和stateOpensm 打开物理状态Openibd 无效Mst start 启动mst服务Mst status 查看mst服务状态Modinfo mlx5_core 查询驱动信息吧ls /sys/class/infiniband/mlx5_0/device/sriov查看使能胡网口数量,注意假如使能127,那就只有127个,是从0开始X8的Riser卡会限制网卡速率,限制X16的到X8关于互信,一定要线操作机,确定可以免密后操作机,不然同时操作2台,会不成功还有ssh 192.168.30.xx ,没有root@ssh-keygen -t rsascp .ssh/id_rsa.pub root@192.168.30.40:/root/.ssh/authorized_keys端口resetBase lib + Number of portsBase lib 为65535的话,是不对的,要去opensmmst start# 查看网卡模块型号ibv_devinfo | grep vendor_part_id# 如vendor_part_id: 4115# 查看当前端口等信息mlxconfig -d /dev/mst/mt4115_pciconf0 q | grep LINK_TYPE_# LINK_TYPE_P1 1# 1是指ib模式,2是指eth模式#设置成eth模式,也就是2mlxconfig -d /dev/mst/mt4115_pciconf0 set LINK_TYPE_P1=2 LINK_TYPE_P2=2# 完成之后重启ibdev2netdev# 可以看到具体的端口状态 en开头是eth的意思,ib模式是ib开头的,名称(用来设置ip)#mlx5_0 port 1 ==> ens5f0 (Down)#mlx5_1 port 1 ==> ens5f1 (Down)#也可以用ibv_devinfo来查看端口类型link_layer:Ethernet 则为成功关于执行重启网络命令报错解决方法第四步:重启网络服务,正常情况下只有bond0网卡设备有IP地址等信息。systemctl stop NetworkManagersystemctl start NetworkManager实测,以上两句输入后可以解决systemctl disable NetworkManagersystemctl restart network这里需要先关闭NetworkManager,再重启network,否则会报下图中错误重启网络服务命令:service network restart(centos8以上服务改为NetworkManager,命令参考 systemctl restart NetworkManager)VF直通cd /sys/class/infiniband/mlx5_0/device/sriov/ 只输一次echo Follow > /sys/class/infiniband/mlx5_0/device/sriov/0/policy 每次都输啊,不然一直downecho 11:11:11:11:22:22:22:11 > /sys/class/infiniband/mlx5_0/device/sriov/0/nodeecho 11:11:11:11:22:22:22:12 > /sys/class/infiniband/mlx5_0/device/sriov/0/portecho 0000:c3:00.1 > /sys/bus/pci/drivers/mlx5_core/unbindecho 0000:c3:00.1 > /sys/bus/pci/drivers/mlx5_core/bindcat /sys/class/infiniband/mlx5_0/device/sriov/0/nodecat /sys/class/infiniband/mlx5_0/device/sriov/0/portNetperf -H 10.10.10.20 -t UDP_STREAM -l 600报错send_omni:send_data failed:No route to host,但是TCP就不会报错BIOS可以设置使能口数量Network device list-----选中使能网口进去------Device level Configration-----设置数量虚拟机添加使能网口后进不去 报错不支持 vi /etc/default/grubintel_iommu=on iommu=pt #x86iommu.passthrough=1 #armꟊgrub2-mkconfig -o /boot/efi/EFI/系统/grub.cfgMellanoxz 查看使能数量1. 先切到linux OS并安装Mallenox驱动(随便那个版本,不是inbox即可)2. 开启mst服务,命令:mst start3.可以看到那个MST device ,即:/dev/mst/mt4115_pciconf04.通过命令查看SR-IOV是否开启:mlxconfig -d /dev/mst/mt41139pciconf0 q|grep -i "SR"(过滤字符自己酌情修改) 5.通过命令修改SR-IOV数并开启SR-IOV命令:mlxconfig -d /dev/mst/mt41139pciconf0 set SRIOV_EN=1 NUM_OF_VFS=4(数量请根据实际情况填写)查看可以使能的网口数量cat /sys/class/net/eth4/device/sriov_totalvfsPxe Vlan安全模式会导致进不了PXE!!!!!!!!!!!!!!!!!!!!!!!!要选最新系统,否则没有网卡驱动报错超时CentOS搭建本地源[base-local]name=isobaseurl=file:///mntgpgcheck=0enabled=1vim /etc/modprobe.d/bond.confalias bond0 bondingoptions bond0 miimon=100 mode=6pingcat /etc/sysconfig/network-scripts/ifcfg-ethxifconfig ethx xx.xx.xx.xx/16 up 这条命令并不会在network-scripts文件内生成配置文件以下为手写网口配置文件配置IP等DEVICE=ethxBOOTPROTO=noneHWADDR=0:0C::29:8E:E4:BCONBOOT=yesTYPE=EthernetNETMASK=255.255.0.0IPADDR=192.168.1.33USERCTL=yesIPV6INIT=noGATEWAY=192.168.1.3设置好后使用:service network restart使网络设置生效。注意:若ONBOOT设置为no,会导致service network restart启动错误service network restart或/etc/init.d/network restart以下为备注DEVICE=ethx 设备/网口名称BOOTPROTO=noneHWADDR=0:0C::29:8E:E4:BC 设备/网口MAC地址ONBOOT=yes 开机自动启动TYPE=Ethernet 设备/网口的类型为以太网NETMASK=255.255.0.0 子网掩码IPADDR=192.168.1.33 IP地址USERCTL=yesIPV6INIT=noGATEWAY=192.168.1.3 默认网关ifcfg-ech0文件中的内容包含以下信息1. DEVICE: 网络接口名称2. TYPE: 配置文件接口类型(Ethernet以太网)3. UUID: 随机生成唯一标识符4. ONBOOT: 是否在开机的时候启动网络连接(yes/no)5. BOOTPROTO: 系统启动地址协议(也就是ip的生成方式,如果不想ip地址发生修改要使用static选项)6. HWADDR: MAC地址7. PEERDNS 是否允许DHCP获得的DNS覆盖本地的DNS8. DEFROUTE 是否选择该接口为默认路由(yes/no)9. PEERROUTES10. IPV4_FAILURE_FATAL 如果ipv4配置失败禁用设备11. IPV6INIT 是否启用ip6接口12. NAME 网络连接名字https://blog.csdn.net/qq_43386754/article/details/85xx6051https://www.cnblogs.com/adforce/p/3363681.htmlhttps://blog.csdn.net/weixin_30999777/article/details/1165750502.5 卸载驱动1显示已安装的驱动:[root@SW ~]# lsmod | grepngbengbe 208399 02卸载驱动: r mmod ngbe[root@SW ~]# rmmod ngbe3) 再次查看已安装的驱动,已经没有 ngbe 驱动。[root@SW ~]# lsmod | grep ngbe使用 ethtool f 命令升级网卡固件1) 将待升级固件文件上传到操作系统对应目录 centos 为: :/usr/lib/firmware/ 、Ubuntu 为: :/lib/firmware/ 、 SUSE 为: :/lib/ 。2) 执行 ethtool -f 命令升级固件: ethtool -f [ 网口名称 ] 固件名称PS:其中 enP2p233s0f0 为网口名称,每张网卡只需选取其中任意一个网口进行操作即可; SF200T_10015.arm64.img 为步骤 1 中上传的固件文件名称。3) 步骤 2 命令执行完成后,重启系统使固件生效。4) 执行 ethtool i 网口名称 检查固件版本是否升级成功。(非必要步骤)GRO LRO TSO MTU9000接受数据包不正常具体为length小于mtu值解决方法就是多接收几次,并且用下面这个命令接收tcpdump -ni ens1f0 src host 50.50.50.20 -v -c 10 |grep -i length组播,单播,广播单播(unicast): 是指封包在计算机网络的传输中,目的地址为单一目标的一种传输方式。它是现今网络应用最为广泛,通常所使用的网络协议或服务大多采用单播传输,例如一切基于TCP的协议。组播(multicast): 也叫多播, 多点广播或群播。 指把信息同时传递给一组目的地址。它使用策略是最高效的,因为消息在每条网络链路上只需传递一次,而且只有在链路分叉的时候,消息才会被复制。广播(broadcast):是指封包在计算机网络中传输时,目的地址为网络中所有设备的一种传输方式。实际上,这里所说的“所有设备”也是限定在一个范围之中,称为“广播域”。当unicast/multicast bit 位置1时就是 multicast,mac 地址为0x FFFFFFFFFFFF时就是broadcast.1、单播 MAC 地址是指第一个字节的最低位是 0 的 MAC 地址;2、组播 MAC 地址是指第一个字节的最低位是 1 的 MAC 地址;3、广播 MAC 地址是指每个比特都是 1 的 MAC 地址。广播 MAC 地址是组播 MAC 地址的一个特例。后面为前两位转换为二进制的第8位为 1 还是 0 来区分 单播和组播要求广播 ff ff ff ff ff ff/1111 1111 xxxxx组播 ab bb cc dd ee ff/1010 1011/满足组播要求网口MAC单播非网口MAC单播/任意单播 00 00 00 00 00 00/满足单播要求虚拟机克隆virsh list –all 查看已经安装的虚拟机virt-clone --original centos7.8 --name centos7.8-2 --file /home/centos7.8-2--original //后面跟要克隆的虚拟机名字--name //克隆后虚拟机的名字--file //指定存放的路径克隆完成后 用virsh list --all 查看并启动virsh start sunhao-3 --console进入到sunhao-3虚拟机后查看IP也克隆了这时需要进入/etc/sysconfig/network-scripts/ 编辑配置文件vim ifcfg-eth0 配置IP 然后重启systemctl restart networkvirt-clone --original centos7.8 --name centos7.8-2 --file /home/centos7.8-2virt-clone --original Cent7.6 --name Cent7.6-6 --file /home/Cent7.6-6一般就10秒内搞定,10-60秒内While循环,可以替代简单的脚本操作注意这个是没有次数的,会一直操作,要手动停止while [ 1 ]; do ifconfig enox down;sleep 1;ifconfig enox up;sleep 10;donepkt_length取1460netperf -H <Server IP> -t UDP_STREAM -l 300 -- -m pkt_length -M pkt_length (-s 4096000)修改MTU为9000ifconfig ethx mtu 9000pkt_length取8960netperf -H <Server IP> -t UDP_STREAM -l 300 -- -m pkt_length -M pkt_length (-s 4096000)https://zhuanlan.zhihu.com/p/652297549https://zhuanlan.zhihu.com/p/640784575SFP 最大2.5GSFP+ 最大10GSFP28 最大25GSFP56 最大53GQSFP+ 最大40GQSFP28 最大100GQSFP系列封装四通道小型可热插拔(Quad Small Form-Factor Pluggable)SFP是SMALL FORM PLUGGABLE(小型可插拔)的缩写IP_FORWARDhttps://blog.csdn.net/dillanzhou/article/details/127218408linux服务器经常被用来提供防火墙、路由器、NAT等功能,在这些场景下,linux内核需要将网卡上收到的报文转发给其他网络设备。linux内核提供了ip_forward参数用于开关内核的报文转发功能,只有这个开关被打开时,内核才会执行报文的转发。网上能找到不少文章介绍ip_forward参数的基本用途和配置方式,但没有什么文章具体介绍这个参数配置后具体会对内核的网络行为产生哪些影响,以及在内核中是如何实现的。而这些问题的答案对转发功能的使用方式会产生很大的影响。本文将详细分析ip_forward参数的配置方式和影响,以及这个参数在内核中的实现逻辑。分析基于5.9.11版本的内核ip_forward功能的配置开关有三个位置:1. /proc/sys/net/ipv4/ip_forward2. /proc/sys/net/ipv4/conf/{all/default/devname}/forwarding3. /proc/sys/net/ipv6/conf/{all/default/devname}/forwarding其中第一个配置是许多文章中提到的ip报文转发开关,这个配置开关是linux早期版本中定义的,它只能控制IPv4报文的转发功能,其功能和取值都等价于/proc/sys/net/ipv4/conf/all/forwarding。此外,实际上真正决定报文能否被转发的,是conf/devname/forwarding,这个配置在每个网卡设备的粒度控制这个网卡上收到的ipv4/ipv6报文能否被转发总结本文详细分析了linux内核中常用的网络配置项ip_forward的用法、作用和实现。最后看一下相关问题是否已经被解答:1、ip_forward配置在什么位置配置?能按什么粒度配置?ip_forward相关配置在ipv4和ipv6的sysctl配置中有独立的配置项,按网络设备粒度配置生效。真正起影响的配置项为forwarding。2、ip_forward打开或关闭会对内核的网络处理流程产生哪些影响?ip_forward配置开关会对内核网络处理的多处逻辑产生影响,其中最重要的影响是决定目的地址不是本地设备的报文能否被转发。具体影响的逻辑参见上文。3、ip_forward配置除了影响转发功能外,是否还会对其他网络配置或功能产生副作用?除了影响内核转发功能开关,ip_forward的开关还会影响accept_redirects功能和LRO功能的开关,需要注意对相关功能和网络性能的影响。此外,ipv6的forwarding开关还会影响accept_ra的功能。4、ip_forward的配置开关在内核中是如何实现的?每个sysctl配置项都有对应的处理函数,由sysctl文件系统的read/write实现函数来调用。ip_forward的处理函数为devinet_sysctl_forward,这个函数主要通过读写设备的forwarding配置项来使配置生效sysctlsysctl命令 被用于在内核运行时动态地修改内核的运行参数,可用的内核参数在目录/proc/sys中。它包含一些TCP/ip堆栈和虚拟内存系统的高级选项, 这可以让有经验的管理员提高引人注目的系统性能。用sysctl可以读取设置超过五百个系统变量-n:打印值时不打印关键字;-e:忽略未知关键字错误;-N:仅打印名称;-w:当改变sysctl设置时使用此项;-p:从配置文件“/etc/sysctl.conf”加载内核参数设置;-a:打印当前所有可用的内核参数变量和值;-A:以表格方式打印当前所有可用的内核参数变量和值。https://blog.csdn.net/whatday/article/details/106003836出于安全考虑,Linux系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将数据包发往本机另一块网卡,该网卡根据路由表继续发送数据包。这通常是路由器所要实现的功能。要让Linux系统具有路由转发功能,需要配置一个Linux的内核参数net.ipv4.ip_forward。这个参数指定了Linux系统当前对路由转发功能的支持情况;其值为0时表示禁止进行IP转发;如果是1,则说明IP转发功能已经打开。使用 sysctl 指令配置sysctl 命令的 -w 参数可以实时修改Linux的内核参数,并生效。所以使用如下命令可以开发Linux的路由转发功能。sysctl -w net.ipv4.ip_forward=1内核参数在Linux文件系统中的映射出的文件:/proc/sys/net/ipv4/ip_forward中记录了Linux系统当前对路由转发功能的支持情况。文件中的值为0,说明禁止进行IP转发;如果是1,则说明IP转发功能已经打开。可使用vi编辑器修改文件的内容,也可以使用如下指令修改文件内容:echo 1 > /proc/sys/net/ipv4/ip_forwardIptableshttps://blog.csdn.net/wangquan1992/article/details/100534543iptables的前身叫ipfirewall (内核1.x时代),这是一个作者从freeBSD上移植过来的,能够工作在内核当中的,对数据包进行检测的一款简易访问控制工具。但是ipfirewall工作功能极其有限(它需要将所有的规则都放进内核当中,这样规则才能够运行起来,而放进内核,这个做法一般是极其困难的)。当内核发展到2.x系列的时候,软件更名为ipchains,它可以定义多条规则,将他们串起来,共同发挥作用,而现在,它叫做iptables,可以将规则组成一个列表,实现绝对详细的访问控制功能。他们都是工作在用户空间中,定义规则的工具,本身并不算是防火墙。它们定义的规则,可以让在内核空间当中的netfilter来读取,并且实现让防火墙工作。而放入内核的地方必须要是特定的位置,必须是tcp/ip的协议栈经过的地方。而这个tcp/ip协议栈必须经过的地方,可以实现读取规则的地方就叫做 netfilter.(网络过滤器)-F: FLASH,清空规则链的(注意每个链的管理权限)iptables -t nat -F PREROUTINGiptables -t nat -F 清空nat表的所有链-t nat:显示所有的关卡的信息-P :设置默认策略的(设定默认门是关着的还是开着的)默认策略一般只有两种iptables -P INPUT (DROP|ACCEPT) 默认是关的/默认是开的规则管理命令-A:追加,在当前链的最后新增一个规则-I num : 插入,把当前规则插入为第几条。-I 3 :插入为第三条-R num:Replays替换/修改第几条规则格式:iptables -R 3 …………-D num:删除,明确指定删除第几条规则查看管理命令 “-L”附加子命令-n:以数字的方式显示ip,它会将ip直接显示出来,如果不加-n,则会将ip反向解析成主机名。-v:显示详细信息-vv-vvv :越多越详细-x:在计数器上显示精确值,不做单位换算--line-numbers : 显示规则的行号-t nat:显示所有的关卡的信息详解匹配标准5.1、通用匹配:源地址目标地址的匹配-s:指定作为源地址匹配,这里不能指定主机名称,必须是IPIP | IP/MASK | 0.0.0.0/0.0.0.0而且地址可以取反,加一个“!”表示除了哪个IP之外-d:表示匹配目标地址-p:用于匹配协议的(这里的协议通常有3种,TCP/UDP/ICMP)-i eth0:从这块网卡流入的数据流入一般用在INPUT和PREROUTING上-o eth0:从这块网卡流出的数据流出一般在OUTPUT和POSTROUTING上
network网卡常用命令介绍cat /sys/class/net/enox驱动升级方法http://t.zoukankan.com/zhangmingda-p-14363854.html解压后进到目录 ./mlnxofedinstall 假如说安装失败,--force后面加个这个强制安装--nodeps–add-kernel-supFW升级方法https://www.cnblogs.com/seaBiscuit0922/p/9294541.htmlflint -d /dev/mst/mt*** -i *.bin burn先打mst startflint -d /dev/mst/mt4117_pciconf0 -i fw-ConnectX4Lx-rel-14_23_1000-MCX4121A-ACA_Ax-UEFI 14.16.15-FlexBoot-3.5.504.bin burnCd /etc/sysconfig/network-scriptscat /proc/net/bonding/bond0Service network restart 重启网络 可以解决直连但是灯不亮,无速率,删除bond/etc/init.d/network restart networkingsystemctl stop NetworkManager cent/rhel的网络管理 重启网络chkconfig NetworkManager off 开机启动或关闭egrep -c '(vmx|svm)' /proc/cpuinfo //输出结果大于0即代表支持虚拟化tcpdump -e -i enox ip src host 10.10.10.20 and dst net 10.10.10.10tcpdump -i enox|grep -i "ICMP echo request" 查看mtu,字节长度吧ethtool -S enox |egrep -i "dropped|error" 查看丢包ifconfig ethX 抓软件层面丢包误码 ethtool -S ethX 抓硬件层面丢包误码ping xxxx.xxxx.xxxx.xxxx -s 10000cd /etc/netplanvi 01-netcfg.yaml ubuntu专用修改ip方法rpm -qa|grep kernel 查询rpm已安装的包lsmod|grep -I xxx 查询某个模块是否被加载rmmod xxx 卸载某个模块insmod xxx 加载某个驱动?modprobe -r driver_name 卸载驱动modprobe driver_name 加载驱动./mlnxofedinstall --add-kernel-support --distro rhel7.6alternate ARM BCLINUX7.6用 x86的redhat7.6的mellanox安装包./mlnxofedinstall --distro rhel7.6alternate --skip-distro-check --add-kernel-support 安装方法2MAC单播 原本MAC组播 AABB任意单播 0000广播 六组全FFmlxconfig -d /dev/mst/mt*_pciconf* s SRIOV_EN=1 NUM_OF_VFS=127 查询能创建多少个VF把echo 127 > /sys/class/infiniband/mlx5_0/device/mlx5_num_vfs使能VFsecho 6 > /sys/class/net/enp3s0f0/device/sriov_numvfsifconfig enp6s0 inet6 add fe80::2218:8ff:febc:1941/96ifconfig enp6s0 del fe80::2218:8ff:febc:1941/64ping6 -I ethx ipv6_addressethtool -S enox | egrep -i 'drop|error'ethtool -s enox speed 1000 duplex full autoneg off 会导致与交换机自协商不了灯不亮ethtool -s enox autoneg on./configure -build=armdmesg|egrep -i "error|fail|warn|wrong|bug|respond|pending|call trace"Kill -9 xxxx 杀掉某一线程Pkill -9 netperf 可以杀掉所有netperf进程ip link show enox|grep -i link-state 主机上使用,查看VF口状态吧ip link set enox vf 0 state enable 打开vf口吧echo 8 > /sys/class/net/enox/device/sriov_numvfsethtool -G enox rx 8192 ethtool -g enox 修改rx和tx为最大ethtool -L enox combined 8 修改combind为8ifconfig enox mtu 9000 最大有9978,9702(SP332),9414(SF400HT)ping -c 1000 -f -s 2048 [Server IP] mtu不能为9000,要改为1500generic-receive-offload GRO 一般收到卸载ethtool -K enox gro onethtool -K enox gro offethtool -k enox|grep genlarge-receive-offload LRO 大获得卸载ethtool -K enox lro onethtool -K enox lro offethtool -k enox|grep lartcp-segmentation-offload TSO tcp分段卸载ethtool -K enox tso onethtool -K enox tso offethtool -k enox|grep tcpethtool -k enox|grep genethtool -k enox|grep larethtool -k enox|grep tcpethtool -k enoxethtool -K enox tx onnetperf -H 10.10.10.20 -l 120 -- -m 65150 -M 65150 发送端tcpdump -i enox -nn src net 10.10.10.10 -c 500 接收端netperf -H <Server IP> -t UDP_STREAM -l 300 -- -m pkt_length -M pkt_length (-s 4096000)互信ssh-keygen -R xx.xx.xxx.xx 报错,更新密钥就可以ssh-keygen -t rsa 互信scp .ssh/id_rsa.pub root@10.10.10.20:/root/.ssh/authorized_keysssh 10.10.10.20sh_dispatch_run_fatal: Connection to 10.10.10.20 port 22: message authentication code incorrectlost connectionacket_write_wait: Connection to 10.10.10.10 port 22: Broken pipessh xx@xx.xx.xx.xx NCSI时systemctl restart sshd.service 重启ssh服务,2条都是把service sshd restartvi /etc/ssh/sshd_config文件配置,是否可以密码认证 更改PasswordAuthentication yes然后重启sshd服务 这个是解决只能用公私钥登录的modprobe 8021qip link add link enox name enox.100 type vlan id 100ip addr add 192.168.100.50/24 dev enox.100ip link set enox.100 upifconfig enox.100ip link delete eth0.1 type vlan 删除vlanip link add link bond0 name bond0.1107 type vlan id 1107ip addr add 192.168.100.50/24 dev bond0.1107ip link set bond0.1107 upethtool -S enox | grep -I rx | grep -I packetsrpmbuild -tb i40e-2.15.9.tar.gz 驱动升级方法,先编译rpm -e xxx 卸载需要卸载的东西ip addr add xx.xx.xx.110/23 dev enp125s0f0 添加OA网IP和掩码route add default gw xx.xx.xx.1 添加OA网关,这个应该是全部网口while [ 1 ]; do esxcli network nic down -n vmnic5;sleep 1; esxcli network nic up -n vmnic5;sleep 10;doneNCSI不成功排查思路关闭业务口,port口改为自动获取并开启网口防火墙?ifconfig查看网卡数量,使能后,可以用ifconfig|grep -I eth|wc -lSFP是机架的KR是刀片和异构的WOL Wake On Lan 网络唤醒 通过ethtool xxx,查到wake on : d d为不支持,g为支持ethtool -m ens1f0 查询线缆信息虚拟机添加使能网口后进不去 报错不支持 vi /etc/default/grubintel_iommu=on iommu=pt #x86iommu.passthrough=1 #armꟊgrub2-mkconfig -o /boot/efi/EFI/系统/grub.cfgLspciLspci 显示所有的pci设备信息lspci -v/-vv/-vvv:显示详细的pci设备信息,v越多,越详细,当然,上限3个。Lspci -s(bdf) -vvv 显示网卡详细信息Vmware ESXIvi /etc/ssh/sshd_config 文件配置,是否可以密码认证 更改PasswordAuthentication yes然后重启sshd服务 这个是解决只能用公私钥 publick key登录的无需其他操作即可Alt+f1 进入终端 Alt+f2 退出命令行Ping不通,可以把网口开关都开关一下vmware -vvmware -lesxcli system version getesxcli software vib list,查看已安装的驱动列表驱动安装方法:esxcli software vib install -v /vib20/ixgben/INT_bootbank_ixgben_1.9.12.0-1OEM.700.1.0.15843807.vibesxcli software vib install -v /vmfs/volumes/datastore1/vib20/nmlx5-core/MEL_bootbank_nmlx5-core_4.21.71.101-1OEM.702.0.0.17630552.vibesxcli software vib install -v /vmfs/volumes/datastore1/vib20/nmlx5-rdma/MEL_bootbank_nmlx5-rdma_4.21.71.101-1OEM.702.0.0.17630552.vib-d 升级zip包固件安装方法:Intel按照官方文档来进FusionServer Tools-FwUpgrade-V102执行install.sh升级固件Esxcli network firewall get 查看防火墙状态Esxcli network firewall set –enabled false 设置防火墙为falsedmesg|egrep -i "error|fail|warn|wrong|bug|respond|pending|call trace"esxcli software vib remove -n ixgben 如果错误可以卸载esxcli network nic list 列出当前ESXi主机上所有NICs的状态esxcli network nic get -n vmnic4 查看网卡驱动版本及固件版本vim-cmd hostsvc/maintenance_mode_enter 进入维护模式esxcli network nic stats get -n vmnic4 查看是否丢包lspci | grep 'Network controller' 查看一下 Intel Corporation 10-Gigabit 网卡驱动是否能被正确识别出来esxcli network nic down -n vmnic4 down掉网口esxcli network nic set -S=1000 -n=vmnic4 -D=full 设置速率1000m,全双工esxcli network nic set -n=vmnic4 -a 设置网卡自适应esxcli system settings advanced set -o /Net/UseHwTSO -i 0 关闭TSOesxcli system settings advanced list -o /Net/UseHwTSO 查询是否成功esxtopesxcli software vib list 查看驱动安装情况esxcli system settings advanced set -o /Net/Vmxnet3HwLRO -i 0 关闭虚拟网卡驱动模块LROesxcli system settings advanced list -o /Net/Vmxnet3HwLRO 查询是否成功esxcli system settings advanced set -o /Net/TcpipDefLROEnabled -i 0 在主机上关闭LROesxcli system settings advanced list -o /Net/TcpipDefLROEnabled 查询是否成功esxcli network nic up -n vmnic4esxcli network nic down -n vmnic4 down掉网卡端口esxcfg-module -u ixgben 卸载网卡驱动esxcli software vib remove -n ixgben 卸载网卡驱动esxcfg-module -s VMDQ=2 ixgben 加载网卡驱动vmkload_mod nmlx5_core 加载迈络斯网卡驱动进入维护模式:vim-cmd hostsvc/maintenance_mode_enter退出维护模式:vim-cmd hostsvc/maintenance_mode_exit暂定于用nic2去冲包,nic3来downwhile [ 1 ]; do esxcli network nic down -n vmnic3;sleep 1; esxcli network nic up -n vmnic3;sleep 10;doneesxcli hardware memory get 查询内存dmesg|grep -i msiesxcfg-nics -l 查看ESXI上网口的信息、端口、速率、型号、Mac地址等信息lspci | grep 'Network controller' 查看该网卡是否被识别esxcli hardware memory get 查询内存大小esxcli system module parameters set -m ixgben -p max_vfs=63,63 使能vi /etc/ssh/sshd_config文件配置,是否可以密码认证 更改PasswordAuthentication yes然后重启sshd服务 这个是解决只能用公私钥 publick key登录的无需重启ssh服务,无需重启服务器,直接可以用关于卡连接交换机后一直Down,无法up先设置速率为正常速率/自协商速率,然后设置自协商,就可以了esxcli network nic set -S=25000 -n=vmnic3 -D=fullesxcli network nic set -n=vmnic3 -a网口使能网页使能和命令使能是两码事,不要混用,用命令就一直用命令,用网页就一直用网页否则就会导致命令无作用,只能靠网页esxcli network nic listesxcli system module parameters set -m nmlx5_core -p max_vfs=1,1建议这条命令打完后,不要立马重启,而是等待10多秒在重启1、在TC端开启server端,启动命令为:iperf –s –p 5001/ iperf –s –p 5002;发起测试命令taskset –c X iperf -c xxx.xxx.xxx.xxx -i 3 -t 60 -P 10 -p 5003/ taskset –c X iperf -c xxx.xxx.xxx.xxx -i 3 -t 60 -P 10 -p 5004在SUT端开启server端,启动命令为:iperf –s –p 5003/ iperf –s –p 5004;发起测试命令taskset –c X iperf -c xxx.xxx.xxx.xxx -i 3 -t 60 -P 10 -p 5001/ taskset –c X iperf -c xxx.xxx.xxx.xxx -i 3 -t 60 -P 10 -p 5002Citrix必装XencenterCitrixHypervisor-8.2.0-XenCenter.msi 在安装包目录下安装后可以图形化管理网口,虚拟机Exit可以退出进入系统主页使能Temphttps://blog.csdn.net/xnf1991/article/details/50063769注意intel_iommu=on iommu=pt 不敲也可以6.进入 XS 控制台, 查看此虚拟机的 PCI 映射情况:xe vm-list uuid=UUID号 params=other-configxe vm-list uuid=889f57ba-2e5c-6687-bd66-108065b01c6c params=other-configecho 32 > /sys/class/net/eth2/device/sriov_numvfs如果想清除 VM 对应的映射关系可使用此命令进行清除:xe vm-param-clear param-name=other-config uuid=xxxxxxxxxx 关闭虚拟机,然后再开机.Ifconfig查看网口数量ifconfig -a |egrep -v 'lo|br|bond|vnet|vtap'|grep mtu |wc -l调优systemctl status firewalldsystemctl status irqbalance关闭smmu虚拟机的话记得加内存和CPU, 虚拟机最大只能加255G内存1 开启lro ethtool -K enox lro on2 修改combind为16 ethtool -L enox combined 16 186.195一改就死机3 修改rx和tx为最大 ethtool -G enox rx 8192 ethtool -g enox4 修改MTU为9000 ifconfig enox mtu 9978 能否更高99785 绑核systemctl stop firewalldsystemctl stop irqbalanceethtool -K enox lro onethtool -K enp1s0f1 lro onethtool -L enox combined 16ethtool -L enp1s0f1 combined 16ethtool -G enox rx 8192ethtool -G enp1s0f1 rx 8192ethtool -G enox tx 8192ethtool -G enp1s0f1 tx 8192ifconfig enox mtu 9978ifconfig enp1s0f1 mtu 9978ethtool -K bond0 lro onethtool -L bond0 combined 16ethtool -G bond0 rx 8192ethtool -G bond0 tx 8192ifconfig bond0 mtu 9978线的接口不一样,100G的IB卡线很粗,25G的线只有单根光模块和线,应该56G是双根光纤线mlxfwreset -d/dev/mst/mt4117_pciconf0 reset 强刷固件,刷到想到的固件版本关于link detected:no, 敲命令opensmFC网卡:一般也叫光纤网卡,学名Fibre Channel HBA。传输协议为光纤通道协议,一般通过光纤线缆与光纤通道交换机连接。接口类型分为光口和电口。光口一般都是通过光纤线缆来进行数据传输,接口模块一般为SFP(传输率可达8Gb/s)和GBIC(1Gb/s),对应的接口为SC和LC。电口的接口类型一般为DB9针或HSSDC以太网卡:学名Ethernet Adapter,传输协议为IP协议,一般通过光纤线缆或双绞线与以太网交换机连接。接口类型分为光口和电口。光口一般都是通过光纤线缆来进行数据传输,接口模块一般为SFP(传输率2Gb/s)和GBIC(1Gb/s),对应的接口为SC、ST和LC。电口目前常用接口类型为RJ45,用来与双绞线连接,也有与同轴电缆连接的接口,不过现在已经用的比较少了Infinite band InfiniBand直译为“无限带宽”技术,缩写为IB)是一个用于高性能计算的计算机网络通信标准,它具有极高的吞吐量和极低的延迟,用于计算机与计算机之间的数据互连。InfiniBand也用作服务器与存储系统之间的直接或交换互连,以及存储系统之间的互连HBA(Host Bus Adapter) 卡是将主机接入FC网络必不可少的设备, 主机总线适配器是网络与交换,是能插入计算机或大型主机的板卡关于芯片厂商和网卡厂商高速线缆(Direct Attach Cable)简称DAC,一般译为直接连接电缆或直连铜缆。是指在高速跳线的两端都装上光模块,通过将交换机连接到路由器或服务器上,广泛应用于存储区域网络、数据中心和高性能计算机连接,在网络通信中正逐渐崛起。查询资料得知,高速线缆DAC的有优势如下:1、高性能:适用于数据中心的短距离布线,使用范围广,集成方案交换能力强。2、节能环保:高速线缆内部材质是铜芯,铜缆的自然散热效果好,节能环保。3、低功耗:高速线缆功耗低。由于无源电缆不需要电源,耗电量几乎为0;有源电缆耗电量一般在440mW左右。绑定网卡冗余/绑定 务必要用交换机,出现down不切换的话 机x条DAC,机1条DACNmtui绑定时,网口1和2会变为1个mac地址 是用service network restart 和active和重启 后出现Mac地址变为一样,是正常现象,因为可以正常做和正常主备建议用1根黄色和蓝色DAC线去插在卡上面Cent 网口开关灰色动不了不显示速率可以打开开关怀疑是网线问题,普通的橙色25G线缆2端插在同一个网卡,可以正常使用,但是插在两张网卡会不通换了25G线秒好驱动升级方法解压后进到目录 ./mlnxofedinstall 假如说安装失败,--force后面加个这个强制安装--nodeps要先升级驱动,才能升级固件,但是一般驱动升级后,固件会更新的,一般也会同步升级也可以 –add-kernel-sup固件升级方法flint -d /dev/mst/mt*** -i *.bin burn先打mst startMst status可以查看mst的状况,flint -d /dev/mst/mt4117_pciconf0 -i fw-ConnectX4Lx-rel-14_23_1000-MCX4121A-ACA_Ax-UEFI 14.16.15-FlexBoot-3.5.504.bin burnburn不要忘了正常安装并搭建本地源出现,yum install redhat-rpm-config kernel-devel-4.19.25-200.el7.bclinux.aarch64 安装不上在bc7.6的镜像文件packages文件夹可以找到对应软件却装不上rpm -qa|grep kernel 查询确实没装上yum install kernel-bek-devel-4.19.25-200.el7.bclinux.aarch64 通过手动安装,可以安装上,看着不太一样,应该都一样通过进入packages文件,强制rpm安装 redhat-rpm-config ,安装成功,不强制安装会报错 已安装rpm -ivh redhat-rpm-config-9.1.0-87.el7.centos.noarch.rpm --nodeps –force./mlnxofedinstall --distro rhel7.6alternate --skip-distro-check --add-kernel-support 安装方法1./mlnxofedinstall --add-kernel-support --distro rhel7.6alternate 安装方法2./mlnxofedinstall --distro openeuler20.03 --without-fw-updaterhel7.6+rhel7.6mellanox一直催你注册,vim /etc/yum/pluginconf.d/subscription-manager.conf 里面改为0https://blog.csdn.net/oraoharu/article/details/106808108 这是rhel7.6的 yum install tcl gcc-gfortran tkIntel安装驱动注意:挂本地源yum install kernel*,不然会报错 kernel-devel 这个也可以试试common.mk:82: *** Kernel header files not in any of the expected locations.common.mk:83: *** Install the appropriate kernel development package, e.g.common.mk:84: *** kernel-devel, for building kernel modules and try again. Stop.方法:Tar zxvf i40e-2.15.9.tar.gzCd i40e-2.15.9/srcMakeMake installreboot假如说要卸载驱动,进入src文件夹,make uninstall 执行后,重启就好了方法2:编译安装rpmbuild -tb i40e-xxx.tar.gz 生成rpm驱动文件,在反馈中找到生成的驱动路径rpm –ivh xxx.rpm 安装驱动卸载驱动再加载驱动一次,查看驱动是否更改为目标版本固件可以用https://support.huawei.com/enterprise/zh/doc/EDOC1100240022/58f3b1f7就是服务器挂载FusionServer Tools-FwUpgrade-V104.iso,然后通过DVD启动,进入迷你linux说是用eeupdate64e去做升级固件动作 先用./eeupdate64 去确定nic是几,如果有多个,默认用第一个./eeupdate64e /nic=x /D xxxx.bin虚拟机驱动I40e的网卡,要装iavfiavf-4.1.1.tar.gz挂本地源yum install kernel*,不然会报错 kernel-devel 这个也可以试试目前X86 sles15.2 26-2大包是成功装过的,刚开始报错3行 后面挂本地源安装kernel-devel就可以X86 cent8.3 26-2大包 kernel*和kernel-devel都不行编译内核模块时出现:cc1: error: code model kernel does not support PIC mode删除该模块目录下的 .cache.mk 文件就好了,重新 make 即可安装kernel-devel和kernel*都不行,可以试试安装Libelf-dev,libelf-devel,elfutils-libelf-devel有可能是 kernel-devel没有安装rpm -qa kernel-devel kernel-headers如果没有找到,那就先安装yum install kernel-devel kernel-headers如果已经安装了,还出现以上错误,是因为在Makefile文件中,它连接的目录为/usr/src/linux但是系统里面并没有这个目录,这个时候可以使用以下命令:cd /usr/srcln -s /kernels/2.6.32-4xx.11.2.el6.x86_64/ linux创建一个软链接。再执行:make最后成功编译!IB报错mst start/etc/init.d/opensmd start/etc/init.d/openibd start ibstatlspci |grep -i mell./mlnxofedinstall --add-kernel-supportIbstat 可以查看linkup和stateOpensm 打开物理状态Openibd 无效Mst start 启动mst服务Mst status 查看mst服务状态Modinfo mlx5_core 查询驱动信息吧ls /sys/class/infiniband/mlx5_0/device/sriov查看使能胡网口数量,注意假如使能127,那就只有127个,是从0开始X8的Riser卡会限制网卡速率,限制X16的到X8关于互信,一定要线操作机,确定可以免密后操作机,不然同时操作2台,会不成功还有ssh 192.168.30.xx ,没有root@ssh-keygen -t rsascp .ssh/id_rsa.pub root@192.168.30.40:/root/.ssh/authorized_keys端口resetBase lib + Number of portsBase lib 为65535的话,是不对的,要去opensmmst start# 查看网卡模块型号ibv_devinfo | grep vendor_part_id# 如vendor_part_id: 4115# 查看当前端口等信息mlxconfig -d /dev/mst/mt4115_pciconf0 q | grep LINK_TYPE_# LINK_TYPE_P1 1# 1是指ib模式,2是指eth模式#设置成eth模式,也就是2mlxconfig -d /dev/mst/mt4115_pciconf0 set LINK_TYPE_P1=2 LINK_TYPE_P2=2# 完成之后重启ibdev2netdev# 可以看到具体的端口状态 en开头是eth的意思,ib模式是ib开头的,名称(用来设置ip)#mlx5_0 port 1 ==> ens5f0 (Down)#mlx5_1 port 1 ==> ens5f1 (Down)#也可以用ibv_devinfo来查看端口类型link_layer:Ethernet 则为成功关于执行重启网络命令报错解决方法第四步:重启网络服务,正常情况下只有bond0网卡设备有IP地址等信息。systemctl stop NetworkManagersystemctl start NetworkManager实测,以上两句输入后可以解决systemctl disable NetworkManagersystemctl restart network这里需要先关闭NetworkManager,再重启network,否则会报下图中错误重启网络服务命令:service network restart(centos8以上服务改为NetworkManager,命令参考 systemctl restart NetworkManager)VF直通cd /sys/class/infiniband/mlx5_0/device/sriov/ 只输一次echo Follow > /sys/class/infiniband/mlx5_0/device/sriov/0/policy 每次都输啊,不然一直downecho 11:11:11:11:22:22:22:11 > /sys/class/infiniband/mlx5_0/device/sriov/0/nodeecho 11:11:11:11:22:22:22:12 > /sys/class/infiniband/mlx5_0/device/sriov/0/portecho 0000:c3:00.1 > /sys/bus/pci/drivers/mlx5_core/unbindecho 0000:c3:00.1 > /sys/bus/pci/drivers/mlx5_core/bindcat /sys/class/infiniband/mlx5_0/device/sriov/0/nodecat /sys/class/infiniband/mlx5_0/device/sriov/0/portNetperf -H 10.10.10.20 -t UDP_STREAM -l 600报错send_omni:send_data failed:No route to host,但是TCP就不会报错BIOS可以设置使能口数量Network device list-----选中使能网口进去------Device level Configration-----设置数量虚拟机添加使能网口后进不去 报错不支持 vi /etc/default/grubintel_iommu=on iommu=pt #x86iommu.passthrough=1 #armꟊgrub2-mkconfig -o /boot/efi/EFI/系统/grub.cfgMellanoxz 查看使能数量1. 先切到linux OS并安装Mallenox驱动(随便那个版本,不是inbox即可)2. 开启mst服务,命令:mst start3.可以看到那个MST device ,即:/dev/mst/mt4115_pciconf04.通过命令查看SR-IOV是否开启:mlxconfig -d /dev/mst/mt41139pciconf0 q|grep -i "SR"(过滤字符自己酌情修改) 5.通过命令修改SR-IOV数并开启SR-IOV命令:mlxconfig -d /dev/mst/mt41139pciconf0 set SRIOV_EN=1 NUM_OF_VFS=4(数量请根据实际情况填写)查看可以使能的网口数量cat /sys/class/net/eth4/device/sriov_totalvfsPxe Vlan安全模式会导致进不了PXE!!!!!!!!!!!!!!!!!!!!!!!!要选最新系统,否则没有网卡驱动报错超时CentOS搭建本地源[base-local]name=isobaseurl=file:///mntgpgcheck=0enabled=1vim /etc/modprobe.d/bond.confalias bond0 bondingoptions bond0 miimon=100 mode=6pingcat /etc/sysconfig/network-scripts/ifcfg-ethxifconfig ethx xx.xx.xx.xx/16 up 这条命令并不会在network-scripts文件内生成配置文件以下为手写网口配置文件配置IP等DEVICE=ethxBOOTPROTO=noneHWADDR=0:0C::29:8E:E4:BCONBOOT=yesTYPE=EthernetNETMASK=255.255.0.0IPADDR=192.168.1.33USERCTL=yesIPV6INIT=noGATEWAY=192.168.1.3设置好后使用:service network restart使网络设置生效。注意:若ONBOOT设置为no,会导致service network restart启动错误service network restart或/etc/init.d/network restart以下为备注DEVICE=ethx 设备/网口名称BOOTPROTO=noneHWADDR=0:0C::29:8E:E4:BC 设备/网口MAC地址ONBOOT=yes 开机自动启动TYPE=Ethernet 设备/网口的类型为以太网NETMASK=255.255.0.0 子网掩码IPADDR=192.168.1.33 IP地址USERCTL=yesIPV6INIT=noGATEWAY=192.168.1.3 默认网关ifcfg-ech0文件中的内容包含以下信息1. DEVICE: 网络接口名称2. TYPE: 配置文件接口类型(Ethernet以太网)3. UUID: 随机生成唯一标识符4. ONBOOT: 是否在开机的时候启动网络连接(yes/no)5. BOOTPROTO: 系统启动地址协议(也就是ip的生成方式,如果不想ip地址发生修改要使用static选项)6. HWADDR: MAC地址7. PEERDNS 是否允许DHCP获得的DNS覆盖本地的DNS8. DEFROUTE 是否选择该接口为默认路由(yes/no)9. PEERROUTES10. IPV4_FAILURE_FATAL 如果ipv4配置失败禁用设备11. IPV6INIT 是否启用ip6接口12. NAME 网络连接名字https://blog.csdn.net/qq_43386754/article/details/85xx6051https://www.cnblogs.com/adforce/p/3363681.htmlhttps://blog.csdn.net/weixin_30999777/article/details/1165750502.5 卸载驱动1显示已安装的驱动:[root@SW ~]# lsmod | grepngbengbe 208399 02卸载驱动: r mmod ngbe[root@SW ~]# rmmod ngbe3) 再次查看已安装的驱动,已经没有 ngbe 驱动。[root@SW ~]# lsmod | grep ngbe使用 ethtool f 命令升级网卡固件1) 将待升级固件文件上传到操作系统对应目录 centos 为: :/usr/lib/firmware/ 、Ubuntu 为: :/lib/firmware/ 、 SUSE 为: :/lib/ 。2) 执行 ethtool -f 命令升级固件: ethtool -f [ 网口名称 ] 固件名称PS:其中 enP2p233s0f0 为网口名称,每张网卡只需选取其中任意一个网口进行操作即可; SF200T_10015.arm64.img 为步骤 1 中上传的固件文件名称。3) 步骤 2 命令执行完成后,重启系统使固件生效。4) 执行 ethtool i 网口名称 检查固件版本是否升级成功。(非必要步骤)GRO LRO TSO MTU9000接受数据包不正常具体为length小于mtu值解决方法就是多接收几次,并且用下面这个命令接收tcpdump -ni ens1f0 src host 50.50.50.20 -v -c 10 |grep -i length组播,单播,广播单播(unicast): 是指封包在计算机网络的传输中,目的地址为单一目标的一种传输方式。它是现今网络应用最为广泛,通常所使用的网络协议或服务大多采用单播传输,例如一切基于TCP的协议。组播(multicast): 也叫多播, 多点广播或群播。 指把信息同时传递给一组目的地址。它使用策略是最高效的,因为消息在每条网络链路上只需传递一次,而且只有在链路分叉的时候,消息才会被复制。广播(broadcast):是指封包在计算机网络中传输时,目的地址为网络中所有设备的一种传输方式。实际上,这里所说的“所有设备”也是限定在一个范围之中,称为“广播域”。当unicast/multicast bit 位置1时就是 multicast,mac 地址为0x FFFFFFFFFFFF时就是broadcast.1、单播 MAC 地址是指第一个字节的最低位是 0 的 MAC 地址;2、组播 MAC 地址是指第一个字节的最低位是 1 的 MAC 地址;3、广播 MAC 地址是指每个比特都是 1 的 MAC 地址。广播 MAC 地址是组播 MAC 地址的一个特例。后面为前两位转换为二进制的第8位为 1 还是 0 来区分 单播和组播要求广播 ff ff ff ff ff ff/1111 1111 xxxxx组播 ab bb cc dd ee ff/1010 1011/满足组播要求网口MAC单播非网口MAC单播/任意单播 00 00 00 00 00 00/满足单播要求虚拟机克隆virsh list –all 查看已经安装的虚拟机virt-clone --original centos7.8 --name centos7.8-2 --file /home/centos7.8-2--original //后面跟要克隆的虚拟机名字--name //克隆后虚拟机的名字--file //指定存放的路径克隆完成后 用virsh list --all 查看并启动virsh start sunhao-3 --console进入到sunhao-3虚拟机后查看IP也克隆了这时需要进入/etc/sysconfig/network-scripts/ 编辑配置文件vim ifcfg-eth0 配置IP 然后重启systemctl restart networkvirt-clone --original centos7.8 --name centos7.8-2 --file /home/centos7.8-2virt-clone --original Cent7.6 --name Cent7.6-6 --file /home/Cent7.6-6一般就10秒内搞定,10-60秒内While循环,可以替代简单的脚本操作注意这个是没有次数的,会一直操作,要手动停止while [ 1 ]; do ifconfig enox down;sleep 1;ifconfig enox up;sleep 10;donepkt_length取1460netperf -H <Server IP> -t UDP_STREAM -l 300 -- -m pkt_length -M pkt_length (-s 4096000)修改MTU为9000ifconfig ethx mtu 9000pkt_length取8960netperf -H <Server IP> -t UDP_STREAM -l 300 -- -m pkt_length -M pkt_length (-s 4096000)https://zhuanlan.zhihu.com/p/652297549https://zhuanlan.zhihu.com/p/640784575SFP 最大2.5GSFP+ 最大10GSFP28 最大25GSFP56 最大53GQSFP+ 最大40GQSFP28 最大100GQSFP系列封装四通道小型可热插拔(Quad Small Form-Factor Pluggable)SFP是SMALL FORM PLUGGABLE(小型可插拔)的缩写IP_FORWARDhttps://blog.csdn.net/dillanzhou/article/details/127218408linux服务器经常被用来提供防火墙、路由器、NAT等功能,在这些场景下,linux内核需要将网卡上收到的报文转发给其他网络设备。linux内核提供了ip_forward参数用于开关内核的报文转发功能,只有这个开关被打开时,内核才会执行报文的转发。网上能找到不少文章介绍ip_forward参数的基本用途和配置方式,但没有什么文章具体介绍这个参数配置后具体会对内核的网络行为产生哪些影响,以及在内核中是如何实现的。而这些问题的答案对转发功能的使用方式会产生很大的影响。本文将详细分析ip_forward参数的配置方式和影响,以及这个参数在内核中的实现逻辑。分析基于5.9.11版本的内核ip_forward功能的配置开关有三个位置:1. /proc/sys/net/ipv4/ip_forward2. /proc/sys/net/ipv4/conf/{all/default/devname}/forwarding3. /proc/sys/net/ipv6/conf/{all/default/devname}/forwarding其中第一个配置是许多文章中提到的ip报文转发开关,这个配置开关是linux早期版本中定义的,它只能控制IPv4报文的转发功能,其功能和取值都等价于/proc/sys/net/ipv4/conf/all/forwarding。此外,实际上真正决定报文能否被转发的,是conf/devname/forwarding,这个配置在每个网卡设备的粒度控制这个网卡上收到的ipv4/ipv6报文能否被转发总结本文详细分析了linux内核中常用的网络配置项ip_forward的用法、作用和实现。最后看一下相关问题是否已经被解答:1、ip_forward配置在什么位置配置?能按什么粒度配置?ip_forward相关配置在ipv4和ipv6的sysctl配置中有独立的配置项,按网络设备粒度配置生效。真正起影响的配置项为forwarding。2、ip_forward打开或关闭会对内核的网络处理流程产生哪些影响?ip_forward配置开关会对内核网络处理的多处逻辑产生影响,其中最重要的影响是决定目的地址不是本地设备的报文能否被转发。具体影响的逻辑参见上文。3、ip_forward配置除了影响转发功能外,是否还会对其他网络配置或功能产生副作用?除了影响内核转发功能开关,ip_forward的开关还会影响accept_redirects功能和LRO功能的开关,需要注意对相关功能和网络性能的影响。此外,ipv6的forwarding开关还会影响accept_ra的功能。4、ip_forward的配置开关在内核中是如何实现的?每个sysctl配置项都有对应的处理函数,由sysctl文件系统的read/write实现函数来调用。ip_forward的处理函数为devinet_sysctl_forward,这个函数主要通过读写设备的forwarding配置项来使配置生效sysctlsysctl命令 被用于在内核运行时动态地修改内核的运行参数,可用的内核参数在目录/proc/sys中。它包含一些TCP/ip堆栈和虚拟内存系统的高级选项, 这可以让有经验的管理员提高引人注目的系统性能。用sysctl可以读取设置超过五百个系统变量-n:打印值时不打印关键字;-e:忽略未知关键字错误;-N:仅打印名称;-w:当改变sysctl设置时使用此项;-p:从配置文件“/etc/sysctl.conf”加载内核参数设置;-a:打印当前所有可用的内核参数变量和值;-A:以表格方式打印当前所有可用的内核参数变量和值。https://blog.csdn.net/whatday/article/details/106003836出于安全考虑,Linux系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将数据包发往本机另一块网卡,该网卡根据路由表继续发送数据包。这通常是路由器所要实现的功能。要让Linux系统具有路由转发功能,需要配置一个Linux的内核参数net.ipv4.ip_forward。这个参数指定了Linux系统当前对路由转发功能的支持情况;其值为0时表示禁止进行IP转发;如果是1,则说明IP转发功能已经打开。使用 sysctl 指令配置sysctl 命令的 -w 参数可以实时修改Linux的内核参数,并生效。所以使用如下命令可以开发Linux的路由转发功能。sysctl -w net.ipv4.ip_forward=1内核参数在Linux文件系统中的映射出的文件:/proc/sys/net/ipv4/ip_forward中记录了Linux系统当前对路由转发功能的支持情况。文件中的值为0,说明禁止进行IP转发;如果是1,则说明IP转发功能已经打开。可使用vi编辑器修改文件的内容,也可以使用如下指令修改文件内容:echo 1 > /proc/sys/net/ipv4/ip_forwardIptableshttps://blog.csdn.net/wangquan1992/article/details/100534543iptables的前身叫ipfirewall (内核1.x时代),这是一个作者从freeBSD上移植过来的,能够工作在内核当中的,对数据包进行检测的一款简易访问控制工具。但是ipfirewall工作功能极其有限(它需要将所有的规则都放进内核当中,这样规则才能够运行起来,而放进内核,这个做法一般是极其困难的)。当内核发展到2.x系列的时候,软件更名为ipchains,它可以定义多条规则,将他们串起来,共同发挥作用,而现在,它叫做iptables,可以将规则组成一个列表,实现绝对详细的访问控制功能。他们都是工作在用户空间中,定义规则的工具,本身并不算是防火墙。它们定义的规则,可以让在内核空间当中的netfilter来读取,并且实现让防火墙工作。而放入内核的地方必须要是特定的位置,必须是tcp/ip的协议栈经过的地方。而这个tcp/ip协议栈必须经过的地方,可以实现读取规则的地方就叫做 netfilter.(网络过滤器)-F: FLASH,清空规则链的(注意每个链的管理权限)iptables -t nat -F PREROUTINGiptables -t nat -F 清空nat表的所有链-t nat:显示所有的关卡的信息-P :设置默认策略的(设定默认门是关着的还是开着的)默认策略一般只有两种iptables -P INPUT (DROP|ACCEPT) 默认是关的/默认是开的规则管理命令-A:追加,在当前链的最后新增一个规则-I num : 插入,把当前规则插入为第几条。-I 3 :插入为第三条-R num:Replays替换/修改第几条规则格式:iptables -R 3 …………-D num:删除,明确指定删除第几条规则查看管理命令 “-L”附加子命令-n:以数字的方式显示ip,它会将ip直接显示出来,如果不加-n,则会将ip反向解析成主机名。-v:显示详细信息-vv-vvv :越多越详细-x:在计数器上显示精确值,不做单位换算--line-numbers : 显示规则的行号-t nat:显示所有的关卡的信息详解匹配标准5.1、通用匹配:源地址目标地址的匹配-s:指定作为源地址匹配,这里不能指定主机名称,必须是IPIP | IP/MASK | 0.0.0.0/0.0.0.0而且地址可以取反,加一个“!”表示除了哪个IP之外-d:表示匹配目标地址-p:用于匹配协议的(这里的协议通常有3种,TCP/UDP/ICMP)-i eth0:从这块网卡流入的数据流入一般用在INPUT和PREROUTING上-o eth0:从这块网卡流出的数据流出一般在OUTPUT和POSTROUTING上