1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。
網橋:是將廣播域劃分為多個小的沖突域,但廣播域沒有變。工作在OSI模型的數據鏈路層,端口很少;基于軟件;可以處理上層事務。
集線器:對接收到的信號進行再生整形放大,擴大網絡傳輸距離;屬于純硬件網絡底層設備,工作在OSI模型的物理層,不具有交換機的”智能記憶”和”學習”的能力;
也不具備交換機所具有的MAC地址表,發送數據時沒有針對性,采用廣播方式發送。當它要向某節點發送數據時,是通過把數據包發送到與集線器相連的所有節點。
二層交換機:工作于OSI模型的第2層(數據鏈路層),可以識別數據包中的MAC地址信息,根據MAC地址進行轉發,并將這些MAC地址與對應的端口記錄在自己內部的一個地址表中。
三層交換機:具有部分路由器功能的交換機,加快大型局域網內部的數據交換,能夠做到一次路由,多次轉發。由硬件高速實現數據包轉發等規律性的功能,由軟件實現路由信息更新、路由表維護、路由計算、路由確定等功能。
三層交換技術就是二層交換+三層轉發。傳統交換技術工作于OSI模型的數據鏈路層,而三層交換技術是在網絡層實現了數據包的高速轉發,既可實現網絡路由功能,又可根據不同網絡狀況做到最優網絡性能。
路由器:是連接因特網中各局域網、廣域網的設備,它會根據信道的情況自動選擇和設定路由,以最佳路徑,按前后順序發送信號;屬網絡層的一種互聯設備。
又稱網關設備(Gateway)是用于連接多個邏輯上分開的網絡,所謂邏輯網絡是代表一個單獨的網絡或者一個子網。當數據從一個子網傳輸到另一個子網時,可通過路由器的路由功能來完成。
具有判斷網絡地址和選擇IP路徑的功能,能在多網絡互聯環境中,建立靈活的連接,可用完全不同的數據分組和介質訪問方法連接各種子網,只接受源站或其他路由器的信息。
路由器和交換機之間的主要區別就是交換機發生在OSI參考模型第二層(數據鏈路層),而路由發生在第三層,即網絡層。
這一區別決定了路由和交換機在移動信息的過程中需使用不同的控制信息,所以說兩者實現各自功能的方式是不同的。
2、IP地址的分類有哪些?子網掩碼的表示形式及其作用
A 類:1-127 默認子網掩碼:255.0.0.0 私網地址:10.0.0.0/8
B 類:128-191 默認子網掩碼:255.255.0.0 私網地址:172.16.0.0/16-172.31.0.0/16
C 類:192-223 默認子網掩碼:255.255.255.0 私網地址:192.168.0.0/24-192.168.255.0/24
D 類:223-254
子網掩碼表現形式有兩種:一種與IP地址表現方法一樣,即點分四組表示法,如:255.255.0.0;
另一種叫無類別域間路由(CIDR)表示法,如192.168.0.0/24
子網掩碼是用來指明一個IP地址的哪些位標識的是主機所在的子網以及哪些位標識的是主機的位掩碼
3、計算機網絡的分成模型有哪些(OSI模型和TCP/IP模型),每一層的功能及涉及到的物理設備有哪些。
OSI模型分層如下:
應用層;提供應用程序之間通信;
表示層:處理數據格式、數據加密;
會話層:建立,維護,管理會話連接涉及操作系統和網絡接口和各種數據;
傳輸層:建立主機端到端連接。涉及物理設備:四層交換機
網絡層:尋址和路由選擇。涉及物理設備:路由器
數據鏈路層:提供介質訪問,鏈路管理,將數據分幀并處理流控制。涉及物理設備:網卡,網橋,交換機
物理層:比特流傳輸,將數據轉換為可通過物理介質傳送的電子信號。涉及物理設備:雙絞線、同軸電纜,集線器
TCP/IP模型包括:應用層(對應OSI模型的應用層,會話層,表示層)、傳輸層、網絡互連層、網絡接口層(對應OSI模型的數據鏈路層和物理層)
4、如何將Linux主機接入到TCP/IP網絡,請描述詳細的步驟。(手動指定的方式)
1) 編輯/etc/sysconfig/network-script/eth0,設置IP,MAC,網關,地址分配是靜態或動態
2) 編輯 /etc/hosts,添加IP
3) 編輯/etc/resolv.conf
4) 啟動網絡服務,service network restart
5) 測試連接網絡
5、為Linux主機配置網絡信息的方式有哪些,請描述各個過程。
1) ifconfig eth0 IP/mask
2) ip addr add ip device eth0
3) Linux網絡屬性配置的tui(text user interface):system-config-network-tui
4) 使用setup;
6、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態
在線的主機使用綠色顯示;
不在線的主使用紅色顯示;
#!/bin/bash for ip in 172.16.250.{1..254} do ping $ip -c 2 &>/dev/null if [ $? -eq 0 ];then echo -e "\e[1;32m $ip is alive \e[0m" sleep 1 else echo -e "\e[1;31m $ip is down \e[0m" sleep 1 fi done
7、詳細描述每個網絡接口的配置文件中各個參數的含義和其所對應的值
1)網絡接口配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
DEVICE #網卡名
BOOTPROTO #ip地址分配方式, dhcp、static
HWADDR #MAC地址
NM_CONTROLLED="yes" #network manager參數,
ONBOOT= #網卡是否開機激活
TYPE= #網絡類型
IPV6INIT=no #禁止IPV6
USERCTL=no #是否允許非root用戶控制該設備,為no,只能root用戶更改
IPADDR= #IP ADDR
GATEWAY= #gateway地址
NETMASK= #掩碼
DNS2= #dns2地址
DNS1= #dns1地址
2)路由相關的配置文件:/etc/sysconfig/network-scripts/route-IFACE
3)配置當前主機的主機名:/etc/sysconfig/network HOSTNAME=
4)網絡接口識別并命名相關的udev配置文件: /etc/udev/rules.d/70-persistent-net.rules
8、如何給網絡接口配置多個地址,有哪些方式?
1) ifconfig eth0 IP/mask
2) ip addr add IP device eth0
3) Linux網絡屬性配置的tui(text user interface):system-config-network-tui
4) 使用setup;
9、常用的網絡管理類工具有哪些,并用示例形式描述他們的使用方法。
netstat:
1)、查看網絡連接 netstat –tan
2)、查看路由 netstat –r
3)、 顯示網絡接口 netstat –i
route:
1)、查看:route -n
2)、添加:route add default gw 192.168.126.2
3)、刪除:route del -net 0.0.0.0/0 gw 192.168.126.2
ip:
1)、激活或禁用指定接口:ip link set dev IFACE up /down
2)、配置IP:ip addr { add | del } IFADDR dev IFACE
3)、添加路由:ip route add TARGET via GW dev IFACE src SOURCE_IP
4)、配置路由:ip route del TARGET
ss:
1)、查看端口監聽狀態: ss -tnl
10、Linux系統軟件包管理方法(安裝、升級、卸載等操作)有哪些,以及如何管理的。
rpm命令實現程序管理:
安裝:-ivh, –nodeps, –replacepkgs
卸載:-e, –nodeps
升級:-Uvh, -Fvh, –nodeps, –oldpackage
查詢:-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|enabled|disabled]
顯示程序包:list
# yum list [all | glob_exp1] [glob_exp2] […]
# yum list {available|installed|updates} [glob_exp1] […]
安裝程序包: install package1 [package2] […]
reinstall package1 [package2] […] (重新安裝)
升級程序包:
update [package1] [package2] […]
downgrade package1 [package2] […] (降級)
檢查可用升級:
check-update
卸載程序包:
remove | erase package1 [package2] […]
查看程序包information:
info […]
查看指定的特性(可以是某文件)是由哪個程序包所提供:
provides | whatprovides feature1 [feature2] […]
清理本地緩存:
clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
構建緩存:
makecache
11、如何使用發行版光盤作為yum repository,請描述該過程。
1)編輯/etc/yum.repos.d/centos_iso.repo
[Packages]
name=centos_iso
baseurl=file:///mnt #本地iso的掛載路徑
enabled=1 #可以使用yum
gpgcheck=0 #設置不檢查gpgkey
gpgkey=file:///mnt/RPM-GPG-KEY-centos
2)掛載光盤至某目錄,例如/mnt
# mount -r -t iso9660 /dev/cdrom /mnt
3) yum clean ; yum repolist
12、寫一個腳本,完成以下功能
(1) 假設某目錄(/etc/rc.d/rc3.d/)下分別有K開頭的文件和S開頭的文件若干;
(2) 顯示所有以K開頭的文件的文件名,并且給其附加一個stop字符串;
(3) 顯示所有以S開頭的文件的文件名,并且給其附加一個start字符串;
(4) 分別統計S開頭和K開頭的文件各有多少;
#!/bin/bash DIR=/etc/rc.d/rc3.d/ sumofk=0 sumofs=0 K="stop" S="start" cd $DIR for i in `ls |grep ^K` do echo ${i}$K let sumofk++ done for i in `ls|grep ^S` do echo ${i}$S let sumofs++ done echo "the sum of K is:" $sumofk echo "the sum of S is:" $sumofs
13、寫一個腳本,完成以下功能
(1) 腳本能接受用戶名作為參數;
(2) 計算此些用戶的ID之和;
#!/bin/bash sum=0 echo "please input the username:" read p for i in $p do a=`grep ^"\b${i}\b" /etc/passwd|cut -d: -f3` let sum=${sum}+${a} done echo ${sum}
14、寫一個腳本
(1) 傳遞一些目錄給此腳本;
(2) 逐個顯示每個目錄的所有一級文件或子目錄的內容類型;
(3) 統計一共有多少個目錄;且一共顯示了多少個文件的內容類型;
#!/bin/bash declare -i D=0 declare -i F=0 for d in $@ do for i in `ls $d` do FT=`file $i|cut -d: -f2` echo "$i's type is:$FT" let F++ if [ $FT == "directory" ];then let D++ fi done done echo "Directory count is $D" echo "File count is $F"
15、寫一個腳本
通過命令行傳遞一個參數給腳本,參數為用戶名
如果用戶的id號大于等于500,則顯示此用戶為普通用戶;
#!/bin/bash while true ;do read -p "please input a username:" username case $username in exit) exit 1 ;; *) echo $username uid=` grep ^"\b${username}\b" /etc/passwd|cut -d: -f3 ` echo $uid if [ $uid -gt 500 ];then echo "$username is a common user" fi ;; esac done
16、寫一個腳本
(1) 添加10用戶user1-user10;密碼同用戶名;
(2) 用戶不存在時才添加;存在時則跳過;
(3) 最后顯示本次共添加了多少用戶;
#!/bin/bash declare -i COUNT=0 for i in user{1..10} do id $i &>/dev/null if [ $? -eq 0 ];then useradd $i &>/dev/null echo $i|passwd --stdin $i &>/dev/null let COUNT++ fi done echo "The added is :$COUNT"
17、寫一腳本,用ping命令測試172.16.250.20-172.16.250.100以內有哪些主機在線,將在線的顯示出來
#!/bin/bash for ip in 172.16.250.{20..100} do ping $ip -c 2 &>/dev/null if [ $? -eq 0 ];then echo -e "\e[1;32m $ip is online \e[0m" sleep 1 fi done
18、打印九九乘法表
#!/bin/bash # for i in {1..9};do for ((j=1;j<=i;j++)) ;do echo -e -n "${j}X${i}=$[$i*$j]\t" done echo done
原創文章,作者:π,如若轉載,請注明出處:http://www.www58058.com/41178
如果將上面的文字描述換成圖文并茂就更好了,直觀