DNS域名解析知識初步

1.DNS是什麼

DSN域名解析服務器

功能:

將域名解析成IP地址(正向解析)

將IP地址解析成域名(反向解析)

控制互聯網上電子郵件的轉發

2.DNS能幹什麼

(1)A記錄 www.baidu.com ==> 61.135.169.125

(2)CNAME,ip別名,用的最廣的就是常備CDN應用商應用解析CNAME

(3)MX解析記錄 [email protected], @qq.com就是MX記錄

反向解析,用的最多的還是郵件服務

A記錄解析過程:

DNS A記錄

瀏覽器==》www.baidu.com===>網站服務器的IP地址===》IP地址對應的網站服務器

3.DNS解析流程原理(必會)

DNS本身也是一個樹狀結構,互聯網上的其他DNS服務器由“根DNS服務器”、“頂級域DNS服務器(例如:com、edu等)”、“二級域DNS服務器”組成,“.”根服務器,全球有13臺。頂級域(com 、org 、net),二級域 比如jingdong.com

DNS數據結構圖如下圖所示:

DNS域名解析知識初步

DNS解析流程原理圖如下圖所示:

DNS域名解析知識初步

流程圖說明:

比如說客戶端想要訪問www.baidu.com,客戶端發送請求訪問www.baidu.com,先查詢客戶端的DNS緩存(由本機的host文件和上次的解析結果緩存組成),找到結果,返回查詢結果,反之進行下一步查詢;沒有結果查詢本地DNS服務器,按照客戶端的設置找到首選DNS服務器,客戶端要查詢的域名是否在本機上,如果在返回資源記錄,不在進行下一步;還沒有的話按照本地DNS服務器上的named.ca文件,定位根服務器,查詢根服務器的DNS緩存,如果有就返回結果,如果沒有這時根服務器就會說我沒有,但是我知道頂級域的你去找頂級域吧;這時就會查詢根服務器的列表給本地DNS服務器返回一個頂級域的DNS服務器地址;接下來查找頂級域的DNS服務器(com服務器),本地DNS服務器問頂級域服務器知道不知道www.baidu.com的地址啊,頂級域服務器說我知道我有,這時就會返回www.baidu.com的域名解析地址,本地DNS服務器記錄緩存併發給客戶端,客戶端接收並緩存baidu的域名地址,訪問對應資源,整個DNS解析結束。

3.1 DNS解析原理命令實踐

(1)dig命令

查看一下baidu.com的解析過程,可以更加理解DNS解析原理

dig命令的一個典型用法爲:

dig @server(8.8.8.8) name type(A,MX,NS)

[root@linzhongniao ~]# dig @8.8.8.8 www.baidu.com +trace
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> @8.8.8.8 www.baidu.com +trace
; (1 server found)
;; global options: +cmd
.   20911   IN  NS  m.root-servers.net.
.   20911   IN  NS  b.root-servers.net.
.   20911   IN  NS  c.root-servers.net.
.   20911   IN  NS  d.root-servers.net.
.   20911   IN  NS  e.root-servers.net.
.   20911   IN  NS  f.root-servers.net.
.   20911   IN  NS  g.root-servers.net.
.   20911   IN  NS  h.root-servers.net.
.   20911   IN  NS  i.root-servers.net.
.   20911   IN  NS  a.root-servers.net.
.   20911   IN  NS  j.root-servers.net.
.   20911   IN  NS  k.root-servers.net.
.   20911   IN  NS  l.root-servers.net.
;; Received 228 bytes from 8.8.8.8#53(8.8.8.8) in 168 ms

;; Truncated, retrying in TCP mode.
com.172800  IN  NS  a.gtld-servers.net.
com.172800  IN  NS  b.gtld-servers.net.
com.172800  IN  NS  c.gtld-servers.net.
com.172800  IN  NS  d.gtld-servers.net.
com.172800  IN  NS  e.gtld-servers.net.
com.172800  IN  NS  f.gtld-servers.net.
com.172800  IN  NS  g.gtld-servers.net.
com.172800  IN  NS  h.gtld-servers.net.
com.172800  IN  NS  i.gtld-servers.net.
com.172800  IN  NS  j.gtld-servers.net.
com.172800  IN  NS  k.gtld-servers.net.
com.172800  IN  NS  l.gtld-servers.net.
com.172800  IN  NS  m.gtld-servers.net.
;; Received 827 bytes from 193.0.14.129#53(193.0.14.129) in 547 ms

baidu.com.  172800  IN  NS  dns.baidu.com.
baidu.com.  172800  IN  NS  ns2.baidu.com.
baidu.com.  172800  IN  NS  ns3.baidu.com.
baidu.com.  172800  IN  NS  ns4.baidu.com.
baidu.com.  172800  IN  NS  ns7.baidu.com.
;; Received 201 bytes from 192.43.172.30#53(192.43.172.30) in 5312 ms

www.baidu.com.  1200IN  CNAME   www.a.shifen.com.
a.shifen.com.   1200IN  NS  ns4.a.shifen.com.
a.shifen.com.   1200IN  NS  ns3.a.shifen.com.
a.shifen.com.   1200IN  NS  ns1.a.shifen.com.
a.shifen.com.   1200IN  NS  ns5.a.shifen.com.
a.shifen.com.   1200IN  NS  ns2.a.shifen.com.
;; Received 228 bytes from 202.108.22.220#53(202.108.22.220) in 10 ms

dig命令也可以直接接域名

[root@linzhongniao ~]# dig www.baidu.com 
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28778
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.baidu.com. IN  A

;; ANSWER SECTION:
www.baidu.com.  283 IN  CNAME   www.a.shifen.com.
www.a.shifen.com.   93  IN  A   61.135.169.121
www.a.shifen.com.   93  IN  A   61.135.169.125

;; Query time: 10 msec
;; SERVER: 192.168.18.1#53(192.168.18.1)
;; WHEN: Tue Aug 28 22:43:26 2018
;; MSG SIZE  rcvd: 90

(2)nslookup命令

解析域名對應的地址

[root@linzhongniao ~]# nslookup
> www.baidu.com
Server: 192.168.18.1   《==由哪個服務器進行解析
Address:192.168.18.1#53

Non-authoritative answer:
Name:   www.baidu.com   《==對應的域名是什麼
Address: 61.135.169.121 《==對應域名的IP地址
Name:   www.baidu.com
Address: 61.135.169.125
> ^C[root@linzhongniao ~]#

(3)也可以用host查看解析

[root@linzhongniao ~]# host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 61.135.169.125
www.a.shifen.com has address 61.135.169.121

(4)也可以用ping查看解析

DNS域名解析知識初步

3.2 修改主機名的規範步驟

(1)用hostname進行修改

hostname linzhongniao

退出登錄再進來就修改了,但是重啓系統就失效了

(2)修改/etc/sysconfig/network的配置文件永久生效

[root@zbf ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=linzhongniao
NTPSERVERARGS=iburst

(3)修改/etc/hosts配置文件

修改完/etc/sysconfig/network還得修改/etc/hosts文件,因爲只修改/etc/sysconfig/network裏的主機名還是不行的,/etc/hosts裏面127.0.0.1主機對應的本地迴環記錄也要修改

[root@zbf ~]# cat /etc/hosts
 127.0.0.1   localhost.localdomain   localhost.localdomain   localhost4  localhost4.localdomain4 localhostlinzhongniao
::1 localhost.localdomain   localhost.localdomain   localhost6  localhost6.localdomain6 localhost   linzhongniao

3.3 配置默認網關(必會)

第一生效文件,網卡配置文件優先

[root@linzhongniao ~]# grep -i "gate" /etc/sysconfig/network-scripts/ifcfg-eth0

第二生效文件

[root@linzhongniao ~]# grep -i "gate" /etc/sysconfig/network

第三可以在命令行配置,臨時生效添加默認網關

route add default gw 192.168.1.1

刪除默認網關:

route del default gw 192.168.1.1

刪除默認網關是上不了網的

[root@linzhongniao ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric RefUse Iface
 192.168.1.0 0.0.0.0 255.255.255.0   U 0  00 eth0
 169.254.0.0 0.0.0.0 255.255.0.0 U 1002   00 eth0
 0.0.0.0 192.168.1.1 0.0.0.0 UG0  00 eth0
[root@linzhongniao ~]# route del default gw 192.168.1.1
[root@linzhongniao ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric RefUse Iface
 192.168.1.0 0.0.0.0 255.255.255.0   U 0  00 eth0
 169.254.0.0 0.0.0.0 255.255.0.0 U 1002   00 eth0
[root@linzhongniao ~]# ping www.baidu.com
ping: unknown host www.baidu.com

再把默認網關添加回來,就可以連網了

[root@linzhongniao ~]# route add default gw 192.168.1.1 
[root@linzhongniao ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric RefUse Iface
 192.168.1.0 0.0.0.0 255.255.255.0   U 0  00 eth0
 169.254.0.0 0.0.0.0 255.255.0.0 U 1002   00 eth0
 0.0.0.0 192.168.1.1 0.0.0.0 UG0  00 eth0
[root@linzhongniao ~]# ping www.baidu.com  
PING www.baidu.com (61.135.169.121) 56(84) bytes of data.
64 bytes from 61.135.169.121: icmp_seq=1 ttl=53 time=6.58 ms
64 bytes from 61.135.169.121: icmp_seq=2 ttl=53 time=7.78 ms
^C
 --- www.baidu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1242ms
rtt min/avg/max/mdev = 6.583/7.185/7.788/0.608 ms

3.4 命令行配置IP別名

(1)在etho網卡上再綁定一個IP地址,設置IP別名,配置的ip別名網卡是可以用的,網卡重啓會失效

[root@linzhongniao ~]# ifconfig eth0:0 192.168.1.224 netmask 255.255.255.0 up
或者ifconfig eth0:0 192.168.1.224/24 up

修改ip用ifconfig eth0 192.168.1.224/24

DNS域名解析知識初步

Centos7,配置ip別名(輔助ip)用ip命令,可以man一下

[root@linzhongniao ~]# ip addr add 192.168.1.226/24 dev eth0:1
[root@linzhongniao ~]# ip addr
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:9c:41:1c brd ff:ff:ff:ff:ff:ff
inet 192.168.1.110/24 brd 192.168.1.255 scope global eth0
inet 192.168.1.224/24 brd 192.168.1.255 scope global secondary eth0:0
inet 192.168.1.226/24 scope global secondary eth0
inet6 fe80::20c:29ff:fe9c:411c/64 scope link 
   valid_lft forever preferred_lft forever

(2)永久生效

將ip別名寫成網卡的配置文件

[root@linzhongniao ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.224
NETMASK=255.255.255.0
USERCTL=no
PEERDNS=yes
IPV6INIT=no

3.5已知端口查看進程名的多種方法

企業面試題:已知一個端口,查看端口對應的服務名

(1)方法一:lsof

[root@linzhongniao ~]# lsof -i tcp:22
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd1528 root3u  IPv4  13766  0t0  TCP *:ssh (LISTEN)
sshd1528 root4u  IPv6  13773  0t0  TCP *:ssh (LISTEN)
sshd1810 root3r  IPv4  15916  0t0  TCP 192.168.1.110:ssh->192.168.1.107:53725 (ESTABLISHED)
[root@linzhongniao ~]# lsof -i tcp:53725
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd1810 root3r  IPv4  15916  0t0  TCP 192.168.1.110:ssh->192.168.1.107:53725 (ESTABLISHED)
[root@linzhongniao ~]# lsof -i :22  《==不清楚用的什麼協議可以空着
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd1528 root3u  IPv4  13766  0t0  TCP *:ssh (LISTEN)
sshd1528 root4u  IPv6  13773  0t0  TCP *:ssh (LISTEN)
sshd1810 root3r  IPv4  15916  0t0  TCP 192.168.1.110:ssh->192.168.1.107:53725 (ESTABLISHED)

(2)方法二:netstat –lntup

參數:

-l 是列表

-n 不列出進程的服務名稱,以端口號顯示

-t tcp協議

-u udp協議

-p 顯示端口對應的pid

[root@linzhongniao ~]# netstat -lntup|grep 22   
tcp0  0 0.0.0.0:22  0.0.0.0:*   LISTEN  1528/sshd   
tcp0  0 :::22   :::*LISTEN  1528/sshd         

3.6 網絡及服務故障排查

例如:baidu的網站有問題

3.6.1 ping www.baidu.com icmp協議基礎

ping -c3 -i2 -s512 www.baidu.com

3.6.2 traceroute www.baidu.com 基礎檢查路由跟蹤

各個高速節點有沒有修通traceroute,windows用tracert -d

參數:-n Do not try to map IP addresses to host names when displaying them

不解析ip地址和主機名

[root@linzhongniao ~]# traceroute -n www.baidu.com
traceroute to www.baidu.com (61.135.169.125), 30 hops max, 60 byte packets
 1  192.168.1.1  3.424 ms  4.903 ms  4.781 ms
 2  192.168.18.1  4.699 ms  4.567 ms  7.154 ms
 3  111.166.52.1  7.155 ms  7.271 ms  7.217 ms
 4  117.8.161.249  35.808 ms  35.745 ms  35.574 ms
 5  117.8.151.33  6.894 ms 117.8.154.29  5.127 ms 117.8.154.9  4.641 ms
 6  117.8.223.5  39.023 ms 117.8.222.73  32.862 ms 117.8.223.101  31.424 ms
 7  219.158.18.165  31.282 ms 219.158.7.37  31.208 ms 219.158.18.165  31.110 ms
 8  124.65.194.30  28.378 ms 123.126.0.230  30.869 ms 124.65.194.18  30.817 ms
 9  123.126.6.198  32.625 ms 202.106.230.122  32.779 ms 123.126.9.126  32.684 ms
10  61.49.168.90  32.581 ms  8.570 ms 61.49.168.86  11.628 ms
11  * * *

查詢出來的ip可能就是每一個省的地址,瀏覽器輸入ip138.com可以查詢ip是哪的,例如查詢61.49.168.90

DNS域名解析知識初步

3.6.3 telnet,nmap檢查服務的端口開沒開

例如檢查baidu的服務器的服務開沒開,如果這個地方沒通用ping和telnet是通的就說明,你自己的這個端口對應的服務沒開或防火牆擋住了。

也可以用nmap 檢查端口開沒開,nmap 接ip也可以接域名,看到open就說明http服務是開啓的

[root@linzhongniao ~]# nmap www.baidu.com -p 80

Starting Nmap 5.51 ( http://nmap.org ) at 2018-08-29 16:23 CST
Nmap scan report for www.baidu.com (61.135.169.121)
Host is up (0.0071s latency).
Other addresses for www.baidu.com (not scanned): 61.135.169.125
PORT   STATE SERVICE
80/tcp open  http

Nmap done: 1 IP address (1 host up) scanned in 0.22 seconds

不通:

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

2、防火牆阻擋了。

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

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

3.6.4 抓包工具tcpdump

tcpdump文件接口數據包捕獲器

參數:

 -n 指定協議

 -X 可以列出十六進制以及ASCII的數據包內容,對於監聽數據包內容很有用

 -i 接口,指定網卡設備,例如eth0,eth1

 -c 監聽數據包的次數,如果沒有這個參數會一直監聽

 -nn 直接以IP以及port number顯示,而非主機名與服務名稱

所捕獲的數據包的數據格式:我們可以專門針對默認協議或者IP來源進行數據包捕獲。就可以就簡化輸出結果得到想要的信息,常見的表示方法有:

'host foo' 'host 127.0.0.1' 針對單臺機器來進行數據包的獲取

'net 192.168' 針對某個網絡來進行數據包的捕獲

'src host 127.0.0.1' 'dst net 192.168' 同時加上來源src和目標dst限制

'tcp port 21' 還可以針對通信協議檢測如tcp udp arp等

還可以用and與or來進行數據包數據的整合

演示:使用tcpdump監聽來自eth0網卡且通信協議爲icmp的數據包的來源

[root@linzhongniao ~]# tcpdump -n icmp -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes

這時候會不繼續顯示內容,因爲沒有ping etho網卡,下面我們用電腦ping eth0網卡對應的ip地址。

DNS域名解析知識初步

如果ping不通就又問題了,那麼網絡經過的每一個點,每一個路由都要監聽

例題:如何使用tcpdump①監聽來自eth0網卡且②通信協議爲port 22,③目標數據包來源爲192.168.1.108的數據包?

tcpdump -i eth0 -nn 'port 22 and src host 192.168.1.108'

4.網卡配置

4.1 配置修改主機名hostname

臨時方法:

hostname linzhongniao

退出當前shell重新登錄失效,只能臨時修改文件名,重啓系統後失效

永久方法:

方法以:

修改/etc/sysconfig/network配置文件。將HOSTNAME的值改成linzhongniao

[root@linzhongniao ~]# grep "HOSTNAME" /etc/sysconfig/network
HOSTNAME=linzhongniao

修改/etc/hosts文件,將127.0.0.1對應的主機名也修改爲linzhongniao

方法二:

用setup工具
執行setup-網絡配置-- Edit DNS configuration-->
DNS configuration  
 x   x 
 x Hostname  linzhongniao_______   x ===========>修改這裏
 x Primary DNS   202.106.0.20___ x 
 x Secondary DNS 211.147.6.3____ x 
 x Tertiary DNS  _______________ x 
 x Search_______________ x 

修改完這裏還需要把/etc/hosts裏面的127.0.0.1對應的主機名修改成linzhongniao。不用重啓服務器的方法是臨時方法和永久方法都要設置,這樣不重啓服務器主機名也是生效的。

提示:如果/etc/hosts不改,以後會遇到一些問題,如sendmail啓動緩慢,ldap服務解析慢,sudo切換用戶緩慢等等都是主機名和/etc/hosts中的解析不對應導致的。

4.2 網卡配置說明

[root@linzhongniao ~]# 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===============》類型以太網

提示:第一塊網卡爲ifcfg-eth0,第二塊爲ifcfg-eth1...

4.3 配置修改ip地址

配置服務器以及DNS等網路配置的方法

方法一:

setup-網絡配置,然後修改

方法二:

直接編寫網卡的配置文件/etc/sysconfig/network-scripts/ifcfg-eth0

/etc/resolv.conf==》dns的配置文件,網卡配置文件和setup設置的dns優先於dns配置文件配置的dns

提示:以上兩種方法一般需要重新加載網卡生效。

4.4 配置網關

方法一:修改/etc/sysconfig/network

[root@linzhongniao ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=linzhongniao
NTPSERVERARGS=iburst

方法二:修改網卡配置文件

DNS域名解析知識初步

特別注意:

/etc/sysconfig/network-scripts/ifcfg-bond0中配置的網關優先於/etc/sysconfig/network配置的網關,GATEWAY要大寫。

方法三:通過命令行修改網關

添加默認網關:route add default gw 192.168.1.1

刪除默認網關:route del default gw 192.168.1.1

注意:這種方法只是臨時修改了網關重新加載或者啓動網卡就會失效,解決辦法就是將route add default gw 192.168.1.1添加到/etc/rc.local中或者/etc/init.d/network中讓系統自動加載或者重啓網卡也生效。

4.5 修改主機DNS設置

方法一:setup圖形操作

方法二:修改/etc/resolv.conf 《==修改系統的dns配置文件

[root@linzhongniao ~]# cat /etc/resolv.conf 
; generated by /sbin/dhclient-script
search DHCP HOST
nameserver 192.168.18.1
nameserver 114.114.114.114

方法三:也可以修改網卡配置文件

DNS域名解析知識初步

提示:網卡配置文件裏面修改的dns優先於dns配置文件配置的dns

4.6 查看ip的方法

用ifconfig,ifconfig eth0(指定網卡)或者ip addr

4.7 查看路由

[root@linzhongniao ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric RefUse Iface
192.168.1.0 0.0.0.0 255.255.255.0   U 0  00 bond0
169.254.0.0 0.0.0.0 255.255.0.0 U 1004   00 bond0
0.0.0.0 192.168.1.1 0.0.0.0 UG0  00 bond0
[root@linzhongniao ~]# netstat –rn 《==這種方法可以不記,記route即可
Kernel IP routing table
Destination Gateway Genmask Flags   MSS Window  irtt Iface
192.168.1.0 0.0.0.0 255.255.255.0   U 0 0  0 bond0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0  0 bond0
0.0.0.0 192.168.1.1 0.0.0.0 UG0 0  0 bond0

4.8 查看dns解析是否正確的方法

方法一:

[root@linzhongniao ~]# cat /etc/resolv.conf  《==這是常見的檢查
; generated by /sbin/dhclient-script
search DHCP HOST
nameserver 192.168.18.1
nameserver 114.114.114.114

方法二:

[root@linzhongniao ~]# ping g.cn 《這是最常見的檢查方法返回地址說明是通的
PING g.cn (203.208.41.88) 56(84) bytes of data.
64 bytes from 203.208.41.88: icmp_seq=1 ttl=115 time=35.5 ms
64 bytes from 203.208.41.88: icmp_seq=2 ttl=115 time=34.0 ms

方法三:

[root@linzhongniao ~]# host www.baidu.com 《==這也是最常用的方法返回ip說明是通的
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 61.135.169.125
www.a.shifen.com has address 61.135.169.121

方法四:

[root@linzhongniao ~]# nslookup 《==這也是最常用的方法
> www.baidu.com
Server: 192.168.18.1
Address:192.168.18.1#53

Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 61.135.169.125
Name:   www.a.shifen.com
Address: 61.135.169.121

方法五:

DNS域名解析知識初步

4.9 設置ip別名

臨時生效:

ifconfig [device] [IP] netmask [netmask ip] [up|down]
ifconfig eth0:1 192.168.1.167 netmask 255.255.255.0 up

設置ip別名的作用

(1)測試用

測試www接口的瀏覽,建立一個虛擬的網絡接口。可以立刻連接上ip路由器,也不會影響原來的網絡參數配置

(2)有設備無法提供更多實體網卡時

如果某臺機器需要連接多個網絡,但該設備確無法提供安裝更多網卡,可以設置ip別名提供服務。

永久生效:

添加虛擬設備的配置文件ifcfg-eth0:1

5.route添加網關企業面試題

5.1如何用命令行方式給linux機器添加一個默認網關,假設網關地址是192.168.1.1?

解答:缺省網關路由

默認網關就是數據包不匹配任何設定的路由規則,最後都流經的地址關口。網關按字面意思就是網絡的關口,就相當於我們家裏房子的門一樣,如果外出都要經過房門,數據包也是一樣的都要經過網關。

[root@linzhongniao ~]# route del default gw 192.168.1.1 《==這個命令是刪除默認網關 
添加指定網關default 相當於-net 192.168.1.0 netmask 255.255.255.0,這個部分。
[root@linzhongniao ~]# route –n 《==查看路由表
Kernel IP routing table
Destination Gateway Genmask Flags Metric RefUse Iface
192.168.1.0 0.0.0.0 255.255.255.0   U 0  00 bond0
169.254.0.0 0.0.0.0 255.255.0.0 U 1004   00 bond0
[root@linzhongniao ~]# route add default gw 192.168.1.1 《==添加默認網關也是本題的答案 相當於route add –net 0.0.0.0/0 gw 192.168.1.1
[root@linzhongniao ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric RefUse Iface
192.168.1.0 0.0.0.0 255.255.255.0   U 0  00 bond0
169.254.0.0 0.0.0.0 255.255.0.0 U 1004   00 bond0
0.0.0.0 192.168.1.1 0.0.0.0 UG0  00 bond0 《==又回來了

特別強調:實際上route add default gw 192.168.1.1就相當於route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.1.1

5.2 已知192.168.1.0網段,192.168.1.1網關的某一服務器想連入172.16.1.0/24段,該如何添加路由(奇虎360)

網絡路由:即去往某一網絡或網段的路由

解答實踐:192.168.1.0網段的機器想通過192.168.1.1網關出去與172.16.1.0網段的機器互通。

方法一:

[root@linuxyunweijichu ~]# route add -net 172.16.1.0 netmask 255.255.255.0 gw 192.168.1.1   
[root@linuxyunweijichu ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric RefUse Iface
192.168.2.0 0.0.0.0 255.255.255.0   U 0  00 eth1
192.168.1.0 0.0.0.0 255.255.255.0   U 0  00 eth0
172.16.1.0  192.168.1.1 255.255.255.0   UG0  00 eth0  《==添加的路由
169.254.0.0 0.0.0.0 255.255.0.0 U 1002   00 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG0  00 eth0

方法二:想訪問172.16.1.0網段從eth0網卡出去

 [root@linuxyunweijichu ~]# route add -net 172.16.1.0 netmask 255.255.255.0 dev eth0 《==指定網卡設備不指定ip
[root@linuxyunweijichu ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric RefUse Iface
 192.168.2.0 0.0.0.0 255.255.255.0   U 0  00 eth1
 192.168.1.0 0.0.0.0 255.255.255.0   U 0  00 eth0
 172.16.1.0  0.0.0.0 255.255.255.0   U 0  00 eth0
 169.254.0.0 0.0.0.0 255.255.0.0 U 1002   00 eth0
 0.0.0.0 192.168.1.1 0.0.0.0 UG0  00 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   

特別強調:以上方法重啓服務都會失效。怎麼能夠不失效呢?

方法一:

編輯/etc/sysconfig/network-scripts/route-eth0默認不存在此文件需要創建。推薦生產環境使用
添加如下方式:

172.16.1.0/24 via 192.168.1.1 dev eth0
目標網絡            通過的網關  設備

提示:重啓網卡或系統都會生效

方法二:

vi /etc/sysconfig/static-routes #默認不存在此文件

加入如下內容:

any net 192.168.1.0/24 gw 192.168.1.1

提示:寫到配置文件裏,重啓系統和系統都會生效

方法三:

編輯/etc/rc.local

加入如下內容:

route add -net 172.16.1.0 netmask 255.255.255.0 gw 192.168.1.1

提示:方法三只是在開機時加載,重啓網絡服務會失效,但是重啓系統會生效

如果是默認網關可以添加到網卡配置裏

[root@linzhongniao ~]# grep GATEWAY /etc/sysconfig/network-scripts/ifcfg-bond0
GATEWAY=192.168.1.1

5.3 如何添加主機路由

主機路由:就是去往某一個主機地址如何配置路由

解答實踐:

/sbin/route add -host 192.168.2.13 dev eth1
[root@linzhongniao ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric RefUse Iface
 192.168.2.130.0.0.0 255.255.255.255 UH0  00 eth1
 192.168.1.0 0.0.0.0 255.255.255.0   U 0  00 bond0
 172.16.1.0  192.168.1.1 255.255.255.0   UG0  00 bond0
 169.254.0.0 0.0.0.0 255.255.0.0 U 1004   00 bond0
 0.0.0.0 192.168.1.1 0.0.0.0 UG0  00 bond0

route命令擴展:

刪除一條默認路由即Destination欄爲0.0.0.0:

route del default gw 169.254.0.0

刪除一條靜態路由:

如:route del -net 169.254.0.0 netmask 255.255.255.0或者route –net 169.254.0.0/24

[root@linzhongniao ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric RefUse Iface
 169.254.0.0 0.0.0.0 255.255.0.0 U 1004   00 bond0
 0.0.0.0 192.168.1.1 0.0.0.0 UG0  00 bond0
[root@linzhongniao ~]# route del -net 169.254.0.0 netmask 255.255.0.0
[root@linzhongniao ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric RefUse Iface
 0.0.0.0 192.168.1.1 0.0.0.0 UG0  00 bond0

刪除主機路由:

route del -host 192.168.1.10 dev eth1

6.開啓路由轉發

既然主機想要將數據傳送到不同的網段是需要通過路由器的幫忙,那麼,路由器的主要功能就是轉發網絡數據包,也就是說,路由器會分析來源數據包的ip包頭,在包頭內找出需要的目標IP後,通過路由器的的路由表來將這個數據包向下一個目標傳送,這就是路由功能,那麼路由功能使如何實現呢?

硬件功能:如cisco等公司的硬件路由器,可以負責不同網段間的數據包的翻譯與傳遞功能。

軟件功能:如linux操作系統的內核就提供了數據包的傳遞的功能。

那麼在以太網中最簡單的路由器功能,建立兩個不同的網段的連接在linux系統中是怎麼實現的呢?

這個轉發數據包的功能也是linux內核提供的,很簡單查看內核功能的顯示文件

[root@linzhongniao ~]# cat /proc/sys/net/ipv4/ip_forward
0《==0表示沒有啓動,1代表啓動了

要讓0改成1最簡單的方法就是直接編譯/proc/sys/net/ipv4/ip_forward,但是在下次重新啓動系統時生效,所以建議直接修改系統內核配置文件的內容,即修改/etc/sysctl.conf

[root@linzhongniao ~]# sed -i 's#net.ipv4.ip_forward = 0#net.ipv4.ip_forward = 1#g' /etc/sysctl.conf  
[root@linzhongniao ~]# grep "net.ipv4.ip_forward = 1" /etc/sysctl.conf   
net.ipv4.ip_forward = 1 《==將這個地方的值改爲1即可
[root@linzhongniao ~]# sysctl –p 《==立刻讓配置生效,sysctl在內核工作時是用來直接修改內核參數的一個命令

通常路由規劃有兩種:

靜態路由:類似route這個命令直接設置路由表到內核功能當中,設置只與網段環境相符合即可,不夠當網段有變化時,路由表就要重新設置了。

動態路由:類似Quagga或zebra軟件的功能,這些軟件安裝在linux路由器上,它可以動態檢測網絡的變化,並直接修改linux路由表的信息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章