IP地址的類別-按IP地址數值範圍劃分linux
IP地址的類別-按IP地址用途分類web
IP地址的類別-按網絡通訊方式劃分面試
DHCP原理過程詳情: http://www.zyops.com/dhcp-working-procedurewindows
DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)一般被應用在大型的局域網絡環境中,主要做用是集中的管理、分配IP地址,使網絡環境中的主機動態的得到IP地址、網關地址、DNS服務器地址等信息,並可以提高地址的使用率。centos
DHCP服務器提供三種IP分配方式:瀏覽器
l 自動分配(Automatic Allocation)緩存
自動分配是當DHCP客戶端第一次成功地從DHCP服務器端分配到一個IP地址以後,就永遠使用這個地址。服務器
l 動態分配(Dynamic Allocation)網絡
動態分配是當DHCP客戶端第一次從DHCP服務器分配到IP地址後,並不是永久地使用該地址,每次使用完後,DHCP客戶端就得釋放這個IP地址,以給其餘客戶端使用。less
l 手動分配
手動分配是由DHCP服務器管理員專門爲客戶端指定IP地址。
DHCP客戶機在啓動時,會搜尋網絡中是否存在DHCP服務器。若是找到,則給DHCP服務器發送一個請求。DHCP服務器接到請求後,爲DHCP客戶機選擇TCP/IP配置的參數,並把這些參數發送給客戶端。 若是已配置衝突檢測設置,則DHCP服務器在將租約中的地址提供給客戶機以前會使用Ping測試做用域中每一個可用地址的連通性。這可確保提供給客戶的每一個IP地址都沒有被使用手動TCP/IP配置的另外一臺非DHCP計算機使用。
客戶端用戶從web瀏覽器裏輸入網站後看到網站的完整內容的完整訪問過程
01.客戶端用戶在瀏覽器中輸入www.znix.top 網站地址後回車,系統會首先查找本地host文件以及DNS緩存信息查找是否存在www.znix.top 對應的ip解析記錄。若是有就直接獲取ip地址,而後去訪問這個ip地址對應的域名服務器,通常第一次請求時,DNS緩存是沒有解析記錄的。
windows 系統中的dns緩存
#windows 系統查看與刷新緩存記錄信息
ipconfig /flushdns <-- 清除緩存命令
ipconfig /displaydns <-- 顯示緩存命令
#顯示hosts文件域名與地址映射關係配置信息(hosts文件位置)
c:\windows\system32\drivers\etc\hosts
Linux 系統中的dns緩存
#緩存方式
nccd 或者 BIND 或者 dnsmasq
#hosts文件 位置
/etc/hossts
02.若是客戶端本地緩存或hosts 沒有對應的www.znix.top 域名的解析記錄,那麼,系統會把瀏覽器的解析請求交給在客戶端本地設置的DNS服務器地址( 一般稱此DNS爲LDNS,即:localDNS )解析,若是LDNS服務器的本地緩存有對應的解析記錄就會直接返回IP地址,若是沒有,LDNS會負責繼續請求其它的DNS服務器
03.LDNS 會從DNS 系統的(.)根開始請求www.znix.top 域名的解析,通過一系列的查找各個層級的DNS 服務器,最終會查到etiantian .org 域名對應的受權DNS 服務器,而這個受權DNS 服務器正是企業購買域名時用於管理域名解析的服務器,這個服務器會有www.znix.top對應的IP地址解析記錄( A記錄),若是此時沒有,就表示企業的運維人員沒有給www.znix.top 域名作解析。
04.www.znix.top 域名對應的受權DNS 服務器會把www.znix.top 對應的最終IP 解析記錄(例如1.1.1.1)發給LDNS
05.LDNS 把收到的來自受權DNS 服務器www.znix.top 對應的IP 解析記錄發給客戶端瀏覽器,而且在LDNS本地把域名和IP的對應解析緩存起來,以便下一次更快的返回相同解析請求的記錄。
06.客戶端瀏覽器獲取到www.znix.top的對應的IP地址,接下來,瀏覽器會請求得到的IP地址對應的web 服務器,web 服務器收到客戶的請求並響應處理,將客戶請求的內容返回給客戶端瀏覽器,至此,一次訪問瀏覽器網頁的完整過程完成了其中此步驟客戶端獲取到服務器IP地址後,利用瀏覽器請求web服務器獲取網頁信息的過程稱爲HTTP 原理
Ø A記錄:
將域名指向一個IPv4地址(例如:10.10.10.10),須要增長A記錄
Ø CNAME記錄:
若是將域名指向一個域名,實現與被指向域名相同的訪問效果,須要增長CNAME記錄(CDN加速)
Ø MX記錄:
創建電子郵箱服務,將指向郵件服務器地址,須要設置MX記錄
Ø NS記錄:
域名解析服務器記錄,若是要將子域名指定某個域名服務器來解析,須要設置NS記錄
Ø TXT記錄:
可任意填寫(可爲空),一般用作SPF記錄(反垃圾郵件)使用
Ø AAAA記錄:
將主機名(或域名)指向一個IPv6地址(例如:ff03:0:0:0:0:0:0:c1),須要添加AAAA記錄
Ø PTR記錄:
設置PTR記錄,反向解析,即把IP地址解析爲對應的域名,和A記錄的解析相反(郵件服務等)
Ø 顯性URL:
將域名指向一個http(s)協議地址,訪問域名時,自動跳轉至目標地址(例如:將www.net.cn顯性轉發到www.hichina.com後,訪問www.net.cn時,地址欄顯示的地址爲:www.hichina.com)。
Ø 隱性URL:
與顯性URL相似,但隱性轉發會隱藏真實的目標地址(例如:將www.net.cn隱性轉發到www.hichina.com後,訪問www.net.cn時,地址欄顯示的地址仍然爲:www.net.cn)。
遞歸查詢是一種DNS 服務器的查詢模式,在該模式下DNS 服務器接收到客戶機請求,必須使用一個準確的查詢結果回覆客戶機。若是DNS 服務器本地沒有存儲查詢DNS 信息,那麼該服務器會詢問其餘服務器,並將返回的查詢結果提交給客戶機。
DNS 服務器另一種查詢方式爲迭代查詢,DNS 服務器會向客戶機提供其餘可以解析查詢請求的DNS 服務器地址,當客戶機發送查詢請求時,DNS 服務器並不直接回複查詢結果,而是告訴客戶機另外一臺DNS 服務器地址,客戶機再向這臺DNS 服務器提交請求,依次循環直到返回查詢的結果爲止。
命令 |
LDNS |
記錄類型 |
網址 |
dig |
@8.8.8.8 |
A |
www.baidu.com |
[root@clsn ~]# dig @8.8.8.8 gov.cn
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> @8.8.8.8 gov.cn
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51019
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;gov.cn. IN A
;; AUTHORITY SECTION:
gov.cn. 6855 IN SOA a.dns.cn. root.cnnic.cn. 2021852429 7200 3600 2419200 21600
;; Query time: 11 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Sep 28 18:59:49 2017
;; MSG SIZE rcvd: 77
#dig @8.8.8.8 MX baidu.com
說明:經過dig命令查看解析原理,能夠看到全球13臺根服務器
[root@clsn ~]# nslookup <- 直接解析指定域名對應的地址
> www.gov.cn
Server: 223.5.5.5 <- 解析域名信息的DNS服務器信息
Address: 223.5.5.5#53
Non-authoritative answer:
www.gov.cn canonical name = www.gov.cn.qingcdn.com.
www.gov.cn.qingcdn.com canonical name = uz91.v.qingcdn.com. <-域名的CNAME 信息
Name: uz91.v.qingcdn.com
Address: 125.39.21.26 <- 域名對應的ip地址
Name: uz91.v.qingcdn.com
Address: 125.39.21.6
Name: uz91.v.qingcdn.com
Address: 125.39.21.4
Name: uz91.v.qingcdn.com
Address: 125.39.21.5
Name: uz91.v.qingcdn.com
[root@clsn ~]# host www.gov.cn - 直接解析指定域名對應的地址
www.gov.cn is an alias for www.gov.cn.qingcdn.com.
www.gov.cn.qingcdn.com is an alias for uz91.v.qingcdn.com.
uz91.v.qingcdn.com has address 125.39.21.7
uz91.v.qingcdn.com has address 125.39.21.26
uz91.v.qingcdn.com has address 125.39.21.6
[root@clsn ~]# ping www.gov.cn -c1
PING uz91.v.qingcdn.com (125.39.21.7) 56(84) bytes of data.
64 bytes from no-data (125.39.21.7): icmp_seq=1 ttl=128 time=27.6 ms
--- uz91.v.qingcdn.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 78ms
rtt min/avg/max/mdev = 27.639/27.639/27.639/0.000 ms
ping 命令參數
-c 包的個數
-i 設置間隔時間
-s 數據包的大小
-q 中間的信息不顯示
-f 急速ping
[root@clsn ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 #第一塊網卡邏輯設備名
HWADDR=00:0c:29:a8:e4:14 #硬件地址,MAC地址(vm克隆後刪除)
TYPE=Ethernet #上網類型 -以太網
UUID=a3b2265e-9dac-4a29-aff6-d2e88eb28cfc#通用惟一標識碼(vm克隆後刪除)
ONBOOT=yes #開機自啓動
NM_CONTROLLED=yes #網絡管理控制參數 設置爲no (centos6)
BOOTPROTO=none #ip獲取方式
IPADDR=10.0.0.201 #ip地址
NETMASK=255.255.255.0 #掩碼
GATEWAY=10.0.0.2 #網關
USERCTL=no
PEERDNS=yes #確認網卡配置文件中的DNS 配置優先與/etc/resolv.conf
IPV6INIT=no
DNS2=223.6.6.6 #DNS2
DNS1=223.5.5.5 #DNS1
更多網卡配置相關知識
less /usr/share/doc/initscripts-*/sysconfig.txt
推薦的網卡重啓方式
ifdown eth0 && ifup wth0
配置那塊網卡,重啓哪塊網卡
對全部的網卡進行重啓(工做場景中謹慎使用)
/etc/init.d/network restart
注意:
① 網卡若是配置DNS,會優先於/etc/resolv.conf 的配置生效,而且重啓網卡,會把/etc/resolv.conf裏的覆蓋
② 網卡若是沒有配置DNS,那麼在/etc/resolv.conf 裏配置會生效
③ 若是有多塊網卡(DHCP 獲取方式)時候,可能會覆蓋/etc/resolv.conf 裏已有的配置。
第一步 首先,利用命令臨時修改主機名
[root@clsn ~]# hostname clsn
第二步 其次,修改network 配置文件,使主機名永久生效
[root@clsn ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=clsn
第三步 最後,修改hosts文件,創建主機名與環回ip的映射關係
[root@clsn ~]# cat /etc/hosts
127.0.0.1 localhost.localdomain localhost.localdomain localhost4 clsn
::1 localhost.localdomain localhost.localdomain localhost6 localhost6.localdomain6 localhost
127.0.0.1 clsn
添加:
[root@clsn ~]# route add default gw 10.0.0.254
[root@clsn ~]# 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 1002 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.2 0.0.0.0 UG 0 0 0 eth0
刪除:
[root@clsn ~]# route del default gw 10.0.0.254
[root@clsn ~]# 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 1002 0 0 eth0
0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0
添加:
[root@clsn ~]# route add -net 192.168.0.0 netmask 255.255.0.0 gw 10.0.0.2
[root@clsn ~]# 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 1002 0 0 eth0
192.168.0.0 10.0.0.2 255.255.0.0 UG 0 0 0 eth0
0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0
刪除:
[root@clsn ~]# route del -net 192.168.0.0 netmask 255.255.0.0 gw 10.0.0.2
[root@clsn ~]# 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 1002 0 0 eth0
0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0
/etc/sysconfig/network-scipts/route-eth0
172.16.1.0/24 via 192.168.1.1
/etc/sysconfig/static-routes
any net 172.16.1.0/24 gw 192.168.1.1
/etc/rc.local
route add -host 192.168.2.13 dev eth2
route del -host 192.168.2.13 dev eth2
命令格式:
ifconfig eth0:0 10.0.0.101/24 up 配置別名ip,並啓用
ifconfig eth0:0 10.0.0.101/24 down 停用制定的別名IP
示例:
[root@clsn ~]# ifconfig eth0:0 10.0.0.101/24 up
[root@clsn ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:A8:E4:14
inet addr:10.0.0.201 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fea8:e414/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:49465 errors:0 dropped:0 overruns:0 frame:0
TX packets:45089 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:20224063 (19.2 MiB) TX bytes:7714321 (7.3 MiB)
eth0:0 Link encap:Ethernet HWaddr 00:0C:29:A8:E4:14
inet addr:10.0.0.101 Bcast:10.0.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:38 errors:0 dropped:0 overruns:0 frame:0
TX packets:38 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2598 (2.5 KiB) TX bytes:2598 (2.5 KiB)
說明:heartbeat 高可用(vIP)早期用的別名IP,Centos6下heatbeat用的是輔助ip。
使別名ip網卡重啓不失效:
寫成能配置文件(/etc/sysconfig/network-scripts/ifcfg-eth0:1)
表示配置多個ip在同一網卡上。
配置命令格式:
ip addr add 10.0.0.13/24 dev eth0:1 添加
ip addr add 10.0.0.14/24 broadcast 10.0.0.255 dev eth0:1 添加
ip addr del 10.0.0.13/24 dev eth0:1 刪除
ip addr del 10.0.0.14/24 broadcast 10.0.0.255 dev eth0:1 刪除
說明:輔助ip形式在keepalived高可用服務中一直使用,都是用的輔助ip。
輔助ip的方式是將來趨勢。
示例:
[root@clsn ~]# ip addr add 10.0.0.102/24 dev eth0:1
[root@clsn ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:a8:e4:14 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.201/24 brd 10.0.0.255 scope global eth0
inet 10.0.0.102/24 scope global secondary eth0
inet6 fe80::20c:29ff:fea8:e414/64 scope link
valid_lft forever preferred_lft forever
刪除:
[root@clsn ~]# ip addr del 10.0.0.102/24 dev eth0:1
方法一:[root@clsn ~]# netstat|awk -F "[ :]+" '/EST/{print $6}' |sort |uniq -c|sort -rn -k1
1 10.0.0.1
方法二:[root@clsn ~]# netstat|awk '/^tcp/{s[$NF]++}END{for(a in s)print a,s[a]}'|sort -rn -k1
ESTABLISHED 1
方法一:
[root@clsn ~]# lsof -i :22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1102 root 3u IPv4 10308 0t0 TCP *:ssh (LISTEN)
sshd 1102 root 4u IPv6 10310 0t0 TCP *:ssh (LISTEN)
方法二:
[root@clsn ~]# netstat -lntup|grep 22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1102/sshd
tcp 0 0 :::22 :::* LISTEN 1102/sshd
[root@znix ~]# traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 * * *
2 11.220.137.101 (11.220.137.101) 30.128 ms 30.408 ms 11.220.136.37 (11.220.136.37) 31.026 ms
3 11.220.137.118 (11.220.137.118) 25.325 ms 11.220.137.122 (11.220.137.122) 25.928 ms 11.220.136.122 (11.220.136.122) 25.794 ms
4 116.251.105.69 (116.251.105.69) 27.118 ms 106.11.130.190 (106.11.130.190) 28.008 ms 106.11.130.182 (106.11.130.182) 27.837 ms
5 116.251.112.189 (116.251.112.189) 26.409 ms 101.200.109.134 (101.200.109.134) 39.593 ms 116.251.112.157 (116.251.112.157) 37.824 ms
6 106.38.196.5 (106.38.196.5) 26.568 ms * *
7 * * *
8 * * *
9 * * *
10 202.97.53.246 (202.97.53.246) 29.232 ms 202.97.58.98 (202.97.58.98) 27.856 ms 202.97.53.246 (202.97.53.246) 29.002 ms
11 202.97.91.114 (202.97.91.114) 66.359 ms 66.241 ms 65.974 ms
12 202.97.62.214 (202.97.62.214) 105.680 ms 105.781 ms 105.321 ms
13 108.170.241.5 (108.170.241.5) 62.860 ms 62.687 ms 108.170.241.38 (108.170.241.38) 63.391 ms
14 72.14.232.155 (72.14.232.155) 63.230 ms 64.233.174.17 (64.233.174.17) 62.013 ms 66.249.95.199 (66.249.95.199) 63.684 ms
15 216.239.46.119 (216.239.46.119) 86.082 ms 209.85.247.124 (209.85.247.124) 76.583 ms 209.85.142.172 (209.85.142.172) 74.886 ms
16 216.239.57.241 (216.239.57.241) 75.346 ms 209.85.249.75 (209.85.249.75) 74.639 ms 216.239.43.103 (216.239.43.103) 76.405 ms
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 google-public-dns-a.google.com (8.8.8.8) 77.106 ms 76.575 ms 73.135 ms
[root@clsn ~]# telnet 10.0.0.201 22
Trying 10.0.0.201...
Connected to 10.0.0.201.
SSH-2.0-OpenSSH_5.3
[root@clsn ~]# nmap 10.0.0.201 -p 20-23
Starting Nmap 5.51 ( http://nmap.org ) at 2017-09-28 21:05 CST
Nmap scan report for 10.0.0.201
Host is up (0.00012s latency).
PORT STATE SERVICE
20/tcp closed ftp-data
21/tcp closed ftp
22/tcp open ssh
23/tcp closed telnet
Nmap done: 1 IP address (1 host up) scanned in 0.54 seconds
文件傳輸協議,監聽的端口是21/tcp端口,是完成各主機之間文件共享的協議,將一個主機的服務共享給其它主機的FTP協議是工做於應用層的協議,是基於TCP協議來實現,數據的傳輸的可靠性;而且TCP是採用兩個鏈接FTP協議是一種文本協議,支持telnet鏈接(文本協議都支持telnet的鏈接)FTP採用CS模式進行訪問,擁有專用客戶端,能夠向服務器端發送大量請求的ftp相關的命令:
get mget put mput cd ls
通常控制鏈接:是監聽在tcp協議的21端口
通常數據鏈接:監聽的端口須要分兩種狀況而定
服務端會利用20號端口,主動向客戶端發出數據傳輸請求,並先連2002端口,沒有連2003依次類推可是客戶端會擁有防火牆的概念,將服務端的請求屏蔽掉,所以產生了被動請求
服務器端會通知一個報文,報文中能夠中能夠有的信息是151:20,所以經過計算能夠得知服務器端開放的隨機端口是151*256+20端口,客戶端會經過服務端告知的隨機端口進行數據的傳輸可是因爲服務器端是端口隨機的,所以服務器端也可能會有防火牆的概念,爲解決此問題,會對防火牆的一個重要功能進行了解"鏈接追蹤功能"---就是防火牆進程會判斷鏈接與鏈接之間的關係,防火牆內部請求出去響應回防火牆的就會容許,防火牆外部請求進來的鏈接就會阻止,根據追蹤鏈接請求的特徵,tcp一段發起的創建鏈接請求的狀態能夠成爲new狀態,響應請求後完成創建的狀態成爲ESTB狀態。
全部數據傳輸的創建,都必須先創建控制鏈接,也就是輸入相應的FTP命令,而後進行數據傳輸所以就產生了一個概念,related相關聯的鏈接,防火牆會追蹤鏈接彼此之間是否相關聯, 只要是相關聯的鏈接,不論是什麼端口,都進行放行
對用模式的主動和被動,都是根據服務端來進行說明的tcp 端口號是0-65535 udp 端口號是0-65535 所總計應該是12W多個端口防火牆是對端口進行控制,對請求的流量作限制,可是響應和流出的流量是不能進行過濾的數據傳輸模式:同時支持兩種數據傳輸模式 文本模式和二進制模式,而且數據傳輸遵循文件自己的格式,不然強行將文本文件按二進制傳輸會出現亂碼的狀況,所以建議服務端與客戶端自行協商傳輸模式.
通常數據的存儲形式分爲 文本和二進制文件的格式
網上傳輸的數據通常分爲三種(結構化數據 半結構化數據 非結構化數據)