arping

Linux bridge hairpin mode

血红的双手。 提交于 2020-11-21 00:36:17
hairpin中文翻译为发卡。bridge不允许包从收到包的端口发出,比如bridge从一个端口收到一个广播报文后,会将其广播到所有其他端口。bridge的某个端口打开hairpin mode后允许从这个端口收到的包仍然从这个端口发出。这个特性用于NAT场景下,比如docker的nat网络,一个容器访问其自身映射到主机的端口时,包到达bridge设备后走到ip协议栈,经过iptables规则的dnat转换后发现又需要从bridge的收包端口发出,需要开启端口的hairpin mode。See https://wiki.mikrotik.com/wiki/Hairpin_NAT 我们在使用Kubernetes的时候遇到了一个大流量的问题,集群计算节点偶然流量突增,机器ping不通。 网络运营的同事反馈说从交换机上发现这些服务器组播包很多 对其进行了抓包分析和系统各模块梳理排查,但是只能截取到VRRP组播报文。 分析不出来,限流组播报文! ebtables -A INPUT --pkttype-type multicast --limit 1000/s -j ACCEPT, ebtables -A INPUT --pkttype-type multicast -j DROP 发现Ebtables drop规则计数偶现增长 => 写脚本抓取计数增长时刻的报文并告警 => 禁止IPv6

redis主从+哨兵sentinel+VIP高可用结构

守給你的承諾、 提交于 2020-08-20 08:56:11
前言 哨兵sentinel是redis自带的高可用程序,可以发现并自动切换主从状态的redis服务配置,而且哨兵sentinel还可以支持管理多套redis主从. 而应用可以通过类似jedis的驱动直接连接哨兵,来实现高可用.jedis会在哨兵sentinel里发现真实的主库地址,然后让程序连上真实主库地址操作. 不过这个架构有三个问题,第一,应用程序的配置要实现这个功能的话就要从连接真实IP的redis改成连接哨兵.第二,如果哨兵挂了,应用会报错而无法切换(3.2还会出现).第三,如果一套哨兵管理多套redis主从,并不是很好管理. 解决的方法有两个,一个是在哨兵前面加类似nginx的负载均衡来控制jedis访问哨兵地址,另一个就是在redis主从上加入高可用vip的操作来代替jedis直连哨兵,因为哨兵sentinel支持切换发生时接入脚本操作. 这篇文章说的就是加入高可用vip方式. 哨兵sentinel通信原理 在讲主题之前,我想想讲一下哨兵sentinel的原理. 通讯原理: 当一个完全没接入哨兵sentinel的redis主从里,第一个哨兵sentinel主动和redis主库通信,询问有没有其他的redis从库和哨兵sentinel连接信息.如果没有,这个哨兵sentinel就创建配置,等待同步其他哨兵信息. 然后,第二个哨兵连进redis主库

centos7 pgpool+postgresql

我与影子孤独终老i 提交于 2020-04-21 07:51:58
安装postgresql CentOS7安装并配置PostgreSQL 安装pgpool rpm -ivh http: // www.pgpool.net/yum/rpms/3.7/redhat/rhel-7-x86_64/pgpool-II-release-3.7-1.noarch.rpm yum -y install pgpool-II- pg95 yum -y install pgpool-II-pg95- debuginfo yum -y install pgpool-II-pg95- devel yum -y install pgpool-II-pg95- extensions 开机启动 systemctl enable pgpool   添加Pgpool-II运行用户 [root@im110 pgpool- II]# useradd pgpool [root@im110 pgpool - II]# passwd pgpool Changing password for user pgpool. New password: Retype new password: passwd: all authentication tokens updated successfully. [root@im110 pgpool -II]# chown -R pgpool.pgpool

arping详解

邮差的信 提交于 2020-02-28 21:13:21
arping干嘛用的?   arping主要干的活就是查看ip的MAC地址及IP占用的问题。 参数 -0:指定源地址为0.0.0.0,这个一般是在我们刚刚安装好系统,电脑还没配置好IP的时候 -a:Audible ping.这个当有reply回来的时候,你的电脑有喇叭的话,就会滴滴的叫 -A:Only count addresses matching requested address -b:类似-0,指定源broadcast为255.255.255.255 -B:指定这个就相当于 arping 255.255.255.255 -c count :发送指定数量的arp包后,即停止退出 -d :这个比较重要,当局域网有IP占用的时候,可以指定这个参数,当有相同的IP的不同MAC地址reply的时候,arping会退出,退出码为1 -D:这个检测是否丢包的,当丢包的时候打印感叹号,正常的时候打印逗号 -e:和-a相反,当没有reply的时候,会滴滴滴 -p:打开混杂模式,当前用户对mac无权限时,可以加上这个选 -r :输出的时候只打印MAC,写脚本的时候用得到,不用自己对结果awk了 -R :输出的时候只打印IP,和上面一样 -s MAC:指定源MAC地址 -S IP:指定源IP,设置了源IP,如果目标主机没有到源IP的route,则有可能收不到answer -t MAC

ssh: connect to host XXX.XXX.X.XX port 22: Connection refused

大憨熊 提交于 2020-01-06 23:09:08
如果你搜索了好一段时间都没有办法解决这个问题,那么这个解决方案可能是你需要的。 提前说明这个答案也是我从网上找的,但是查了好半天时间,从检查防火墙、测试sshd服务、重启虚拟机等各种尝试无果后,突然找到了一个方法,检测出了我的问题 虚拟机IP冲突 这是原文链接: https://jordanzheng.github.io/how-to-solve-connection-refused-errors-in-ssh-connection/ 以下是转载过来的内容,真的十分感谢原文作者,让我发现了问题所在!!!! —————————————————————————————————— 今天在公司遇到一个奇怪的问题,耗费了大半天才解决。特此总结记录一下解决思路与方法,以便后续能为更快定位类似的问题。 问题现象: 无法登陆公司小网中的一台虚拟机,该虚拟机有两张网卡,分别配有两个网段的IP。其中一个网段的IP可以ping通,但是无法ssh登陆,显示ssh: connect to host 192.171.25.101 port 22: Connection refused,另外一个网段的IP可以ssh登陆。 问题定位过程: 刚开始定位思路是检查ssh服务是否ok?,检查是否打开防火墙?后来转念一想,这台虚拟机都可以通过另外一个网卡IP登陆,说明ssh服务是正常的。后来上网google一下遇到的现象

arping命令解析

我是研究僧i 提交于 2019-12-18 11:01:10
一、介绍 ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在同一以太网中,通过地址解析协议,源主机可以通过目的主机的IP地址获得目的主机的MAC地址。arping程序就是完成上述过程的程序。 arping,用来向局域网内的其它主机发送ARP请求的指令,它可以用来测试局域网内的某个IP是否已被使用。 二、指令格式如下: arping [-AbDfhqUV] [-c count] [-w deadline] [-s source] -I interface destination 三、参数释意: -A:与-U参数类似,但是使用的是ARP REPLY包而非ARP REQUEST包。 -b:发送以太网广播帧,arping在开始时使用广播地址,在收到回复后使用unicast单播地址。 -c:发送指定的count个ARP REQUEST包后停止。如果指定了-w参数,则会等待相同数量的ARP REPLY包,直到超时为止。 -D:重复地址探测模式,用来检测有没有IP地址冲突,如果没有IP冲突则返回0。 -f:收到第一个响应包后退出。 -h:显示帮助页。 -I:用来发送ARP REQUEST包的网络设备的名称。 -q:quite模式,不显示输出。 -U:无理由的(强制的)ARP模式去更新别的主机上的ARP CACHE列表中的本机的信息,不需要响应。 -V

实操 : shell编程实战

℡╲_俬逩灬. 提交于 2019-12-05 21:23:14
前言 mac记录与端口扫描脚本 开发系统监控脚本 一 : 脚本编程步骤分享 1.1 脚本编程步骤 1.2 需求分析 根据系统管理的需求,分析脚本要实现的功能、功能实现的层次、实现的命令与语句等 1.3 命令测试 将要用到的命令逐个进行测试,以决定使用的选项、要设置的变量等 1.4 脚本编程 将测试好的命令写入到脚本文件中,并通过各种语句将命令执行的结果保存、判断或者发出报警等 1.5 调试优化 对脚本进行测试,并根据结果进行优化 建议一遍编程一边调试,以减少错误的发生 二 : mac记录与端口扫描脚本 2.1 企业环境说明 随着业务的不断发展,某公司所使用的Linux服务器也越来越多。在系统管理和维护过程中,经常需要编写一些使用的小脚本,以辅助运维工作,提高工作效率 2.2 需求描述 编写名为system.sh的小脚本,记录局域网中各主机的mac地址,保存到/etc/ethers文件中;若此文件已存在,应先转移进行备份;每行一条记录,第一列为ip地址,第二列为对应的mac地址 检查有哪些主机开启了匿名ftp服务,扫描对象为/etc/ethers文件的所有ip地址,扫描的端口为21 2.3 命令测试 分析:记录局域网中各主机的mac地址,保存到/etc/ethers文件中;若此文件已存在,应先转移进行备份;检查有哪些主机开启了匿名ftp服务,扫描对象为/etc

ping脚本--无网不利

你离开我真会死。 提交于 2019-11-30 18:12:45
一、本文主要涉及的内容 二、预备知识 1、打印网络接口列表 2、提取IP地址的小套路 3、更改网卡的MAC地址 4、高速的ping工具:fping 三、套路连招 1、通过一个for循环和ping列出所有活动的主机 2、通过for循环和arping列出所有活动的主机 3、通过for循环、并行ping列出所有活动的主机 一、本文主要涉及的内容 l 预备知识 l 套路连招 二、预备知识 1、打印网络接口列表 下面这是原始的显示 我们想要的显示效果是这样的,如下所示: eth0 lo 怎么办呢? 我们首先看到,eth0和lo这两串字符都是位于每一行的最开始的位置,大约是前10个字符的位置,所以我们可以使用列切割工具,切割每一行的前10个字符,也就是通过字符切割。我们用cut的时候经常用的是通过定界符切割,其实cut可以通过三种方式对文本进行切割,如下所示: -b, --bytes=LIST #通过字节切 -c, --characters #通过字符切 -d, --delimiter=DELIM #通过定界符切 我们需要的是通过字符切,也就是通过-c选项,切出每一行的前10个字符,效果如下所示: [root@centos6-1 ~]# ifconfig | cut -c -10 eth0 lo 如上所示,切完了之后,出现了一个大量的空行,我们只要把这些空行给压缩一下了不就好了吗