1. 程式人生 > >DNS原理

DNS原理

ima 服務器慢 不存在 hostname 均衡 三種 tracer 獲取 詳細

1、dns命令基礎及通過命令理解dns原理

DNS域名解析查詢:

dig www.xxx.com

nslookup

host

ping

鏈接:https://blog.csdn.net/a583929112/article/details/66499771

2、網卡知識-dns配置-生效

網卡配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0 第一塊網卡邏輯設備名,第二塊為eth1,有些系統也會以em等字符標識

HWADDR 以太網硬件地址即MAC地址,如果是vmware克隆的虛擬機無法啟動網卡可以毫不猶豫的刪除此項

TYPE=Ethernet 上網類型,目前基本都是以太網

UUID 通用唯一識別碼,如果是vmware克隆的虛擬機無法啟動網卡可以去除此項

ONBOOT=no 這個地方要為yes,才能保證下次開機啟動激活網卡設備

NM CONTROLLED=yes 是否通過 NetworkManager 管理網卡設備

BOOTPROTO=none 啟動協議,獲取配置方式,有none|bootp|dhcp三個選項

IPADDR 局域網linux服務器的固定IP

NETMASK 子網掩碼,用來規劃網絡位和主機位,一般為255.255.255.0

DNS2=8.8.8.8 第二個DNS,這裏默認會覆蓋以及優先於 /etc/resolv.conf 的配置生效

GATEWAY 局域網上網網關地址

DNS1=202.106.0.20 主DNS,這裏默認會覆蓋以及優先於 /etc/resolv.conf 的配置生效

IPV6INIT=no 是否支持IPV6

setup-network config 就是網卡配置文件

網卡生效:

推薦:ifdown,ifup

ifdown eth0 停掉eth0網卡

ifup eth0 啟動eth0網卡

針對所有網卡:

/etc/init.d/network restart 針對所有網卡的

註意:

1.網卡如果配置DNS,會優先於/etc/resolv.conf的配置,並且重啟網卡,會把 /etc/resolv.conf裏的覆蓋

2.網絡如果沒有配置DNS,那麽在/etc/resolv.conf裏配置會生效,如果有多塊網卡(DHCP獲取方式)時候,可能會覆蓋/etc/resolv.conf裏已有的配置

3、主機名更改

1.hostname

2.vi /etc/sysconfig/network

3.vi /etc/hosts

如果用setup->dns設置修改主機名,永久生效(但命令行不生效)

影響/etc/sysconfig/network和/etc/hosts配置文件

4、已知端口查進程名的多種方法

已知一個端口為333,如何查看端口對應的是什麽服務名?

方法1:lsof -i:52113

方法2:netstat -lntup | grep 52113

5、網絡及服務故障排查思路及命令

1.ping icmp協議

2.traceroute www.baidu.com -n(-n表示不解析)

3.telnet www.qq.com 80 檢查服務器WEB有沒有開啟,服務開沒開,以及防火墻有沒有擋住

namp ip地址 -p 80

nc

不通:

1)80服務沒開或端口不存在

2)fw防火請阻擋了

3)服務監聽的端口不在連接的IP上

4)運營商默認不開,申請開端口

4.win:跟蹤路由

tracert -d www.baidu.com

6、抓包工具:

tcpdump 命令

tcpdump -n icmp -i eth0

namp

win:wireshark

例題:作為企業網管,局域網的某個機器無法上網,請給出詳細排錯思路?

以 win32 客戶端為例:

(一)單個機器無法上網,別人可以

1.ping www.baidu.com

如果通,但還不能上網:可能是瀏覽器、中毒等問題

2.ping 網關,目的是排除物理鏈路(網線,網卡,驅動,IP設置等)

如果 ping 網關不通,則查看 ip 設置,然後 ping自身 ip 或 ping 網內其它機器 ip

如果 ping 自己 ip 不通:檢查 ip 設置、網卡驅動、物理鏈路

如果 ping 網內其它機器 ip 是通的,網關不讓你聯網了

3.ping 網關通的情況下,檢查 DNS 的設置情況是否正確

1)檢查方法是,ping 公網 ip,看通暢情況(平時要記幾個外部 ip)ping 203.81.19.1

2)host/dig/nslookup 檢查域名解析

4.上網路由器問題(配置和硬件)以及 ISP 線路問題

登錄路由,檢查上級線路,打電話給 ISP 技術

5.輔助排查:其他人能否上網,ip 地址沖突,ARP病毒,核心交換機壞了,交換機環路(看日誌)

(二)大面積上不了網:

路由器,ISP,核心交換機,ARP 病毒欺騙網關,網關地址被占用,LDNS 出問題

核心交換機壞了,交換機環路

例題:作為 linux 運維,客戶反映打開你部署的網站服務器慢,請給出詳細排錯思路?

(一)用戶個例,還是全部

自己把自己當做用戶去測試,如果沒問題,就從客戶的角度去思考

(1)路是否通的問題

1.ping www.baidu.com 高速路有沒有修好

如果 ping 是通的,不丟包。http服務的問題(服務宕機了,服務過載了)

如果 ping 是通的,丟包。機房帶寬不穩定。各個線路不穩定。

如果 ping 不通,ping www.baidu.com,機房宕了,或者 http 服務的問題(服務宕機了,服務過載了)

2.tracert -d www.baidu.com 高速的各個路段有沒有修好。從客戶端到服務器之間各個線路。讓機房配合查。

(2)機房業務是否OK

3.telnet ip地址 80端口 檢查服務器WEB服務有沒有開啟以及防火請有沒有擋住

nmap ip地址 -p 80

4.提供服務的服務器是否資源過載,服務器及服務連接數過多,負載高,CPU高,IO高等

(3)外部問題

5.服務器購買的帶寬滿了,通過流量監控服務查看

6.內鏈外鏈(調用外部網站網址有問題)

必不可少的重要調試網站前端的工具

根據網站URL調試網站

1、google瀏覽器直接F12

2、火狐 firebug,yslow

3、le httpwatch

(4)其它問題

個別客戶自身問題,例如:用戶的線路和運營商線路不符

(5)集群架構(數百臺服務器服務)

1、web 服務問題

2、數據庫問題,登錄數據庫,看是否有慢查詢語句 show proceslist,調整 MySQL 配置,優化SQL語句

3、存儲等的問題,是不是存儲服務器,如 NFS,MFS 的負載及磁盤 IO 過高?

例題選集:

1、查看當前系統每 IP 連接數

解答:netstat -an | grep "ESTABLISHED" | awk ‘ {print$4} ‘ | awk -F: ‘ {print$1} ‘ | sort -n | uniq -c

2、請列出以下服務使用的端口

http,https,ftp,telnet,ssh,rsync,dns,mysql

解答:grep -Ew " ^(http|https|ftp|telnet|ssh|rsync|dns|mysql) " /etc/services

awk --posix ‘ $1~ /^ (http|https|ftp|telnet|ssh|rsync|dns|mysql)$ / {print$0} ‘ /etc/services

3、請列出 linux 下系統常用的幾種文件系統格式,並比較各自特點

解答:uname -r ->查詢系統內核版本名

find / -type d -name "內核版本名" ->查詢到內核版本所在路徑

ls /lib/modules/2.6.32-573.el6.x86_64/kernel/fs/

4、在 linux 下給 INTEL 82571 網卡的第一個口配置 IP,網關和增加路由,請寫出命令行的具體步驟:

IP 10.10.10.10/255.255.255.0 網關 10.10.10.1 需要增加路由:到網段 192.168.0.0/255.255.255.0 通過 ip 10.10.10.2 出去

解答:ifconfig eth0 10.10.10.10/24

route add default gw 10.10.10.1 / route -n

route add -net 192.168.0.0/24 gw 10.10.10.2 / route -n

5、請詳細描述 DNS 解析過程,以請求 www.baidu.com 為例

6、請描述 TCP 四次斷連過程

解答:通過命令 "tcpdump port 22 -Stn -c 3" 分析

7、如何對主機做雙網卡綁定?如何對交換機做端口綁定?

8、對於網絡丟包問題你會怎麽去排查?(物理鏈路如網線破損;帶寬占用等)

9、如何查看主機的路由規劃、開放端口、tcp鏈接狀態?(route -n / netstat -rn / netstat -ntl)

10、簡述 raid0 raid1 raid5 三種模式的

RAID0:

工作原理

磁盤數量->1塊到多塊

組合後的容量->組合內所有硬盤容量之和

讀寫的性能->讀寫性能都是組合內所有硬盤的讀寫性能之和

是否具有冗余性->沒有冗余性

適用場景->負載均衡集群中的從節點

RAID1

磁盤數量->2塊

組合後的數量->單盤容量

讀寫性能->讀性能幾乎是兩塊硬盤的讀性能之和,寫性能幾乎為單盤寫性能

是否具有冗余性->具有冗余性,同時可以壞一塊硬盤

適用場景->系統盤

RAID5

硬盤數量->3塊以上

組合後的容量->組合內所有硬盤之和減去單盤容量

讀寫性能->讀性能幾乎是組合內所有硬盤的讀性能之和減去單盤讀性能;寫入性能為單盤的寫性能

是否具備冗余性->具備,同時最多可以壞一塊硬盤

適用場景->幾乎適用於所有非數據庫和存儲的服務器

RAID10

磁盤數量->4塊,或者以上的偶數盤

組合後的容量->組合內所有硬盤容量之和的50%

讀寫性能->讀性能幾乎是組合內所有硬盤的讀性能之和,寫入性能幾乎是組合內所用硬盤寫入性能的50%

適用場景->數據庫主節點、存儲服務器主節點

是否具備冗余性->具備;同時可以壞一半的硬盤

11、寫出 172.16.0.10/25 和 10.10.1.2/23 的掩碼地址、廣播地址和反掩碼

12、你使用過和聽說過的幾種監控軟件嗎?說說其特點

cacti:監控網絡流量和繪圖功能比較優秀

nagios:監控服務器的負載和服務狀態比較有優勢

zabbix:綜合以上兩種

13、如何查看 www.abc.com 的解析 IP 地址及其所使用的權威 DNS

14、簡要敘述下列端口所運行的服務

21、22、23、25、110、143、873、3306

21 20:ftp

22:ssh

23:telnet

25:smtp

110:pop3 995

143:imap4 993

873:rsync

3306:mysql

15、簡述 TCP 三次握手的過程

1.在最開始,客戶端和服務器都處於 CLOSE 狀態

2.服務器會創建 socket 開始監聽,服務器狀態 LISTEN

3.客戶端向服務器發送 SYN,請求建立連接,發完之後自己的狀態變為 SYN_CENT

4.服務器收到客戶端發來的 SYN,然後會回復 ACK 和 SYN,發完之後自己的狀態變為 SYN_RECV RCVD

5.客戶端收到服務器發來的 SYN 和 ACK 之後會馬上回復 ACK,回復完之後狀態變為 ESTABLISHED

6.服務器端收到客戶端發來的 ACK 之後會直接進入 ESTABLISHED

至此,三次握手完成,連接建立

16、tcpdump 怎麽抓出 ip 是10.10.0.10 tcp 80 端口的包

tcpdump host 10.10.0.10 and port 80

DNS原理