用DNSmasq搭建小型的內(nèi)網(wǎng)DNS
yum install dnsmasq -y
service dnsmasq start
127.0.0.1 localhost
192.168.1.10 web01.xxx.com web01
192.168.1.20 web02.xxx.com web02
hosts文件的強大之處還在于能夠劫持解析
/etc/dnsmasq.conf
默認(rèn)直接緩存resolv.conf中的nameserver饶火,通過下面的選項指定其他文件
resolv-file=/etc/resolv.dnsmasq.conf
默認(rèn)監(jiān)聽本地所有端口炒俱,指定監(jiān)聽端口的辦法(別忘了本地回環(huán))
listen-address=127.0.0.1,192.168.1.56
我要給dns記錄在另外一個文件避乏,而不是/etc/hosts
addn-hosts=/etc/addion_hosts
設(shè)置dns緩存大小
cache-size=150
我擔(dān)心dnsmasq的穩(wěn)定性怎么辦
解決辦法一:寫腳本或用nagios監(jiān)視dnsmasq進(jìn)程,或者定時重啟
解決辦法二:在另一臺機器也搭建一個dnsmasq,/etc/hosts文件拷一份過去弧呐,客戶端指定2個內(nèi)網(wǎng)DNS
記得在iptables防火墻開放53端口哦
bind不配合數(shù)據(jù)庫的情況下折晦,經(jīng)常需要重新載入并讀取配置文件,這是造成性能低下的原因筋量。
根據(jù)這點教訓(xùn),我們可以考慮不讀取/etc/hosts文件碉熄。而是另外指定一個在共享內(nèi)存里的文件桨武,比如/dev/shm/dnsrecord.txt ,這樣就不費勁了锈津,又由于內(nèi)存的非持久性呀酸,重啟就消失,可以定期同步硬盤上的某個內(nèi)容到內(nèi)存文件中琼梆。
具體一點就是下面的步驟
/etc/dnsmasq.conf
no-hosts
addn-hosts=/dev/shm/dnsrecord.txt
解決同步問題
開機啟動
echo "cat /etc/hosts > /dev/shm/dnsrecord.txt" >>/etc/rc.local
定時同步內(nèi)容
crontab -e
*/10 * * * * cat /etc/hosts > /dev/shm/dnsrecord.txt
/dev/shm這個目錄是linux下一個利用內(nèi)存虛擬出來的一個目錄性誉,這個目錄中的文件都是保存在內(nèi)存中,而不是磁盤上茎杂。其大小是非固定的错览,即不是預(yù)先分配好的內(nèi)存來存儲的。(shm == shared memory)
/dev/shm的容量默認(rèn)最大為內(nèi)存的一半大小煌往,使用df -h命令可以看到倾哺。但它并不會真正的占用這塊內(nèi)存,如果/dev/shm/下沒有任何文件刽脖,它占用的內(nèi)存實際上就是0字節(jié)羞海。
通過下面的命令,我們可以看到/dev/shm的文件系統(tǒng)為tmpfs曲管,即為臨時文件系統(tǒng)却邓。其他的幾個tmpfs的掛載目錄,其實質(zhì)上于/dev/shm是一致的院水。
sudo mount -o size=5128M -o remount /dev/shm
1腊徙、DNS解析過程詳解
1)简十、在瀏覽器中輸入一個域名,例如www.tmall.com撬腾,操作系統(tǒng)會先檢查自己本地的hosts文件是否有這個網(wǎng)址映射關(guān)系勺远,如果有,就先調(diào)用這個IP地址映射时鸵,完成域名解析胶逢, windows下hosts文件在C:/Windows/System32/drivers/etc/hosts下,linux一般都在/etc/hosts下饰潜。
2)初坠、如果hosts里沒有這個ip到域名的映射,那么就要查找本地DNS解析器緩存彭雾,是否有這個域名到ip地址的映射關(guān)系碟刺,如果有,直接返回薯酝,完成域名解析半沽。
3)、如果本機的hosts與本地DNS解析器緩存都沒有相應(yīng)的網(wǎng)址映射關(guān)系吴菠,那么就要找到你的TCP/ip參數(shù)中設(shè)置的首選DNS服務(wù)器者填,我們叫它本地DNS服務(wù)器,此服務(wù)器收到查詢時做葵,如果要查詢的域名占哟,包含在本地配置區(qū)域資源中,則返回解析結(jié)果給客戶機酿矢,完成域名解析榨乎,此解析具有權(quán)威性。
4)瘫筐、如果要查詢的域名蜜暑,不由本地DNS服務(wù)器區(qū)域解析,但該服務(wù)器已緩存了此網(wǎng)址映射關(guān)系策肝,則調(diào)用這個域名到ip地址的映射肛捍,完成域名解析,但是此解析不具有權(quán)威性驳糯。
5)篇梭、如果本地DNS服務(wù)器本地區(qū)域文件與緩存解析都失效,則根據(jù)本地DNS服務(wù)器的設(shè)置(是否設(shè)置轉(zhuǎn)發(fā)器)進(jìn)行查詢酝枢,如果未用轉(zhuǎn)發(fā)模式,本地DNS就把請求發(fā)至13臺根DNS悍手,根DNS服務(wù)器收到請求后會判斷這個域名(.com)是誰來授權(quán)管理帘睦,并會返回一個負(fù)責(zé)該頂級域名服務(wù)器的一個IP袍患。本地DNS服務(wù)器收到IP信息后,將會聯(lián)系負(fù) 責(zé).com域的這臺服務(wù)器竣付。這臺負(fù)責(zé)(.com)域名的服務(wù)器收到請求后诡延,如果自己無法解析,它就會找一個管理(.com)域的下一級DNS服務(wù)器地址 (tmall.com)給本地DNS服務(wù)器古胆。當(dāng)本地DNS服務(wù)器收到這個地址后肆良,就會找(tmall.com)域服務(wù)器,重復(fù)上面的動作逸绎,進(jìn)行查詢惹恃,直至找到 (www.tmall.com)主機。
6)棺牧、如果用的是轉(zhuǎn)發(fā)模式巫糙,此DNS服 務(wù)器就會把請求轉(zhuǎn)發(fā)至上一級DNS服務(wù)器,由上一級服務(wù)器進(jìn)行解析颊乘,上一級服務(wù)器如果不能解析参淹,或找根DNS或把轉(zhuǎn)請求轉(zhuǎn)至上上級,以此循環(huán)乏悄。不管是本地 DNS服務(wù)器用是是轉(zhuǎn)發(fā)浙值,還是根提示,最后都是把結(jié)果返回給本地DNS服務(wù)器檩小,由此DNS服務(wù)器再返回給客戶機亥鸠。
這里我們把從客戶端到本地DNS服務(wù)器的查找稱為遞歸查詢,而DNS服務(wù)器之間的交互查詢稱為迭代查詢识啦。
2负蚊、DNS劫持
DNS劫持又稱域名劫持,是指在劫持的網(wǎng)絡(luò)范圍內(nèi)攔截域名解析的請求颓哮,分析請求的域名家妆,把審查范圍以外的請求放行,否則返回假的IP地址或者什么都不做使請求失去響應(yīng)冕茅,其效果就是對特定的網(wǎng)絡(luò)不能反應(yīng)或訪問的是假網(wǎng)址伤极。舉一個簡單的例子,比如你輸入的域名地址是www.google.cn然后彈出來百度的頁面姨伤,很明顯發(fā)生了DNS域名劫持哨坪。
應(yīng)對DNS劫持的方法
1)、我們都知道乍楚,訪問一個網(wǎng)站用域名而不用ip地址的原因就是邏輯地址不好記当编,但是如果你知道這個網(wǎng)頁的ip地址的話,你可以直接輸入ip地址來訪問從而繞開DNS解析徒溪。
2)忿偷、將自己的電腦DNS解析地址手動設(shè)置為國內(nèi)比較權(quán)威又穩(wěn)定的服務(wù)器地址金顿,例如114.114.114.114、8.8.8.8鲤桥。
3)揍拆、修改你的路由器密碼,登錄路由器192.168.1.1茶凳,更改你的用戶密碼嫂拴,然后最好重新啟動路由器。
作為運營商來處理DNS劫持贮喧,一般運營商都會有提供多臺DNS解析服務(wù)器筒狠,負(fù)責(zé)一個區(qū)域的DNS解析至少會有兩臺,其中的一臺發(fā)生了DNS劫持運營商就會停止該服務(wù)器的網(wǎng)絡(luò)地址解析工作而啟動備預(yù)案塞淹,這樣就可以預(yù)防發(fā)生DNS劫持而導(dǎo)致用戶主機受到攻擊甚至發(fā)生某些不法的釣魚網(wǎng)站竊取用戶賬戶密碼窟蓝,造成財務(wù)損失的嚴(yán)重事故。
tmpfs是Linux/Unix系統(tǒng)上的一種基于內(nèi)存的文件系統(tǒng)饱普。tmpfs可以使用您的內(nèi)存或swap分區(qū)來存儲文件运挫。由此可見,tmpfs主要存儲暫存的文件套耕。它有如下2個優(yōu)勢:
默認(rèn)的最大一半內(nèi)存大小在某些場合可能不夠用谁帕,并且默認(rèn)的inode數(shù)量很低一般都要調(diào)高些,這時可以用mount命令來管理它冯袍。 mount -o size=1500M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm
在2G的機器上匈挖,將最大容量調(diào)到1.5G,并且inode數(shù)量調(diào)到1000000康愤,這意味著大致可存入最多一百萬個小文件儡循。
添加網(wǎng)卡之后,網(wǎng)卡無法被正確的識別和使用
排錯方法
查看/etc/udev/rules.d/70-persistent-net.rules的內(nèi)容征冷,該文件中可以查看到新添加的網(wǎng)卡的MAC地址
修改/etc/sysconfig/network-scripts/ifcfg-eth0的網(wǎng)卡的MAC地址為正確的MAC地址
使用命令ifconfig eth0 up择膝,將網(wǎng)卡啟動(可以不再使用system-config-network命令,有些linux系統(tǒng)沒有安裝相應(yīng)的包检激,可能命令無法使用)
modinfo r8169
[root@localhost named]# lspci | grep Ethernet
ethtool -s eth1 speed 100 duplex full
mii-tool -v eth1
mii-tool -F 100baseTx-FD eth0
host -a www.sina.com.cn
host -l realhostip.com
nslookup
dig +trace www.sina.com.cn
dig -t soa www.sina.com.cn
dig -x 192.168.139.3
whois
rndc-confgen
rndc status
nsupdate
yum install bind
vi /etc/named.conf
vi /var/named/example.zone
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
// Those options should be used carefully because they disable port
// randomization
// query-source port 53;
// query-source-v6 port 53;
allow-query { any; };
allow-query-cache { any; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { any; };
match-destinations { any; };
recursion yes;
include "/etc/named.rfc1912.zones";
};
https://www.cnblogs.com/JohnABC/p/5908658.html
systemctl stop firewalld.server