linux dhcp 续租失败,51CTO博客-专业IT技术博客创作平台-技术成就梦想
1.Neutron的问题
openvswitch卡死导致主机所有网络中断
问题:L3 agent down了,所有的网络连接不上,L3所在的物理机点的公网IP地址访问不了
dhcpagent 服务器down了,导致所有的云主机获取不到地址,所有云主机的公网IP访问不到
现象:
网络中断,所有的公网IP地址访问不到
排查过程:
1、查看openvswitch运行状态
2、查看数据流量的流向:
查看所有ovs桥
ovs-vsctl show
查看ovs数据流
ovs-ofctl dump-flows br-int 出现卡住的现象,没有任何相应,
由于ovs-vsctl show是从ovsdb取的数据,其正常显示表示ovsdb-server进程正常运行。ovs-ofctl是与ovs-vswitchd进程通信,命令卡住应该是ovs-vswitchd进程没有响应客户端请求导致。
3、查看日志
vim /var/log/openvswitch/ovsdb-server.log 日志
WARN|unix: send error: Broken pipe
2015-09-07T19:43:59.058Z|00010|reconnect|WARN|unix:connection dropped (Broken pipe) //出现隧道破坏的警告
查看/var/log/openvswitch/ovsdb-server.log
出现类似下面的行
|WARN|Unreasonably long 16518ms pollinterval
表明ovs-vswitchd可能因为某个线程死锁或导致不响应。
4、查看进程卡在那一步:
strace -p pid
pid是指进程的ID 在这里也就是ovs-vswitchd的PID
解决办法:
重启openvswitch服务
使用cron 任务检测
cat /etc/cron.d/monitor_vswitchd
* * * * * root timeout -s SIGKILL 2sovs-ofctl show br-mgmt || (date>>/var/log/mon_openvswitch.log;serviceopenvswitch restart >> /var/log/mon_openvswitch.log 2>&1 )
升级内核
长期来说还是不要用cron来做,而是升级内核比较好。升级到2.6.32-504.16.2.el6.x86_64后问题解决。
Nentron DHCP Agent重启和漂移时,部分虚拟机断网
现象:
DHCP Agent重启或漂移时,部分虚拟机断网
问题原因:
在虚拟交换机比较多时,qdhcp的netns也比较多。漂移或者重启Neutron DHCP agent后,需要重建这些资源,时间会比较长,有时长达3-5分钟。如果在这个周期里正好有虚拟机需要续租,向DHCP服务器发送的请求就没有响应,最后超时续租失败,就算DHCP服务回复后,也不会重新尝试获取IP地址。这时进入虚拟机命令行,ifup一下eth0就好了。
对于CentOS,我们建议修改dhclient的配置文件,调长续租失败时重试的超时时间,以等待DHCP服务器的恢复。
解决方法:
修改配置文件/etc/dhcp/dhclient.conf
timeout 300;
这样CentOS虚拟机续租的请求会持续重试5分钟,以等待DHCP服务恢复。
调整网卡RX ring buffer长度,解决网卡丢包问题
问题:公有云平台:compute1和compute4两台计算节点的存储网络,不能互通。
解决过程:
1.compute1节点ping compute4节点,在compute1和compute4两台节点上使用tcpdump抓包发现,compute4上有ICMP request和ICMP reply。但compute1节点并没有接收到ICMP reply消息,并且有xxxpackets dropped by interface的提示。
2.登录到pica8交换机,检查两台机器的物理连接和链路层连接,正常。
3.查看compute1的物理网卡,发现在RX上有大量的丢包:
[root@compute1 ~]# ifconfig bond2
bond2 Link encap:Ethernet HWaddr00:0A:F7:5D:4A:E2
inet addr:172.16.3.51 Bcast:172.16.3.255 Mask:255.255.255.0
inet6 addr: fe80::20a:f7ff:fe5d:4ae2/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:5974542045 errors:8394 dropped:1892018 overruns:8394frame:0
TX packets:30430136566 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:5387974623010 (4.9 TiB) TX bytes:28489033161925 (25.9 TiB)
4.使用ethtool --show-ring 或者ethtool -g 命令查看bond2上真实物理网卡的RX/TX ringbuffer:
[root@compute1 ~]# ethtool --show-ring p6p2
Ring parameters for p6p2:
Pre-set maximums:
RX: 4078
RX Mini: 0
RX Jumbo: 0
TX: 4078
Current hardware settings:
RX: 453
RX Mini: 0
RX Jumbo: 0
TX: 4078
5.怀疑是网卡上的ring buffer参数设置过小,无法处理从网卡上接受到的以太网数据帧。
6.调整RX ring buffer的大小,通过ethtool--set-ring或者ethtoo -G
root@compute1 ~]# ethtool --set-ring p6p2rx 4078
Cannot set device ring parameters:Input/output error
[root@compute1 ~]# ethtool --show-ring p6p2
Ring parameters for p6p2:
Pre-set maximums:
RX: 4078
RX Mini: 0
RX Jumbo: 0
TX: 4078
Current hardware settings:
RX: 4078
RX Mini: 0
RX Jumbo: 0
TX: 4078
7.这样的修改,在机器reboot会回到原来的配置,建议在写入到/etc/rc.local下
ethtool -G p6p2rx 4078
ethtool -G p7p2rx 4078
现象:网卡驱动缺陷导致offload后ping正常但TCP连接慢或断的问题诊断与解决
常见的原因有:
1.MTU问题
确认物理服务器网卡和上联交换机MTU是否有问题;一般硬件厂商的MTU默认是1500,当然也有例外,像Pica8的SDN交换机,MTU值在小于1512会丢包。
2.物理网卡offload
Fuel部署时,默认开启了物理网卡offload属性。由于开启了offload属性,有可能会出现TCP或者UDP检验和不一致导致的丢包或重传。
解决方法:
TCP校验和会确保整个报文在传输过程中不会发生变化,如果校验和不一致,TCP会丢弃这个报文或者触发超时重传。TCP的校验和是必须的,UDP的校验和是非必须的。此时,建议将rx和tx关闭。
RX Checksum:
在开启此功能后,物理网卡收到一个数据包时,网卡会代替内核协议栈计算传输层校验和,并且只在校验和正确的情况下将数据包交由内核处理,以节约系统CPU资源。
关闭此feature:ethtool -KDEVNAME rx on|off
TX Checksum:
这个是在数据包发送之前,由网卡计算校验和;开启此选项,内核会随机填充TCP或UDP的检验和字段,正确的填充会由物理网卡来完成。
关闭此feature:ethtool -K DEVNAME tx on|off
持久化offload设置
可以编辑/etc/rc.local加入ethtool命令。或者利用CentOS的ifcfg-脚本。譬如要关闭eth0的tx和rx的checksum offload,可以编辑下面的文件/etc/sysconfig/ network-scripts/ ifcfg-eth0加入一行 ETHTOOL_OPTS="-Keth0 rx off;-K eth0 tx off"然后ifup eth0,设置便生效。
如何访问虚拟机的多个IP地址
如果虚拟机只有1块网卡,但网卡上存在多个IP地址,由于neutron Security Group的防arp欺骗功能,导致只能访问一个IP地址。
2种办法可以解决这个问题:
1.通过在虚拟机所在的计算节点上添加iptables规则:
通过neutronport-list命令,找到port的id
在虚拟机所在的计算节点找到neutron-linuxbri-s+port_id前10位的chain,添加以下规则:
iptables -Ineutron-linuxbri-sa18af29b-f -s 10.20.30.194 -m mac --mac-sourcefa:16:3e:d3:b2:90 -j RETURN
-s后面加的是你想访问的ip地址,mac地址为虚拟机网卡的mac。
2.使用neutron port的allow addresspairs属性,本质上也是使用iptables规则:
使用neutornport-update命令,更新虚拟机的port属性:
neutronport-update 08ccf4de-d6e2-4d4d-bcdf-55532e93f32f --allowed-address-pairs type=dict list=trueip_address=10.20.30.194
也可以通过api来设置
最终在计算节点上看iptables规则就是这样子:
# iptables -nvLneutron-linuxbri-sa18af29b-f
Chainneutron-linuxbri-sa18af29b-f (1 references)
pkts bytestarget prot opt in out source destination
3 252 RETURN all-- * * 10.20.30.194 0.0.0.0/0 MAC FA:16:3E:D3:B2:90
10 776 RETURNall -- * * 10.20.30.193 0.0.0.0/0 MAC FA:16:3E:D3:B2:90
758 63672 DROPall -- * * 0.0.0.0/0 0.0.0.0/0
如何测试带宽限速
在控制台页面,总带宽这一项可以看到路由器公网IP对应的总带宽,默认为1Mbps。
通过wget的方式可以测试带宽限速的情况。
1.首先通过dd命令新建一个文件。
如在我们的测试环境上,建一个10G的文件。这里将测试文件放在了http服务器目录下,方便http方式访问。
#dd if=/dev/zeroof=/var/www/html/test.zip bs=1M count=10000
2.在虚拟机上,通过wget命令来获取test.zip这个文件。(路由器的总带宽设置成10Mbps)
可以看到它的速率,大概在1.14M/s左右。
以上测试的只是下行带宽,测试上行带宽的方法大致类似。
1.在虚机里搭一个http服务器。
yum install httpd
2.同样在/var/www/html/目录下使用dd命令建一个文件。
dd if=/dev/zeroof=/var/www/html/test.zip bs=1M count=5000
3.在测试环境上,wget获取此文件。(
linux dhcp 续租失败,51CTO博客-专业IT技术博客创作平台-技术成就梦想相关推荐
- pxe安装linux dhcp失败,51CTO博客-专业IT技术博客创作平台-技术成就梦想
原理有必要说明一下 (百度偷来的) 原理和概念: 1.1 什么是PXE 严格来说,PXE 并不是一种安装方式,而是一种引导的方式.进行 PXE 安装的必要条件是要安装的计算机中包含 ...
- linux+sasl认证失败,51CTO博客-专业IT技术博客创作平台-技术成就梦想
一.为postfix开启基于cyrus-sasl的认证功能. 修改/etc/sysconfig/saslauthd文件中的 MECH=pam 改为 MECH=shadow 启动saslauthd se ...
- linux6.3 dhcp,51CTO博客-专业IT技术博客创作平台-技术成就梦想
昨天下午在新装的Red Hat Enterprise Linux 6.3 虚拟机上搭建了一个DHCP服务,配置文件都完成后,无法启动dhcpd服务.今天在查看dhcp软件包安装的详细信息时才发现问题出 ...
- linux 信号量semget,51CTO博客-专业IT技术博客创作平台-技术成就梦想
semget() 可以使用系统调用semget()创建一个新的信号量集,或者存取一个已经存在的信号量集: 系统调用:semget(); 原型:intsemget(key_t key,int nsems ...
- linux续行符号,51CTO博客-专业IT技术博客创作平台-技术成就梦想
常见的操作系统: centos:企业 Linux-----Community Enterprise Operating System----开源免费 Redhat enterprise Linux(R ...
- linux vbox 不能使用scsi_id 查看uuid,51CTO博客-专业IT技术博客创作平台-技术成就梦想...
今天在搭建RAC的时候,使用udev方式来创建ASM磁盘,执行/sbin/scsi_id命令不知道啥原因,死活获取不到UUID,执行结果啥也不显示. [root@seiang2 ~]# scsi_id ...
- linux主节点启动nfs,51CTO博客-专业IT技术博客创作平台-技术成就梦想
Windows系统之间下以实现文件和目录的共享,那么在linux系统下面是否也可以实现了,我们就测试一下: 在linux下面实现目录共享的软件是nfs 要配置nfs服务首先要配置rsh服务才可以,具体 ...
- linux grep 快速,51CTO博客-专业IT技术博客创作平台-技术成就梦想
什么是grep? grep (global search regular expression(RE) and print out the line,其全称意义为全局搜索正则表达式,并打印出来.是一种 ...
- linux httpd 域名映射,51CTO博客-专业IT技术博客创作平台-技术成就梦想
一.DNS服务器的设置 我们知道互联网网是基于TCP/IP协议的,要进行通信必须获得对方的IP地址,这是通过DNS服务器来实现的.因此要想实现虚拟域名首先应当令DNS 服务器接受该虚拟域名,即把它映射 ...
最新文章
- iso镜像文件烧写到U盘
- 自动化生成 Openstack 新项目开发框架
- 《Groovy官方指南》翻译邀请
- 《系统集成项目管理工程师》必背100个知识点-62采购管理
- android飞翔的小鸟游戏素材包_开心消消乐×愤怒的小鸟:为开心而战
- 用 JavaScript 的方式理解递归
- label y 训练集测试集x_训练集、测试集 train_test_split
- java的泛,java_泛型
- cmd imp导入dmp文件_exp/imp、expdp/impdp使用总结,这些你都清楚吗?
- Python学习之路3 - 字符串操作字典
- Linux驱动总结3- unlocked_ioctl和堵塞(waitqueue)读写函数的实现 【转】
- date比较大小 mybatis_面试官:给我说说你使用Mybatis的过程中遇到过哪些坑?
- 怎么删除远程桌面连接计算机,win10系统强制删除远程桌面连接软件的方法
- mysql取消安全模式
- 当开发人员说不是BUG时如何应对
- 柴静穹顶之下 感想
- 外星人笔记本没有修复计算机,外星人笔记本如何恢复出厂设置
- 2022-11-18 mysql列存储引擎-assert failed on i < m_idx.size() at rc_attr.h:342-问题分析
- 【山东事业单位】公共基础知识——重要国际经济组织
- camel动态设置路由执行