1 DNS解析原理
DNS详细解析过程
要访问www.qq.com,具体的解析过程:
1、DNS客户端检查自己的hosts文件及本地DNS缓存,没有找到对应的记录
2、DNS客户端联系自己本地的DNS服务器,查询域名www.qq.com
3、本地Nserver02检查自己的权威区域和本地缓存,没有找到对应值,联系根提示中的某个根域服务器,查询域名www.qq.com
4、根域服务器也不知道对应值,于是就向Nserver02返回一个参考答复,告诉其.com顶级域的权威DNS服务器
5、Nserver02联系.com顶级域的权威DNS服务器,查询域名www.qq.com
6、.com顶级域服务器也不知道www.qq.com的对应值,于是就向NServer02返回一个参考答复,告诉它qq.com域的权威DNS服务器的地址
7、Nserver02联系qq.com域的权威DNS服务器,查询域名www.qq.com
8、qq.com域的权威DNS服务器知道对应值,并且返回给NServer02
9、Nserver02向原DNS客户端返回www.qq.com的地址,此时解析完成
10、DNS客户端根据获得的地址访问www.qq.com
域名解析命令工具
dig , nslookup ,host , ping
dig @8.8.8.8 www.baidu.com +trace 百度域名解析过程
[root@localhost ~]# nslookup
> localhost.me
Server: 192.168.163.2
Address: 192.168.163.2#53
Non-authoritative answer:
Name: localhost.me
Address: 213.186.33.169
[root@localhost ~]# host www.baidu.com
www.baidu.com has address 180.97.33.107
www.baidu.com has address 180.97.33.108
www.baidu.com is an alias for www.a.shifen.com.
www.baidu.com is an alias for www.a.shifen.com.
ping www.baidu.com
DNS配置注意事项
1、网卡如果配置DNS,会优先于/etc/resolv.conf的配置,并且重启网卡,会把/etc/resolv.conf里的覆盖掉
2、网卡如果没有配置DNS,那么在/etc/resolv.conf里配置会生效,如果有多块网卡(DHCP获取方式)的时候,可能会覆盖/etc/resolv.conf里的配置
修改主机名的规范步骤
1、hostname wangxin 临时生效
2、vi /etc/sysconfig/network 永久生效
3、vi /etc.hosts 本地回环IP对应的修改
如果用setup===>DNS设置修改主机名,永久生效(但命令行不生效)
影响/etc/sysconfig/networ和/etc/hosts 不影响hostname命令
C7 hostnamectl /etc/hostname
2 配置默认网关及路由
配置默认网关
第一生效文件 /etc/sysconfig/network-scripts/ifcfg-eth0
第二生效文件 /etc/sysconfig/network
第三:命令行优先,但是临时生效
route -n netstat –rn ip route list
[root@localhost ~]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.163.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.163.2 0.0.0.0 UG 0 0 0 eth0
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.163.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.163.2 0.0.0.0 UG 0 0 0 eth0
route del default gw x.x.x.x 删除默认网关
route add default gw x.x.x.x 添加默认网关
ifconfig eth0:1 x.x.x.x/24 up 临时IP 网卡重启就没了 写到配置文件[/etc/sysconfig/network-scripts/ifcfg-eth0:1]
ifconfig eth0:2 x.x.x.x/24 up 一个块网卡可以配置多个IP
ifconfig eth0:1 x.x.x.x/24 down 停掉
ip addr add x.x.x.x/24 dev eth1:3 ip addr的方式配置
route命令实战使用指南
考试题一:linux下如何添加路由?
a.如何用命令行方式给linux机器添加一个默认网关,假设网关地址为10.0.0.254?
b. 192.168.1.0网段, 192.168.1.1网关的某一服务器想连入192.168.1.0/24段,该如何添加路由,例如去往172.16.1.0/24的路由
c.如何添加一个主机路由?
请分别解答。
a.缺省网关路由
默认网关就是数据包不匹配任何设定的路由规则,最后流经的地址关口!网关按字面意思就是网络的关口,就相当于我们家里房子的门一样,如果外出就要经过房门,数据包也是一样。
解答实践:
[root@wangxin ~]# route -n #==>查看路由表,netstat -rn也可以。
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 10.0.0.254 0.0.0.0 UG 0 0 0 eth0
#==>这里就是系统的默认网关信息,表示去任何地方(0.0.0.0),都发给10.0.0.254,因为是默认网关,所以,放在了最后一条。路由也是有顺序的,如果不符合任何一条规则就交给默认网关处理。
[root@wangxin ~]# route del default gw 10.0.0.254 #==>这个命令是删除默认的网关。
[root@wangxin ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
[root@wangxin ~]# route add default gw 10.0.0.254 #==>这个命令是添加默认的网关,也是本题的答案。
[root@wangxin ~]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 10.0.0.254 0.0.0.0 UG 0 0 0 eth0 #==>又回来了
[root@wangxin ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 10.0.0.254 0.0.0.0 UG 0 0 0 eth0 #这里就是添加的默认网关记录。
特别强调:实际上route add default gw 10.0.0.254 就相当于route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.0.0.254
b.网络路由:即去往某一网络或网段的路由
一般多网段之间互相通信,希望建立一条优先路由,而不是通过默认网关时就可以配置网络路由。还是拿房子比喻,你现在不是要出门,而是卧室,卫生间,去卧室就要经过卧室的门,去卫生间也要经过卫生间的门,这里的卧室和卫生间的门就可以认为是去往某一网段的路由,而不是默认路由(即房子的门。)
实际工作中会有需求,两个不同的内部网络之间互访,而不是出网访问,就是上面例子的情况。
本题的答案:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
解答实践:
[root@wangxin ~]# route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
SIOCADDRT: 网络不可达 #==>当连不通地址192.168.1.1时,无法添加路由。
[root@wangxin ~]# ifconfig eth0:0 192.168.1.1/24 up #==>添加一个IP别名用于临时测试,如果永久生效最好加双网卡或写入到配置文件。
[root@wangxin ~]# ifconfig eth0:0 #==>查看添加的IP别名(网络里把这种多IP的方式称为子接口)
eth0:0 Link encap:Ethernet HWaddr 00:0C:29:65:A4:FD
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
再来添加去192.168.1.0的数据包,交给192.168.1.1处理。
[root@wangxin ~]# route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
[root@wangxin ~]# netstat -rn #==>和route -n很像。
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.1.0 192.168.1.1 255.255.255.0 UG 0 0 0 eth0 #==>这就是网络路由
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 10.0.0.254 0.0.0.0 UG 0 0 0 eth0
拓展:其他写法
[root@wangxin ~]# route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0 #==>指定设备而不是地址。
[root@wangxin ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.1.0 192.168.1.1 255.255.255.0 UG 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 10.0.0.254 0.0.0.0 UG 0 0 0 eth0
[root@wangxin ~]# route del -net 192.168.1.0/24 dev eth0
[root@wangxin ~]# route add -net 192.168.1.0/24 dev eth0
[root@wangxin ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 10.0.0.254 0.0.0.0 UG 0 0 0 eth0
总结:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
route add -net 192.168.1.0/24 dev eth0
route del -net 192.168.1.0/24 dev eth0
特别强调:以上配置在重启网络时都会失效,那么如何让它永久生效呢?
如果要是永久生效,有如下几种方法:
方法一:
vi /etc/sysconfig/network-scripts/route-eth0 #默认不存在此文件
加入如下内容:
192.168.1.0/24 via 192.168.1.1
提示:写到配置里,重启网络服务和重启系统都会生效!
方法二:
vi /etc/sysconfig/static-routes #默认不存在此文件
加入如下内容:
any net 192.168.1.0/24 gw 192.168.1.1
提示:写到配置里,重启网络服务和重启系统都会生效!
方法三:
vi /etc/rc.local
加入如下内容:
route add -net 192.168.1.0/24 gw 192.168.1.1
PS: 方法一推荐生产环境使用
提示:方法三写到/etc/rc.local里只在开机时加载,当手工重启网络后会失效,但是重启系统后会生效!
如果是配置默认路由网关可以再网卡配置里:
[root@wangxin ~]# grep GATEWAY /etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY=10.0.0.254
解答:route -net 172.16.1.0/24 gw 192.168.1.1
c.主机路由:就是去往某个主机地址如何配置路由
/sbin/route add -host 192.168.2.13 dev eth2
/sbin/route add -host 202.81.11.91 dev lo
例如:keepalived或heartbeat高可用服务器对之间的使用单独网卡接心跳线通信就会用到以上主机路由。
route命令拓展:
删除一条默认路由:
route del default gw 10.0.0.254
删除一条静态路由:
route del –net 目标网络 netmask
如:route del -net 192.168.1.0/24 或route del -net 192.168.1.0 netmask 255.225.255.0
删除一条主机路由:
route del -host 192.168.1.10 dev eth0
3 案例
已知端口为22,查看端口对应的服务
方法1:
[root@localhost ~]# lsof -i :22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1201 root 3u IPv4 12682 0t0 TCP *:ssh (LISTEN)
sshd 1201 root 4u IPv6 12687 0t0 TCP *:ssh (LISTEN)
sshd 6949 root 3r IPv4 46533 0t0 TCP 192.168.163.128:ssh->192.168.163.1:49702 (ESTABLISHED)
[root@localhost ~]# lsof -i tcp:22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1201 root 3u IPv4 12682 0t0 TCP *:ssh (LISTEN)
sshd 1201 root 4u IPv6 12687 0t0 TCP *:ssh (LISTEN)
sshd 6949 root 3r IPv4 46533 0t0 TCP 192.168.163.128:ss
方法2:
[root@localhost ~]# netstat -lntup|grep 22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1201/sshd
tcp 0 0 :::22 :::* LISTEN 1201/sshd
网络及服务故障排查
例:检查百度的网站是否有问题
1、ping www.baidu.com 如果不通 icmp协议 linux是否禁止icmp
2、traceroute www.baidu.com 查看各个路由节点是否有故障
3、telnet www.baidu.com 80
不通:
1、检查网站WEB服务有没有开启
2、防火墙有没有阻止规则
3、服务监听的端口不在链接的IP上
4、ISP运营商默认不开端口,申请开端口
抓包工具:
tcpdump
tcpdump -n icmp -i eth0
网站服务器慢排查
做为linux运维,客户反应打开网站服务器很慢,如何排错。
用户个例,还是全部。如果是全部则如下排查:
1、链路是否正常
自己把自己当作用户去测试,如果没问题,就从客户的角度去思考。如果自己测试同样有问题,按下面思路排查:
1)ping 服务器
如果通的,不丢包。可能是http服务的问题(服务当机了,服务过载了)。
如果通的,有丢包。机房带宽不稳定。线路不稳定。
如果不同,ping baidu通 ,机房当机了,或者http服务的问题(服务当机了,服务过载了)
2)traceroute 检查从客户端到服务器之间的各个线路。
2、机房业务是否OK
telnet 80 检查服务器WEB服务
nmap 网站 -p 80
curl 网站 或wget 网站 ,相当于浏览器访问
提供服务的服务器是否资源过载,服务器及服务连接数过多,负载高,CPU高,IO高等
3、外部问题
网站购买的带宽是不是满了,通过流量监控服务查看
内链外链(调用外部网站网址有问题)
根据网站URL调试网站:google浏览器F12,火狐yslow
4、个别客户自身问题,例如:用户的线路和网站带宽的线路不符
5、集群架构的问题,web服务,数据库,存储等的问题
4 一篇关于linux系统基础网络配置的文章
配置修改主机名hostname
临时方法:
hostname wangxin
退出当前shell重新登陆即可生效。此法只能临时修改生效,重起系统后失效。
永久方法:
法一:
步骤1:
vi /etc/sysconfig/network
将里面的HOSTNAME=XX改成HOSTNAME=wangxin,然后保存。
提示:这里改完后,执行/etc/init.d/network restart或 source /etc/sysconfig/network等做法都不生效,需要重启服务器
步骤2:
然后通过命令行继续修改:hostname wangxin ,完成后退出重新登陆即生效
提示:这样就能保证临时生效,重起系统系统也生效了。
法二:
即时永久都生效的另外改法:执行setup-网络配置
特别说明:使用以上的方法都可能导致/etc/hosts中的127.0.0.1对应的主机名未修改,此时,应该手动修改
提示:如果/etc/hosts不改,以后会遇到一些问题,如sendmail启动缓慢,ldap服务解析缓慢,sudo切用户缓慢等等都是主机名和/etc/hosts中的解析不对应导致的。
网卡配置文件说明
[root@wangxin ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 ==》这里是eth0网卡设备的默认配置文件
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0 ================》这里是网卡名称第一块网卡为eth0,第二块为eth1...
BOOTPROTO=static============》static为固定IP地址,非动态DHCP获取
BROADCAST=10.0.0.255 =======》这里是广播地址,一般为网络地址的最后一个地址。
HWADDR=00:0C:29:0E:5F:63 ===》这里mac地址,不同的机器不能重复,尤其是在刻隆虚拟机或复制网卡配置时要注意。
IPADDR=10.0.0.161 ==========》这里是IP地址
NETMASK=255.255.255.0=======》子网掩码/24
NETWORK=10.0.0.0 =========》网段设置
ONBOOT=yes =================》开机网卡自启动
GATEWAY=10.0.0.254==========》网关的配置,也可以命令行通过route添加删除。
TYPE=Ethernet===============》类型
配置修改IP地址及DNS
配置服务器IP及DNS等网络配置的方法:
1)setup-网络配置,然后修改。
2)直接编辑或手写上面配置文件。
/etc/sysconfig/network-scripts/ifcfg-eth0 ===============》网卡配置
/etc/resolv.conf===============》DNS client的配置
提示:以上两个方法一般需要重起或者重新加载/etc/init.d/network restart 或/etc/init.d/network reload才能生效。
配置修改网关gw
法一:修改/etc/sysconfig/network
[root@wangxin network-scripts]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=wangxin
GATEWAY=10.0.0.254 ====》这个就是网关的配置
提示;需要执行/etc/init.d/network reload 即可生效。
法二:修改/etc/sysconfig/network-scripts/ifcfg-eth0
[root@wangxin network-scripts]# cat ifcfg-eth0
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=static
BROADCAST=10.0.0.255
HWADDR=00:0C:29:0E:5F:63
IPADDR=10.0.0.161
NETMASK=255.255.255.0
NETWORK=10.0.0.0
ONBOOT=yes
GATEWAY=10.0.0.254====》这个就是增加网关的配置,默认没有
提示;需要执行/etc/init.d/network restart 或reload 即可生效。
特别注意:
1)/etc/sysconfig/network-scripts/ifcfg-eth0中的网关配置优先于/etc/init.d/network
2)注意配置的大小写,gATEWAY=10.0.0.254这样的小写格式就不对。
法三:通过命令修改默认网关:
[root@wangxin network-scripts]# route del default gw 10.0.0.254 ==》首先删除之
[root@wangxin network-scripts]# route -n ==》查看命令
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
[root@wangxin network-scripts]# route add default gw 10.0.0.254 ==》添加默认网关
[root@wangxin network-scripts]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 10.0.0.254 0.0.0.0 UG 0 0 0 eth0
注意:此修改为临时修改,重新加载或启动网卡后就会失效,解决方法就是尽量在配置文件里配置,实在有需求就把route add default gw 10.0.0.254放到rc.local
修改主机DNS配置
法一:setup--网络配置图形操作
法二:修改/etc/resolv.conf ==》这里主机DNS配置文件的路径
[root@wangxin network-scripts]# cat /etc/resolv.conf
nameserver 202.106.0.20
nameserver 8.8.8.8
nameserver 211.147.6.3
提示:每个配置一行这个resolv.conf修改后直接生效,注意,不是nameservers
查看ip、网关或路由、DNS配置
a.查看ip配置方法
[root@wangxin ~]# ifconfig ==》直接命令名表示显示所有网卡IP
b.查看网关和路由方法
[root@wangxin network-scripts]# route -n
[root@wangxin ~]# netstat -rn
c.查看DNS配置方法
[root@wangxin ~]# cat /etc/resolv.conf ==》这是常见的检查方法
[root@wangxin ~]# nslookup
win和linux服务器无法连接网络的排查
a.物理链路是否通畅
b.本机IP,路由,DNS的设置情况是否达标。
c.测试到网关或路由器的通畅情况。
d.测试ping公网ip的通常情况(平时要记几个外部IP)
e.测试DNS的通畅,可以ping etiantian.org看是否出对应IP。