1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。
網橋:橋接器,是連接兩個局域網的一種存儲/轉發設備,它能將一個大的LAN分割為多個網段,或將兩個以上的LAN互聯為一個邏輯LAN,使LAN上的所有用戶都可訪問服務器 集線器:集線器的英文稱為“Hub”.集線器(hub)屬于純硬件網絡底層設備,基本上不具有類似于交換機的"智能記憶"能力和"學習"能力,大多數的時候它用在星型與樹型網絡拓撲結構中 二層交換機:二層交換機工作于OSI模型的第2層(數據鏈路層),故而稱為二層交換機,二層交換機屬數據鏈路層設備,可以識別數據包中的MAC地址信息,根據MAC地址進行轉發,并將這些MAC地址與對應的端口記錄在自己內部的一個地址表中。主要應用于底層子網絡中,即接入層中 三層交換機:三層交換機就是具有部分路由器功能的交換機,三層交換機的最重要目的是加快大型局域網內部的數據交換,所具有的路由功能也是為這目的服務的,能夠做到一次路由,多次轉發。在企業網中,一般會將三層交換機用在網絡的核心層,用三層交換機上的千兆端口或百兆端口連接不同的子網或VLAN。 路由器:路由器(Router)又稱網關設備(Gateway)是用于連接多個邏輯上分開的網絡,所謂邏輯網絡是代表一個單獨的網絡或者一個子網。當數據從一個子網傳輸到另一個子網時,可通過路由器的路由功能來完成。路由器(Router),是連接因特網中各局域網、廣域網的設備,它會根據信道的情況自動選擇和設定路由,以最佳路徑,按前后順序發送信號。
2、IP地址的分類有哪些?子網掩碼的表示形式及其作用
IP地址根據網絡ID的不同分為5種類型,A類地址、B類地址、C類地址、D類地址和E類地址 子網掩碼的表示形式 1. 通常的表示方式,如:255.255.255.0 2. 192.168.100.0/24 * 表示子網掩碼是24位,子網掩碼為:255.255.255.0 子網掩碼的作用 它的主要作用有兩個,一是用于屏蔽IP地址的一部分以區別網絡標識和主機標識,并說明該IP地址是在局域網上,還是在遠程網上。二是用于將一個大的IP網絡劃分為若干小的子網絡
3、計算機網絡的分成模型有哪些(OSI模型和TCP/IP模型),每一層的功能及涉及到的物理設備有哪些。
OSI七層參考模型:物理層,鏈路層,網絡層,傳輸層,回話層,表示層,應用層 應用層 提供為應用軟件而設的界面,以設置與另一應用軟件之間的通信。例如: HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等。 表示層 把數據轉換為能與接收者的系統格式兼容并適合傳輸的格式。 會話層 負責在數據傳輸中設置和維護電腦網絡中兩臺電腦之間的通信連接。 傳輸層 把傳輸表頭(TH)加至數據以形成數據包。傳輸表頭包含了所使用的協議等發送信息。例如:傳輸控制協議義(TCP) 等。 網絡層 決定數據的路徑選擇和轉寄,將網絡表頭(NH)加至數據包,以形成分組。網絡表頭包含了網絡數據。例如:互聯網協議(IP) 等 數據鏈接路層 負責網絡尋址、錯誤偵測和改錯。當表頭和表尾被加至數據包時,會形成了幀。數據鏈表頭(DLH)是包含了物理地址和錯誤偵測及改錯的方法。數據鏈表尾(DLT)是一串指示數據包末端的字符串。例如以太網、無線局域網(Wi-Fi)和通用分組無線服務(GPRS)等。 物理層 在局部局域網上傳送幀,它負責管理電腦通信設備和網絡媒體之間的互通。包括了針腳、電壓、線纜規范、集線器、中繼器、網卡、主機適配器等。 TCP/IP4層參考模型:網絡接口層,互聯層,傳輸層,應用層 應用層 提供為應用軟件而設的界面,以設置與另一應用軟件之間的通信。例如: HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等。表示層 把數據轉換為能與接收者的系統格式兼容并適合傳輸的格式。會話層 負責在數據傳輸中設置和維護電腦網絡中兩臺電腦之間的通信連接。 傳輸層 把傳輸表頭(TH)加至數據以形成數據包。傳輸表頭包含了所使用的協議等發送信息。例如:傳輸控制協議義(TCP) 等
4、如何將Linux主機接入到TCP/IP網絡,請描述詳細的步驟。(手動指定的方式)
1)編輯文件/etc/sysconfig/network-scripts/ifcfg-eth0-->添加IP,網關,掩碼,DNS1,設置地址分配為靜態 2)編輯文件/etc/hosts-->修改hostname 3)編輯文件/etc/resolv.conf-->修改nameserver,如果在ifcfg-eth0中設置就可以不用設置了 4)重新啟動網絡服務--->service network restart 或systemctl restart network 5)測試網絡是否可以正常通訊
5、為Linux主機配置網絡信息的方式有哪些,請描述各個過程。
ifconfig命令: ifconfig [interface] #ifconfig -a #ifconfig IFACE [up|down] ifconfig interface [aftype] options | address .. #ifconfig IFACE IP/mask [up] #ifconfig IFACE IP netmask MASK 注意:立即生效:(無法永久有效) 啟用混雜模式:[-]promisc ip命令: ip link -network device configure set show [dev IFACE]:指定接口 [up]:僅顯示處于激活狀態的接口 ip address - protocol address management. ip addr { add | del } IFADDR dev STRING [ label LABEL ] :添加地址時指明網卡別名 [scope{global|link|host}]:指明作用域 global:全局可用 link:僅鏈接可用 host:僅本機可用 [broadcast ADDRESS]:指明廣播地址 ip address show - look at protocol addresses [dev DEVICE] [label PATTERN] [primary adn secondary] ip address flush - flush protocol addresses 清空地址 使用格式同show ip route - routing table management ip route add - add new route 添加路由:ip route add TARGET via GW dev IFACE src SOURE_IP TARGET: 主機路由:IP 網絡路由:NETWORK/MASK 添加網關:ip route add default via GW dev DEVICE ip route delete - delete route 刪除路由:ip route del TARGET ip route show - list routes ip route flush - flush routing tables [dev IFACE]: [via PREFIX]
6、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態;
在線的主機使用綠色顯示; 不在線的主使用紅色顯示;
#!/bin/bash # ip='172.16.250' for i in {1..254};do ping -c 5 -w 5 $ip.$i &> /dev/null result=$? if [ $result -eq 0 ];then echo -e "\033[32m"$ip.$i is up. else echo -e "\033[31m"$ip.$i is down. fi done
7、詳細描述每個網絡接口的配置文件中各個參數的含義和其所對應的值;
路由相關的配置文件:/etc/sysconfig/network-scripts/route-IFACE 配置當前主機的主機名:/etc/sysconfig/networkHOSTNAME= 網絡接口識別并命名相關的udev配置文件: /etc/udev/rules.d/70-persistent-net.rules
8、如何給網絡接口配置多個地址,有哪些方式?
1) ifconfigetho IP/mask 2) ipaddr add ip/mask device etho 3) Linux網絡屬性配置的tui(text user interface):system-config-network-tui 4) 使用setup找到; ip address - protocol address management. ip addr { add | del } IFADDR dev STRING [ label LABEL ] :添加地址時指明網卡別名 [scope{global|link|host}]:指明作用域 global:全局可用 link:僅鏈接可用 host:僅本機可用 [broadcast ADDRESS]:指明廣播地址
9、常用的網絡管理類工具有哪些,并用示例形式描述他們的使用方法。
netstat: 1、查看網絡連接netstat –ltan 2、查看路由netstat –r 3、顯示網絡接口netstat–i route: 查看路由route -n 添加:routeadd:route add [-net|-host] target [netmask Nm] [gwGw] [[dev] If] ip linkset dev IFACE up /down 激活或禁用指定接口 ipaddr { add | del } IFADDR dev IFACE ip route add 添加路由:ip route add TARGET via GW dev IFACE src SOURCE_IP ss命令:(相當于netstat ,但在非常繁忙狀態下,是netstat是幾倍速度) 格式:ss [options] [ FILTER ] 選項: -t:tcp協議相關 -u:udp協議相關 -w:裸套接字相關 -x:unix sock相關 -l:listen狀態的連接 -a:所有 -n:數字格式 -p:相關的程序及PID -e擴展的信息 -m:內存用量 -o:計時器信息 FILTER := [ state TCP-STATE ] [ EXPRESSION ]
10、Linux系統軟件包管理方法(安裝、升級、卸載等操作)有哪些,以及如何管理的。
rpm命令實現程序管理: 安裝: -ivh,--nodeps,--replacepkgs 卸載:-e,--nodeps 升級:-Uvh,-Fvh,--nodeps,--oldepackage 查詢: -q,qa,-qf,-qi,-qd,-qc,-q --scripts,-q --changlog,-q --provides,-q --requires 校驗:-V 導入GPG密鑰:--import,-K,--nodigest,--nosignature 數據庫重:--initdb,--rebuilddb YUM命令實現程序管理: 顯示倉庫的列表: repolist [all|enable|disabled] 顯示程序包: list # yum list [all | glob_exp] [glob_exp2][...] #yum list {available | installed | updates}[glob_exp][...] 安裝程序包 yum install package1 [package2] [...] reinstall package1 [package2] [...](重新安裝) 升級程序包: update [package1] [package2] [...] 升級軟件包的同時也升級軟件和系統內核 downgrade package1 [package2] [...](降級) upgrade [package1] [package2] [...] 只升級軟件包,不升級軟件和系統內核 檢查可用升級: check-update 卸載程序包: remove | erase package1 [package2] [...] 查看程序包infomation: info[...] 查看指定的特性(可以查看某文件)是由哪個程序包所提供: provides | whatprovides feature1 [feature2] [...] 清理本地緩存: clean [ packages | metadata | expire-cache | rpmdb | plugins | all ] 構建緩存: makecache 搜索 search string1 [string2] [...] 以指定的關鍵字搜索程序包名及summary 信息 查看指定包所依賴的Capabilities: deplist package1 [package2] [...] 查看yum事務歷史: history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|roll-back|new|sync|stats] 安裝及升級本地程序包: *localinstall rpmfile1 [rpmfile2] [...] (maintained for legacy reasons only - use install) *localupdate rpmfile1 [rpmfile2] [...] (maintained for legacy reasons only - use update) 包組管理的相關命令: * groupinstall group1 [group2] [...] * groupupdate group1 [group2] [...] * grouplist [hidden] [groupwildcard] [...] * groupremove group1 [group2] [...] * groupinfo group1 [...]
11、如何使用發行版光盤作為yum repository,請描述該過程。
(1)掛載光盤至某目錄,例如/media/cdrom #mount -r -t iso9660 /dev/cdrom /media/cdrom (2) 創建配置文件 #vim /etc/yum.repos.d/CentOS-Media.repo [CentOS7] name=CentOS-$releasever - Media baseurl=file:///放Packages gpgcheck=0 enabled=1
12、寫一個腳本,完成以下功能
(1) 假設某目錄(/etc/rc.d/rc3.d/)下分別有K開頭的文件和S開頭的文件若干;
(2) 顯示所有以K開頭的文件的文件名,并且給其附加一個stop字符串;
(3) 顯示所有以S開頭的文件的文件名,并且給其附加一個start字符串;
(4) 分別統計S開頭和K開頭的文件各有多少;
#!/bin/bash # declare -i stotal=0 declare -i ktotal=0 for i in `ls /etc/rc.d/rc3.d | grep "^S"`;do echo "$i start" let stotal++ done for i in `ls /etc/rc.d/rc3.d | grep "^K"`;do echo "$i stop" let ktotal++ done echo "K file is $ktotal" echo "S file is $stotal"
13、寫一個腳本,完成以下功能
(1) 腳本能接受用戶名作為參數;
(2) 計算此些用戶的ID之和;
#!/bin/bash # declare -i idsum=0 if [ $# -le 0 ];then echo "Userage:bash.sh user1 user2 ..." exit 1 fi for i in $*;do if id $i &> /dev/null;then idnum=`grep "$i" /etc/passwd | cut -d: -f3` idsum+=$idnum else echo "No exist $i " fi done echo "IDtotal is $idsum"
14、寫一個腳本
(1) 傳遞一些目錄給此腳本;
(2) 逐個顯示每個目錄的所有一級文件或子目錄的內容類型;
(3) 統計一共有多少個目錄;且一共顯示了多少個文件的內容類型;
#!/bin/bash # declare -i foder=0 declare -i file=0 declare -i cfile=0 declare -i lfile=0 declare -i bfile=0 if [ $# -lt 1 ];then echo "Useage:bash.sh file1 file2 ..." exit 1 else for j in $*;do if [ -f $j ];then echo "This file is file" exit 1 else for i in `ls $j`;do cd $j if [ -f $i ];then echo -e "\033[31m"$i is file. let file++ elif [ -d $i ];then echo -e "\033[32m"$i is foder. let foder++ elif [ -c $i ];then echo "$i is string file." let cfile++ elif [ -L $i ];then echo "$i is link file." let lfile++ elif [ -b $i ];then echo "$i is block file." let bfile++ else echo "Unknow file." exit 2 fi done fi done fi echo "file total:$file" echo "link file total:$lfile" echo "String file total:$cfile" echo "block file total:$bfile" echo "foder file total:$foder"
15、寫一個腳本
通過命令行傳遞一個參數給腳本,參數為用戶名
如果用戶的id號大于等于500,則顯示此用戶為普通用戶;
#!/bin/bash # if [ $# -lt 1 ];then echo "Userage:bash.sh user1 user2 ..." exit 1 fi for i in $*;do if id $i &> /dev/null;then idnum=`grep "$i" /etc/passwd | cut -d: -f3` if [ $idnum -gt 500 ];then echo "$i user is ordinary user." else echo "$i is system user." fi else echo "No exist $i " fi done
16、寫一個腳本
(1) 添加10用戶user1-user10;密碼同用戶名;
(2) 用戶不存在時才添加;存在時則跳過;
(3) 最后顯示本次共添加了多少用戶;
#!/bin/bash # declare -i total=0 for i in {1..10};do if id user$i &> /dev/null;then echo "user$i has exist." else useradd user$i [ $? -eq 0 ] && echo "user$i" | passwd --stdin user$i &> /dev/null echo "Add user$i finish." total+=1 fi done echo "Add $total uesrs success!"
17、寫一腳本,用ping命令測試172.16.250.20-172.16.250.100以內有哪些主機在線,將在線的顯示出來;
ip='172.16.250' uphost=0 for i in {1..254};do ping -c 5 -w 5 $ip.$i &> /dev/null result=$? if [ $result -eq 0 ];then echo -e "\033[32m"$ip.$i is up. let uphost++ fi done echo "uphost is $uphost"
18、打印九九乘法表;
#!/bin/bash # for ((j=1;j<=9;j++));do for((i=1;i<=j;i++));do echo -e -n "${j}x${i}=$[$j*$i]\t" done echo done
原創文章,作者:Net21_Lion,如若轉載,請注明出處:http://www.www58058.com/41034
如果有一兩個輸出結果的示例,可能更吸引人哦