DSN域名解析服務器linux
功能:面試
將域名解析成IP地址(正向解析)shell
將IP地址解析成域名(反向解析)windows
控制互聯網上電子郵件的轉發瀏覽器
(1)A記錄 www.baidu.com ==> 61.135.169.125緩存
(2)CNAME,ip別名,用的最廣的就是常備CDN應用商應用解析CNAME服務器
(3)MX解析記錄 23444444@qq.com, @qq.com就是MX記錄網絡
反向解析,用的最多的仍是郵件服務數據結構
A記錄解析過程:併發
DNS A記錄
瀏覽器==》www.baidu.com===>網站服務器的IP地址===》IP地址對應的網站服務器
DNS自己也是一個樹狀結構,互聯網上的其餘DNS服務器由「根DNS服務器」、「頂級域DNS服務器(例如:com、edu等)」、「二級域DNS服務器」組成,「.」根服務器,全球有13臺。頂級域(com 、org 、net),二級域 好比jingdong.com
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解析結束。
(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查看解析
(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
第一輩子效文件,網卡配置文件優先
[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
(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
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
企業面試題:已知一個端口,查看端口對應的服務名
(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
例如:baidu的網站有問題
ping -c3 -i2 -s512 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
例如檢查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
不通:
一、80服務沒開或端口不存在。
二、防火牆阻擋了。
三、服務監聽的端口不在鏈接的IP上。
四、運營商默認不開端口,申請開端口。
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地址。
若是ping不通就又問題了,那麼網絡通過的每個點,每個路由都要監聽
例題:如何使用tcpdump①監聽來自eth0網卡且②通訊協議爲port 22,③目標數據包來源爲192.168.1.108的數據包?
tcpdump -i eth0 -nn 'port 22 and src host 192.168.1.108'
臨時方法:
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中的解析不對應致使的。
[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...
配置服務器以及DNS等網路配置的方法
方法一:
setup-網絡配置,而後修改
方法二:
直接編寫網卡的配置文件/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/resolv.conf==》dns的配置文件,網卡配置文件和setup設置的dns優先於dns配置文件配置的dns
提示:以上兩種方法通常須要從新加載網卡生效。
方法一:修改/etc/sysconfig/network
[root@linzhongniao ~]# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=linzhongniao NTPSERVERARGS=iburst
方法二:修改網卡配置文件
特別注意:
/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中讓系統自動加載或者重啓網卡也生效。
方法一: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
用ifconfig,ifconfig eth0(指定網卡)或者ip addr
[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
方法一:
[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
方法五:
臨時生效:
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
解答:缺省網關路由
默認網關就是數據包不匹配任何設定的路由規則,最後都流經的地址關口。網關按字面意思就是網絡的關口,就至關於咱們家裏房子的門同樣,若是外出都要通過房門,數據包也是同樣的都要通過網關。
[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
網絡路由:即去往某一網絡或網段的路由
解答實踐: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
主機路由:就是去往某一個主機地址如何配置路由
解答實踐:
/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
既然主機想要將數據傳送到不一樣的網段是須要經過路由器的幫忙,那麼,路由器的主要功能就是轉發網絡數據包,也就是說,路由器會分析來源數據包的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路由表的信息