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。