1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。
網橋:一種網路裝置,負責網路橋接,將網絡的多個網段在數據鏈路層連接起來。
集線器:將多條以太網線或光纖集合連接在同一段物理介質下的裝置。工作在物理層。
二層交換機:工作在數據鏈路層,交換機內部的CPU會在每個端口成功連接時,通過將MAC地址和端口對應,形成一張MAC表。在今后的通訊中,發往該MAC地址的數據包將僅送往其對應的端口,而不是所有的端口。因此,交換機可用于劃分數據鏈路層廣播,即沖突域;但它不能劃分網絡層廣播,即廣播域。
三層交換機:三層交換機可以處理第三層網絡層協議,用于連接不同網段,通過對缺省網關的查詢學習來建立兩個網段之間的直接連接。三層交換機具有一定的“路由”功能,但只能用于同一類型的局域網子網之間的互聯。這樣,三層交換機可以像二層交換機那樣通過MAC地址標識數據包,也可以向傳統路由器那樣在兩個局域網子網之間進行功能較弱的路由轉發,它的路由轉發不是通過軟件來維護的路由表。而是通過專用的ASIC芯片處理這些轉發。
路由器:提供路由與轉送兩種重要機制,可以決定數據包從來源端到目的端所經過的路由路徑,這個過程稱為路由;將路由器輸入端的數據包移送至適當的路由器輸出端,這稱為轉送。
2、IP地址的分類有哪些?子網掩碼的表示形式及其作用
IP地址分為:
A類:1.0.0.1-126.255.255.254
網絡數:126
每個網絡中的主機數:2^24-2
默認子網掩碼:255.0.0.0
私網地址:10.0.0.0/8-10.255.255.255/8
B類:128.0.0.1-191.255.255.254
網絡數:2^14
每個網絡中的主機數:2^16-2
默認子網掩碼:255.255.0.0
私網地址:172.16.0.0/16-172.31.255.255/16
C類:192.0.0.1-223.255.255.254
網絡數:2^21
每個網絡中的主機數:2^8-2
默認子網掩碼:255.255.255.0
私網地址:192.168.0.0/24-192.168.255.255/24
D類:組播 224.0.0.1-239.255.255.254
E類:240.0.0.1-255.255.255.254
子網掩碼:將IP地址劃分為網絡地址與主機地址,與IP地址相與可計算出相應主機的網絡地址
3、計算機網絡的分成模型有哪些(OSI模型和TCP/IP模型),每一層的功能及涉及到的物理設備有哪些。
(1)OSI模型:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層
①物理層(Physical layer):利用物理傳輸介質為數據鏈路層提供物理連接,
如:集線器、網線、光纖、同軸電纜等; 在這一層,數據的單位稱為比特(bit)。
物理層定義的典型規范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等
②數據鏈路層(Data link layer):將數據分幀,并處理流控制,屏蔽物理層,
為網絡層提供一個數據鏈路的連接,進行幾乎無差錯的數據傳輸,如:網卡、網橋、二層交換機;
該層的作用包括:物理地址尋址、數據的成幀、流量控制、數據的檢錯、重發等。
在這一層,數據的單位稱為幀(frame)。數據鏈路層協議的代表包括:SDLC、HDLC、PPP、STP、
幀中繼等。
③網絡層(Network layer):負責路由轉發和控制網絡擁塞,如:路由器、三層交換機等;
在這一層,數據的單位稱為數據包(packet)。網絡層協議的代表包括:IP、IPX、RIP、OSPF等。
④傳輸層(Transport layer):負責將上層數據分段并提供端到端的、可靠(TCP)
或不可靠(UDP)的數據傳輸;在這一層,數據的單位稱為數據段(segment)。
傳輸層協議的代表包括:TCP、UDP、SPX等。
⑤會話層(Session layer):負責兩個節點之間的連接和斷開;管理主機之間的會話進程,
即負責建立、管理、終止進程之間的會話。會話層還利用在數據中插入校驗點來實現數據的同步。
⑥表示層(Presentation layer):負責加密和解密;表示層的數據轉換包括數據的加密、
壓縮、格式轉換等。
⑦應用層(Application layer):用于進程間通信,常用的協議有HTTP、FTP、SMTP、TELNET等
(2)TCP/IP模型:網絡接入層 、網際互聯層、傳輸層、應用層
① 網絡接入層:與OSI參考模型中的物理層和數據鏈路層相對應,負責監視數據在主機和網絡之
間的交換;
②網際互連層:相當于OSI的網絡層,主要處理主機到主機間的通信;該層定義了分組格式和協議,
即IP協議(Internet Protocol)。除了需要完成路由的功能外,也可以完成將不同類型的網絡
(異構網)互連的任務,也需要完成擁塞控制的功能。
③傳輸層:對應于OSI參考模型的傳輸層,為應用層實體提供端到端的通信功能,保證了數據包的
順序傳送及數據的完整性,該層定義了兩種服務質量不同的協議:傳輸控制協議TCP(transmission
control protocol)和用戶數據報協議UDP(user datagram protocol)。
④應用層:對應于OSI參考模型的會話層、表示層和應用層,面向不同的網絡應用引入了不同的
應用層協議,如:文件傳輸協議(File Transfer Protocol,FTP)、虛擬終端協議(TELNET)、
超文本鏈接協議(Hyper Text Transfer Protocol,HTTP)等。
4、如何將Linux主機接入到TCP/IP網絡,請描述詳細的步驟。(手動指定的方式)
設置IP/mask vim /etc/sysconfig/network-scripts/ifcfg-eth0
設置路由:默認網關 vim /etc/sysconfig/network
設置DNS服務器:主,次,第三 vim /etc/resolv.conf
5、為Linux主機配置網絡信息的方式有哪些,請描述各個過程。
(1)編輯配置文件:
vim /etc/sysconfig/network-scripts/ifcfg-IFACE
vim /etc/resolv.conf
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
(2)通過圖形界面:system-config-network-tui
(3)通過命令:
①通過ifconfig命令設置IP地址與子網掩碼
ifconfig eth0 [up|down]
ifconfig IFACE 192.168.99.95/24
ifconfig IFACE 192.168.99.95 netmask 255.255.255.0
②通過route命令添加路由條目
route add -host 192.168.99.95 gw 192.168.89.1 dev eth0
route add -net 192.168.99.0 netmask 255.255.255.0 gw 192.168.98.1 dev eth0
route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.89.1
route add default gw 192.168.89.1
route del -host 192.168.99.95
route del -net 192.168.0.0 netmask 255.255.255.0
route del default gw 192.168.89.1
③通過ip命令設置IP地址,子網掩碼與路由條目
ip link set dev eth0 [up|down]
ip link show [dev IFACE] [up]
ip addr add 172.16.10.13/16 dev eth0
ip addr del 172.16.10.13/16 dev eth0
ip addr show [dev IFACE]
ip addr flush [dev IFACE]
ip route add 192.168.1.3 via 172.16.0.1 dev eth0
ip route add 192.168.0.0/24 via 172.16.0.1 dev eth0
ip route add default via 172.16.0.1
ip route del 192.168.1.3
ip route del 192.168.0.0/24
ip route del default
ip route show [dev IFACE] [via PREFIX]
ip route flush [dev IFACE] [via PREFIX]
CentOS 7
nmcli device show
nmcli d connect IFACE
nmcli d disconnect IFACE
nmcli connection show [IFACE]
nmcli c modify IFACE ipv4.addresses 172.16.100.12/16
nmcli c modify IFACE -ipv4.addresses 172.16.100.12/16
nmcli c modify IFACE +ipv4.addresses 172.16.100.12/16
nmcli c down IFACE;nmcli c up IFACE(需禁用并啟用網卡激活配置)
nmcli c modify IFACE ipv4.gateway 172.16.0.1
nmcli c modify IFACE ipv4.dns 172.16.0.1
nmcli c modify IFACE +ipv4.dns 8.8.8.8
(ipv4.gateway/ipv4.dns1/ipv4.method manual)
6、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態;
在線的主機使用綠色顯示;
不在線的主使用紅色顯示;
7、詳細描述每個網絡接口的配置文件中各個參數的含義和其所對應的值;
IP,MASK,GW,DNS配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
DEVICE=此配置文件應用到的設置(eth0)
HWADDR=對應設備的MAC地址
BOOTPROTO=激活此設備時使用的地址配置協議,常用的dhcp,static,none,bootp
NM_CONTROLLED=NM是NetworkManager的簡寫:此網卡是否接受NM控制(CentOS6建議為no)
ONBOOT=在系統引導時是否激活此設備
TYPE=接口類型,常見有Ethernet,Bridge
UUID=設備的唯一標示
IPADDR=指明IP地址
NETMASK=子網掩碼
GATEWAY=默認網關
DNS1=第1個DNS服務器指向
DNS2:第2個DNS服務器指向
USERCTL=普通用戶是否可控制此設備
PEERDNS=如果BOOTPROTO的值為dhcp,是否允許dhcp server分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf文件中
路由相關配置文件:/etc/sysconfig/network-scripts/route-IFACE(默認不存在,需要自行創建)
兩種風格:
1.TARGET via GW
# 192.168.0.0/24 via 172.16.0.1
2.每三行定義一條路由
ADDRESS#=TARGET
NETMASK#=MASK
GATEWAY#=GW
# ADDRESS0=192.168.20.0
# NETMASK0=255.255.255.0
# GATEWAY0=172.16.0.1
# ADDRESS1=192.168.30.0
# NETMASK1=255.255.255.0
# GATEWAY1=172.16.0.1
8、如何給網絡接口配置多個地址,有哪些方式?
①ifconfig
# ifconfig eth0:0 192.168.0.22/24
②ip
# ip addr add 192.168.0.22/24 dev eth0
# ip addr add 192.168.0.22/24 dev eth0 label 'eth0:0'
③配置文件
# ifcfg-IFACE_ALIAS
# DEVICE=IFACE_ALIAS
刪除其中的HWADDR與UUID,如果沒有其他網關作為出口,也可以將GATEWAY刪除
9、常用的網絡管理類工具有哪些,并用示例形式描述他們的使用方法。
ifcfg:
ifconfig命令:
ifconfig [interface]
ifconfig IFACE [up|down]
ifconfig IFACE IP/mask [up]
ifconfig IFACE IP netmask MASK
# ifconfig -a
# ifconfig eth0 172.16.100.11/16
# ifconfig eth0 172.16.100.11 netmask 255.255.0.0
# ifconfig eth0:0 172.16.101.11/16
route命令:
# route -n
route add [-net|-host] target[netmask NM] [gw GW] [[dev] IF]
# route add – host 192.168.1.3 gw 172.16.0.1 dev eth0
# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.1.0 dev eth0
# route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
# route add default gw 172.16.0.1
route del [-net|-host] target [gw GW] [netmask NM] [[dev] IF]
# route del -host 192.168.1.3
# route del -net 192.168.0.0 netmask 255.255.255.0
netstat命令:
netstat
-t:tcp協議相關
-u:udp協議相關
-w:raw socket相關
-l:處于監聽狀態
-a:所有狀態
-n:以數字顯示
-e:擴展格式的信息
-p:顯示相關進程及PID
常用組合:-tan,-uan,-tnl,-unl
顯示路由表:
netstat -rn
顯示接口統計數據:
netstat -i 所有接口
netstat -IIFACE 指定接口
ip:
ip link set dev IFACE [up|down]
# ip link set dev eth0 down
# ip link set dev eth0 up
ip link show [dev IFACE] [up]
# ip link show dev eth0
# ip link show up
ip addr {add|del} IPADDR dev STRING [label LABEL] [scope {global|link|host}] [broadcast ADDRESS]
# ip addr add 172.16.100.13/16 dev eth0
# ip addr add 172.16.100.14/16 dev eth0 label 'eth0:0'
# ip addr del 172.16.100.13/16 dev eth0
# ip addr del 172.16.100.14/16 dev eth0 label 'eth0:0'
ip addr show [dev IFACE] [label PATTERN] [primary and secondary]
# ip addr show dev eth0
# ip addr show label 'eth0:*'
# ip addr show secondary
ip addr flush
# ip addr flush dev eth0 label 'eth0:*'
ip route {add|del} TARGET via GW dev IFACE src SOURCE_IP
# ip route add 192.168.1.3 via 172.16.0.1 dev eth0
# ip route add 192.168.0.0/24 via 172.16.0.1
# ip route add default via 172.16.0.1
# ip route del 192.168.1.3
# ip route del 192.168.0.0/24
# ip route del default
ip route show [dev IFACE] [via PREFIX]
# ip route show dev eth0
# ip route show via 172.16.0.1
ip route flush [dev IFACE] [via PREFIX]
# ip route flush dev eth0
# ip route flush via 172.16.0.1
ss命令:
ss [option]…[FILTER]
-t:tcp協議相關
-u:udp協議相關
-w:裸套接字相關
-x:unix sock相關
-l:listen狀態的連接
-a:所有
-n:數字格式
-p:相關的程序及PID
-e:擴展的信息
-m:內存用量
-o:計時器信息
FILTER=[state TCP-STATE] [EXPRESSION]
TCP的常見狀態:
tcp finite state machine
LISTEN
ESTABLISHED
FIN_WAIT_1
FIN_WAIT_2
SYN_SENT
SYN_RECV
CLOSED
# ss -tan state ESTABLISHED
EXPRESSION:
dport:目標端口 sport:源端口
# ss -tan '( dport = :ssh or sport = :ssh )'
10、Linux系統軟件包管理方法(安裝、升級、卸載等操作)有哪些,以及如何管理的。
安裝:
rpm {-i|–install} [install-options] PACKAGE_FILE…
-v:verbose
-vv:a lot of verbose
-h:以#顯示程序包管理執行進度,每個#表示2%的進度
[install-options]
–test:測試安裝,但不真正執行安裝過程;dry run模式
–nodeps:忽略依賴關系
–replacepkgs:重新安裝
–nosignature:不檢查來源合法性
–nodigest:不檢查包完整性
–noscripts:不執行程序包中的腳本片段
%pre:安裝前腳本 –nopre
%post:安裝后腳本 –nopost
%preun:卸載前腳本 –nopreun
%postun:卸載后腳本 –nopostun
# rpm -ivh zsh-5.0.2-7.el7.x86_64.rpm
# rpm -ivh –test php-fpm-5.4.16-23.el7_0.3.x86_64.rpm
# rpm -ivh –replacepkgs zsh-5.0.2-7.el7.x86_64.rpm –nodigest –nosignature
升級:
rpm {-U|–upgrade} [install-options] PACKAGE_FILE…
rpm {-F|–freshen} [install-options] PACKAGE_FILE…
upgrade:安裝有舊版程序包,則升級,不存在舊版,則安裝
freshen:安裝有舊版程序包,則升級,不存在舊版,則不執行升級操作
–oldpackage:降級
–force:強行升級
# rpm -Uvh PACKAGE_FILE
# rpm -Fvh PACKAGE_FILE
注意:
1.不要對內核做升級操作:linux支持多內核版本并存,因此,直接安裝新版本內核
2.如果原程序包的配置文件安裝后曾被修改,升級時,新版本提供的同一配置文件不會直接覆蓋老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留
查詢:
rpm {-q|–query} [select-options] [query-options]
[select-options]
-a:所有安裝的包
-f:查詢指定的文件由哪個程序包安裝生成
-p /PATH/TO/PACKAGE_FILE:針對尚未安裝的程序包文件做查詢操作
–whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個包所提供
–whatrequires CAPABILITY:查詢指定的CAPABILITY被哪個包所依賴
[query-options]
–changelog:查詢rpm包的change log
-c:查詢程序包的配置文件
-d:查詢程序包的文檔(幫助文檔等)
-i:查詢程序包的信息
-l:查詢程序包安裝后生成的所有文件
–scripts:查詢程序包自帶的腳本文件
-R:查詢指定的程序包所依賴的CAPABILITY
–provides:列出程序包所提供的CAPABILITY
# rpm -qa
# rpm -qf /etc/issue
# rpm -qlp zsh.rpm
# rpm -q –whatprovides /bin/cat
# rpm -q –whatrequires /bin/cat
# rpm -q –changelog zsh
# rpm -qc zsh
# rpm -qd zsh
# rpm -qi zsh
# rpm -ql zsh
# rpm -q –scripts zsh
# rpm -qR zsh
# rpm -q –provides zsh
# rpm -q –conflicts zsh
卸載:
rpm {-e|–erase} PACKAGE_FILE…
–nodeps:忽略依賴關系
# rpm -e zsh
# rpm -e –nodeps zsh
校驗(已安裝的程序包):
rpm {-V|–verify} [select-options] [verify-options]
S file size differs(大小不同)
M mode differs(權限不同)
5 digest differs(MD5碼不同)
D device majoy/minor number mismatch(設備文件主次設備號不匹配)
L readlink(2) path mismatch(路徑不匹配)
U user ownership differs(屬主不匹配)
G group ownership differs(屬組不匹配)
T mtime differs(最近一次修改時間不匹配)
P capabilities differ(功能不同)
導入:
rpm –import /PATH/FROM/GPG-PUBKEY-FILE:導入密鑰文件
# rpm –import RPM-GPG-KEY-CentOS-7
檢驗(程序包文件的來源合法性和包完整性):
rpm {-K|–checksig} [–nodigest] [–nosignature]
數據庫重建:
rpm {–initdb|–rebuilddb}
–initdb:初始化,如果事先不存在數據庫,則新建之;否則,不執行任何操作
–rebuilddb:重建,無論當前存在與否,直接重新創建數據庫
11、如何使用發行版光盤作為yum repository,請描述該過程。
mount -r -t iso9660 /dev/cdrom /mnt
vim /etc/yum.repos.d/CentOS-Cdrom.repo
[cdrom]
name=CentOS-Cdrom
baseurl=file:///mnt
gpgcheck=0
yum repolist
12、寫一個腳本,完成以下功能
(1) 假設某目錄(/etc/rc.d/rc3.d/)下分別有K開頭的文件和S開頭的文件若干;
(2) 顯示所有以K開頭的文件的文件名,并且給其附加一個stop字符串;
(3) 顯示所有以S開頭的文件的文件名,并且給其附加一個start字符串;
(4) 分別統計S開頭和K開頭的文件各有多少;
13、寫一個腳本,完成以下功能
(1) 腳本能接受用戶名作為參數;
(2) 計算此些用戶的ID之和;
14、寫一個腳本
(1) 傳遞一些目錄給此腳本;
(2) 逐個顯示每個目錄的所有一級文件或子目錄的內容類型;
(3) 統計一共有多少個目錄;且一共顯示了多少個文件的內容類型;
15、寫一個腳本
通過命令行傳遞一個參數給腳本,參數為用戶名
如果用戶的id號大于等于500,則顯示此用戶為普通用戶;
16、寫一個腳本
(1) 添加10用戶user1-user10;密碼同用戶名;
(2) 用戶不存在時才添加;存在時則跳過;
(3) 最后顯示本次共添加了多少用戶;
17、寫一腳本,用ping命令測試172.16.250.20-172.16.250.100以內有哪些主機在線,將在線的顯示出來;
18、打印九九乘法表;
原創文章,作者:IntoTheNight,如若轉載,請注明出處:http://www.www58058.com/31978
寫的很好,排版還可以在漂亮一點,加油