時間同步:多主機協做工做時,各個主機的時間同步很重要,時間不一致會形成不少重要應用的故障,如:加密協議,日誌,集羣等, 利用NTP(Network Time Protocol) 協議使網絡中的各個計算機時間達到同步。目前NTP協議屬於運維基礎架構中必備的基本服務之一
時間同步實現:ntp,chrony
ntp:將系統時鐘和世界協調時UTC同步,精度在局域網內可達0.1ms,在互聯網上絕大多數的地方精度能夠達到1-50ms,項目官網:http://www.ntp.org
chrony:實現NTP協議的的自由軟件。可以使系統時鐘與NTP服務器,參考時鐘(例如GPS接收器)以及使用手錶和鍵盤的手動輸入進行同步。還能夠做爲NTPv4(RFC 5905)服務器和對等體運行,爲網絡中的計算機提供時間服務。設計用於在各類條件下良好運行,包括間歇性和高度擁擠的網絡鏈接,溫度變化(計算機時鐘對溫度敏感),以及不能連續運行或在虛擬機上運行的系統。經過Internet同步的兩臺機器之間的典型精度在幾毫秒以內,在LAN上,精度一般爲幾十微秒。利用硬件時間戳或硬件參考時鐘,可實現亞微秒的精度html
chrony 的優點:
更快的同步只須要數分鐘而非數小時時間,從而最大程度減小了時間和頻率偏差,對於並不是全天 24 小時運行的虛擬計算機而言很是有用
可以更好地響應時鐘頻率的快速變化,對於具有不穩定時鐘的虛擬機或致使時鐘頻率發生變化的節能技術而言很是有用
在初始同步後,它不會中止時鐘,以防對須要系統時間保持單調的應用程序形成影響
在應對臨時非對稱延遲時(例如,在大規模下載形成連接飽和時)提供了更好的穩定性
無需對服務器進行按期輪詢,所以具有間歇性網絡鏈接的系統仍然能夠快速同步時鐘
chrony官網:https://chrony.tuxfamily.org
chrony官方文檔:https://chrony.tuxfamily.org/documentation.htmllinux
包:chrony
兩個主要程序:chronyd和chronyc
chronyd:後臺運行的守護進程,用於調整內核中運行的系統時鐘和時鐘服務器同步。它肯定計算機增減時間的比率,並對此進行補償
chronyc:命令行用戶工具,用於監控性能並進行多樣化的配置。它能夠在chronyd實例控制的計算機上工做,也可在一臺不一樣的遠程計算機上工做
服務unit 文件: /usr/lib/systemd/system/chronyd.service
監聽端口: 323/udp,123/udp
配置文件: /etc/chrony.confweb
配置文件chrony.confredis
server - 可用於時鐘服務器,iburst 選項當服務器可達時,發送一個八個數據包而不是一般的一個數據包。 包間隔一般爲2秒,可加快初始同步速度
driftfile - 根據實際時間計算出計算機增減時間的比率,將它記錄到一個文件中,會在重啓後爲系統時鐘做出補償
rtcsync - 啓用內核模式,系統時間每11分鐘會拷貝到實時時鐘(RTC)
allow / deny - 指定一臺主機、子網,或者網絡以容許或拒絕訪問本服務器
cmdallow / cmddeny - 能夠指定哪臺主機能夠經過chronyd使用控制命令
bindcmdaddress - 容許chronyd監聽哪一個接口來接收由chronyc執行的命令
makestep - 一般chronyd將根據需求經過減慢或加速時鐘,使得系統逐步糾正全部時間誤差。在某些特定狀況下,系統時鐘可能會漂移過快,致使該調整過程消耗很長的時間來糾正系統時鐘。該指令強制chronyd在調整期大於某個閥值時調整系統時鐘
local stratum 10 - 即便server指令中時間服務器不可用,也容許將本地時間做爲標準時間授時給其它客戶端windows
chronyc命令
help命令能夠查看更多chronyc的交互命令
accheck 檢查是否對特定主機可訪問當前服務器
activity 顯示有多少NTP源在線/離線
sources [-v] 顯示當前時間源的同步信息
sourcestats [-v]顯示當前時間源的同步統計信息
add server 手動添加一臺新的NTP服務器
clients 報告已訪問本服務器的客戶端列表
delete 手動移除NTP服務器或對等服務器
settime 手動設置守護進程時間
sracking 顯示系統時間信息centos
[root@centos7 ~]#chronyc
chrony version 3.2
Copyright (C) 1997-2003, 2007, 2009-2017 Richard P. Curnow and others
chrony comes with ABSOLUTELY NO WARRANTY. This is free software, and
you are welcome to redistribute it under certain conditions. See the
GNU General Public License version 2 for details.
chronyc> clients
Hostname NTP Drop Int IntL Last Cmd Drop Int Last
===============================================================================
192.168.8.7 18 0 6 - 17 0 0 - -
192.168.8.6 14 0 6 - 56 0 0 - -
chronyc> activity
200 OK
1 sources online
0 sources offline
0 sources doing burst (return to online)
0 sources doing burst (return to offline)
0 sources with unknown address
chronyc> sources -v
210 Number of sources = 1
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? 192.168.8.100 3 8 1 338 -40ms[ -40ms] +/- 237ms緩存
pool.ntp.org:項目是一個提供可靠易用的NTP服務的虛擬集羣cn.pool.ntp.org,0-3.cn.pool.ntp.org
阿里雲公共NTP服務器
Unix/linux類:ntp.aliyun.com,ntp1-7.aliyun.com
windows類: time.pool.aliyun.com
大學ntp服務
s1a.time.edu.cn 北京郵電大學 s1b.time.edu.cn 清華大學 s1c.time.edu.cn 北京大學
國家授時中心服務器
210.72.145.44服務器
查看日期時間、時區及NTP狀態:timedatectl
查看時區列表:timedatectl list-timezones
修改時區:timedatectl set-timezone Asia/Shanghai
修改日期時間:timedatectl set-time "2017-01-23 10:30:00"
開啓NTP: timedatectl set-ntp true/flase
system-config-date:圖形化配置chrony服務的工具網絡
MBR:isolinux/boot.cat
stage2: isolinux/isolinux.bin
配置文件:isolinux/isolinux.cfg
每一個對應的菜單選項:
加載內核:isolinuz/vmlinuz
向內核傳遞參數:append initrd=initrd.img ...
裝載根文件系統,並啓動anaconda
默認啓動GUI接口
如果顯式指定使用TUI接口:向內核傳遞text參數便可
(1)按tab鍵,在後面增長text
(2)按ESC鍵:boot: linux text架構
Anaconda安裝系統分紅三個階段:
安裝前配置階段
安裝過程使用的語言
鍵盤類型
安裝目標存儲設備
Basic Storage:本地磁盤
特殊設備:iSCSI
設定主機名
配置網絡接口
時區
管理員密碼
設定分區方式及MBR的安裝位置
建立一個普通用戶
選定要安裝的程序包
安裝階段
在目標磁盤建立分區,執行格式化操做等
將選定的程序包安裝至目標位置
安裝bootloader和initramfs
圖形模式首次啓動
iptables
selinux
core dump
啓動安裝過程通常應位於引導設備;後續的anaconda及其安裝用到的程序包等可來自下面幾種方式:
本地光盤
本地硬盤
NFS
URL:
ftp server: yum repository
http server: yum repostory
若是想手動指定安裝源:
boot: linux askmethod
Centos 6
DVD drive repo=cdrom :device
Hard Drive repo=hd:device/path
HTTP Server repo=http://host/path
HTTPS Server repo=https://host/path
FTP Server repo=ftp://username:password@host/path
NFS Server repo=nfs:server:/path
ISO images on an NFS Server repo=nfsiso:server:/path
Centos 7
Any CD/DVD drive inst.repo=cdrom
Hard Drive inst.repo=hd:device:/path
HTTP Server inst.repo=http://host/path
HTTPS Server inst.repo=https://host/path
FTP Server inst.repo=ftp://username:password@host/path
NFS Server inst.repo=nfs:[options:]server:/path
anaconda的配置方式:
(1) 交互式配置方式
(2) 經過讀取事先給定的配置文件自動完成配置
按特定語法給出的配置選項
kickstart文件
安裝boot引導選項:boot:
text: 文本安裝方式
askmethod: 手動指定使用的安裝方法
與網絡相關的引導選項:
ip=IPADDR
netmask=MASK
gateway=GW
dns=DNS_SERVER_IP
ifname=NAME:MAC_ADDR
與遠程訪問功能相關的引導選項:
vnc
vncpassword='PASSWORD'
指明kickstart文件的位置: ks=
DVD drive: ks=cdrom:/PATH/TO/KICKSTART_FILE
Hard drive: ks=hd:device:/directory/KICKSTART_FILE
HTTP server: ks=http://host:port/path/to/KICKSTART_FILE
FTP server: ks=ftp://host:port/path/to/KICKSTART_FILE
HTTPS server: ks=https://host:port/path/to/KICKSTART_FILE
NFS server:ks=nfs:host:/path/to/KICKSTART_FILE
啓動緊急救援模式:
rescue
官方文檔:《Installation Guide》
Kickstart文件格式官方說明:
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/installation_guide/sect-kickstart-syntax
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/installation_guide/s1-kickstart2-options
命令段:指明各類安裝前配置,如鍵盤類型等
程序包段:指明要安裝的程序包組或程序包,不安裝的程序包等
%packages
@group_name
package
-package
%end
腳本段:
%pre: 安裝前腳本
運行環境:運行於安裝介質上的微型Linux環境
%post: 安裝後腳本
運行環境:安裝完成的系統
命令段中的命令:
必備命令
authconfig: 認證方式配置
authconfig --useshadow --passalgo=sha512
bootloader:bootloader的安裝位置及相關配置
bootloader --location=mbr --driveorder=sda –
append="crashkernel=auto rhgb quiet"
keyboard: 設定鍵盤類型
lang: 語言類型
part: 建立分區
rootpw: 指明root的密碼
timezone: 時區
可選命令
install OR upgrade
text: 文本安裝界面
network
firewall
selinux
halt
poweroff
reboot
repo
user:安裝完成後爲系統建立新用戶
url: 指明安裝源
key –skip 跳過安裝號碼,適用於rhel版本
建立kickstart文件的方式
直接手動編輯
依據某模板修改
可以使用建立工具:system-config-kickstart
依據某模板修改並生成新配置
/root/anaconda-ks.cfg
檢查ks文件的語法錯誤:ksvalidator
ksvalidator /PATH/TO/KICKSTART_FILE
solinux.bin:光盤引導程序,在mkisofs的選項中須要明確給出文件路徑,這個文件屬於SYSLINUX項目
isolinux.cfg:isolinux.bin的配置文件,當光盤啓動後(即運行isolinux.bin),會自動去找isolinux.cfg文件
vesamenu.c32:是光盤啓動後的安裝圖形界面,也屬於SYSLINUX項目,menu.c32版本是純文本的菜單
Memtest:內存檢測,這是一個獨立的程序
splash.jgp:光盤啓動界面的背景圖
vmlinuz是內核映像
initrd.img是ramfs (先cpio,再gzip壓縮)
-o 指定映像文件的名稱。
-b 指定在製做可開機光盤時所需的開機映像文件。
-c 製做可開機光盤時,會將開機映像文件中的 no-eltorito-catalog 所有內容做成一個文件。
-no-emul-boot 非模擬模式啓動。
-boot-load-size 4 設置載入部分的數量
-boot-info-table 在啓動的圖像中現實信息
-R 或 -rock 使用 Rock RidgeExtensions
-J 或 -joliet 使用 Joliet 格式的目錄與文件名稱
-v 或 -verbose 執行時顯示詳細的信息
-T 或 -translation-table 創建文件名的轉換表,適用於不支持 Rock Ridge Extensions 的系統上
網絡配置
靜態指定
動態獲取: bootp:boot protocol MAC與IP一一靜態對應
dhcp:加強的bootp,動態
DHCP: (Dynamic Host Configuration Protocol)
動態主機配置協議
局域網協議,UDP協議
主要用途:
用於內部網絡和網絡服務供應商自動分配IP地址給用戶
用於內部網絡管理員做爲對全部電腦做集中管理的手段
使用場景
自動化安裝系統
解決IPV4資源不足問題
DHCP共有八種報文
DHCP DISCOVER:客戶端到服務器
DHCP OFFER :服務器到客戶端
DHCP REQUEST:客戶端到服務器
DHCP ACK :服務器到客戶端
DHCP NAK:服務器到客戶端,通知用戶沒法分配合適的IP地址
DHCP DECLINE :客戶端到服務器,指示地址已被使用
DHCP RELEASE:客戶端到服務器,放棄網絡地址和取消剩餘的租約時間
DHCP INFORM:客戶端到服務器, 客戶端若是須要從DHCP服務器端獲取更爲詳細的配置信息,則發送Inform報文向服務器進行請求,極少用到
續租
50% :租賃時間達到50%時來續租,剛向DHCP服務器發向新的DHCPREQUEST請求。若是dhcp服務沒有拒絕的理由,則迴應DHCPACK信息。當DHCP客戶端收到該應答信息後,就從新開始新的租用週期
87.5%:若是以前DHCP Server沒有迴應續租請求,等到租約期的7/8時,主機會再發送一次廣播請求
DNS:Domain Name System 應用層協議
C/S,53/udp, 53/tcp
BIND:Bekerley Internat Name Domain
ISC (www.isc.org)
本地名稱解析配置文件:hosts
/etc/hosts
%WINDIR%/system32/drivers/etc/hosts
122.10.117.2 www.magedu.com
93.46.8.89 www.google.com
根域
一級域名:Top Level Domain: tld
com, edu, mil, gov, net, org, int,arpa
三類:組織域、國家域(.cn, .ca, .hk, .tw)、反向域
二級域名
三級域名
最多127級域名
ICANN(The Internet Corporation for Assigned Names and Numbers)互聯網名稱與數字地址分配機構,負責在全球範圍內對互聯網通用頂級域名(gTLD)以及國家和地區頂級域名(ccTLD)系統的管理、以及根服務器系統的管理
DNS查詢類型:
遞歸查詢
迭代查詢
名稱服務器:域內負責解析本域內的名稱的主機
根服務器:13組服務器
解析類型:
FQDN --> IP
IP --> FQDN
注意:正反向解析是兩個不一樣的名稱空間,是兩棵不一樣的解析樹
DNS服務器的類型:
主DNS服務器
從DNS服務器
緩存DNS服務器(轉發器)
主DNS服務器:管理和維護所負責解析的域內解析庫的服務器
從DNS服務器:從主服務器或從服務器「複製」(區域傳輸)解析庫副本
序列號:解析庫版本號,主服務器解析庫變化時,其序列遞增
刷新時間間隔:從服務器從主服務器請求同步解析的時間間隔
重試時間間隔:從服務器請求同步失敗時,再次嘗試時間間隔
過時時長:從服務器聯繫不到主服務器時,多久後中止服務
「通知」機制:主服務器解析庫發生變化時,會主動通知從服務器
區域傳輸:
徹底傳輸:傳送整個解析庫
增量傳輸:傳遞解析庫變化的那部份內容
Domain: Fully Qualified Domain Name 正向:FQDN --> IP
反向: IP --> FQDN
負責本地域名的正向和反向解析庫
正向區域
反向區域
一次完整的查詢請求通過的流程:
Client -->hosts文件 -->DNS Service Local Cache --> DNS Server (recursion) --> Server Cache --> iteration(迭代) --> 根--> 頂級域名DNS-->二級域名DNS…
解析答案:
確定答案:
否認答案:請求的條目不存在等緣由致使沒法返回結果
權威答案:
非權威答案:
區域解析庫:由衆多RR組成:
資源記錄:Resource Record, RR
記錄類型:A, AAAA, PTR, SOA, NS, CNAME, MX
SOA:Start Of Authority,起始受權記錄;一個區域解析庫有且僅能有一個SOA記錄,必須位於解析庫的第一條記錄
A:internet Address,做用,FQDN --> IP
AAAA:FQDN --> IPv6
PTR:PoinTeR,IP --> FQDN
NS:Name Server,專用於標明當前區域的DNS服務器
CNAME : Canonical Name,別名記錄
MX:Mail eXchanger,郵件交換器
TXT:對域名進行標識和說明的一種方式,通常作驗證記錄時會使用此項,如:SPF(反垃圾郵件)記錄,https驗證等
示例:_dnsauth TXT 2012011200000051qgs69bwoh4h6nht4n1h0lr038x
資源記錄定義的格式:
語法:name [TTL] IN rr_type value
注意:
(1) TTL可從全局繼承
(2) @可用於引用當前區域的名字
(3) 同一個名字能夠經過多條記錄定義多個不一樣的值;此時DNS服務器會以輪詢方式響應
(4) 同一個值也可能有多個不一樣的定義名字;經過多個不一樣的名字指向同一個值進行定義;此僅表示經過多個不一樣的名字能夠找到同一個主機
name: 當前區域的名字,例如「magedu.com.」
value: 有多部分組成
(1) 當前區域的主DNS服務器的FQDN,也可使用當前區域的名字;
(2) 當前區域管理員的郵箱地址;但地址中不能使用@符號,通常用.替換
例如:admin.magedu.com
(3) 主從服務區域傳輸相關定義以及否認的答案的統一的TTL
例如:
magedu.com. 86400 IN SOA ns.magedu.com. nsadmin.magedu.com. (
2015042201 ;序列號
2H ;刷新時間
10M ;重試時間
1W ;過時時間
1D ;否認答案的TTL值
)
name: 當前區域的名字
value: 當前區域的某DNS服務器的名字,例如ns.magedu.com.
注意:一個區域能夠有多個NS記錄
例如:
magedu.com. IN NS ns1.magedu.com.
magedu.com. IN NS ns2.magedu.com.
注意:
(1) 相鄰的兩個資源記錄的name相同時,後續的可省略
(2) 對NS記錄而言,任何一個ns記錄後面的服務器名字,都應該在後續有一個A記錄
name: 當前區域的名字
value: 當前區域的某郵件服務器(smtp服務器)的主機名
一個區域內,MX記錄可有多個;但每一個記錄的value以前應該有一個數字(0-99),表示此服務器的優先級;數字越小優先級越高
例如:
magedu.com. IN MX 10 mx1.magedu.com.
IN MX 20 mx2.magedu.com.
注意:對MX記錄而言,任何一個MX記錄後面的服務器名字,都應該在後續有一個A記錄
name: 某主機的FQDN,例如:www.magedu.com.
value: 主機名對應主機的IP地址
例如:
www.magedu.com. IN A 1.1.1.1
www.magedu.com. IN A 2.2.2.2
mx1.magedu.com. IN A 3.3.3.3
mx2.magedu.com. IN A 4.4.4.4
$GENERATE 1-254 HOST$ IN A 1.2.3.$
*.magedu.com. IN A 5.5.5.5
magedu.com. IN A 6.6.6.6
避免用戶寫錯名稱時給錯誤答案,可經過泛域名解析進行解析至某特定地址
AAAA:
name: FQDN
value: IPv6
PTR:
name: IP,有特定格式,把IP地址反過來寫,1.2.3.4,要寫做4.3.2.1;而有特定後綴:in-addr.arpa.,因此完整寫法爲:4.3.2.1.in-addr.arpa.
value: FQDN
例如:
4.3.2.1.in-addr.arpa. IN PTR www.magedu.com.
如1.2.3爲網絡地址,可簡寫成:
4 IN PTR www.magedu.com.
注意:網絡地址及後綴可省略;主機地址依然須要反着寫
CNAME:
name: 別名的FQDN
value: 真正名字的FQDN
例如:
www.magedu.com. IN CNAME websrv.magedu.com.
子域受權:每一個域的名稱服務器,都是經過其上級名稱服務器在解析庫進行受權相似根域受權tld:.com. IN NS ns1.com..com. IN NS ns2.com.ns1.com. IN A 2.2.2.1ns2.com. IN A 2.2.2.2magedu.com. 在.com的名稱服務器上,解析庫中添加資源記錄magedu.com. IN NS ns1.magedu.com.magedu.com. IN NS ns2.magedu.com.magedu.com. IN NS ns3.magedu.com.ns1.magedu.com. IN A 3.3.3.1ns2.magedu.com. IN A 3.3.3.2ns3.magedu.com. IN A 3.3.3.3glue record:粘合記錄,父域受權子域的記錄