1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 網橋:是連接兩個局域網的基于MAC地址數據存儲轉發設備,工作于數據鏈路層 集線器:所有端口處于同一個廣播域和沖突域中,帶寬共享,工作于物理層 二層交換機:多端口網橋,一個端口一個沖突域,默認所有端口位于同一個廣播域中,可以劃分vlan,隔離廣播域,帶寬獨享 三層交換機:具有路由功能的二層交換機 路由器:連接不同網段的設備,負責不同網段之間數據通信 二層交換機一般用于接終端設備,三層交換機用于匯聚層,核心層,路由器用于不同網段之間數據通信 2、IP地址的分類有哪些?子網掩碼的表示形式及其作用 IP地址分類: A類: 第一段為網絡號,后三段為主機號 網絡號: 0 000 0000 - 0 111 1111:1-127 網絡數量:126,127 每個網絡中的主機數量:2^24-2 默認子網掩碼:255.0.0.0,/8 用于與IP地址按位進行“與”運算,從而取出其網絡地址; 1.3.2.1/255.0.0.0 = 1.0.0.0 1.3.2.1/255.255.0.0= 1.3.0.0 私網地址:10.0.0.0/255.0.0.0 B類: 前兩段為網絡號,后兩段為主機號 網絡號: 10 00 0000 - 10 11 1111:128-191 網絡數:2^14 每個網絡中的主機數量:2^16-2 默認子網掩碼:255.255.0.0,/16 私網地址:172.16.0.0-172.31.0.0 C類: 前三段為網絡號,最后一段為主機號 網絡號: 110 0 0000 - 110 1 1111:192-223 網絡數:2^21 每個網絡中的主機數量:2^8-2 默認子網掩碼:255.255.255.0, /24 D類:組播 1110 0000 - 1110 1111:224-239 E類:科研 240-255 子網掩碼的表示形式: 1.通過與IP地址格式相同的點分十進制表示,如255.255.255.0 2.在IP地址后“/”加1-32的數字,1-32的數字表示子網掩碼中網絡標識位的長度,如192.168.0.0/24 子網掩碼的作用: 1.用于標識IP的網絡位和主機位 2.用于劃分子網 3、計算機網絡的分成模型有哪些(OSI模型和TCP/IP模型),每一層的功能及涉及到的物理設備有哪些。 OSI七層模型: 物理層:為數據端設備提供原始比特流的傳輸的通路(如:集線器、網線等) 數據鏈路層:在通信的實體間建立數據鏈路連接(如:網橋、二層交換機等) 網絡層:為數據在結點之間傳輸創建邏輯鏈路,并分組轉發數據(如:路由器,三層交換機,防火墻) 傳輸層:提供應用進程之間的邏輯通信(如:TCP,UDP,進程,PORT,Socket) 會話層:建立端連接并提供訪問驗證和會話管理(如:服務器驗證用戶登錄,斷點續傳) 表示層:提供數據格式轉換服務(如:URL加密、口令加密、圖片編解碼) 應用層:為操作系統或網絡應用程序提供訪問網絡服務的接口(如:telnet,ftp,http,snmp) TCP/IP模型: 應用層:對應于OSI模型的應用層,會話層,表示層 傳輸層:對應于OSI模型的傳輸層 網絡互聯層:對應于OSI模型的網絡層 網絡接口層:對應于OSI模型的數據鏈路層和物理層 4、如何將Linux主機接入到TCP/IP網絡,請描述詳細的步驟。(手動指定的方式) [root@test ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:A2:C0:D7 [root@test ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet DEVICE=eth0 NAME="eth0" BOOTPROTO=none ONBOOT=yes IPADDR=X.X.X.X NETMASK=X.X.X.X GATEWAY=X.X.X.X DNS1=X.X.X.X [root@test ~]# service network restart 5、為Linux主機配置網絡信息的方式有哪些,請描述各個過程。 1.[root@test ~]# ifconfig eth0:0 192.168.3.4/24 2.[root@test ~]# ip addr add 192.168.3.5/24 broadcast 192.168.3.1 dev eth0:0 3.[root@test ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 4.setup - Network configration - Device configration 6、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態; 在線的主機使用綠色顯示; 不在線的主使用紅色顯示; [root@test tmp]# vim ping.sh #!/bin/bash ip='192.168.2' for i in {1..250};do ping -c 3 -w 3 $ip.$i &>/dev/null result=$? if [ $result -eq 0 ];then echo -e "\033[32m $ip.$i is up \033[0m" else echo -e "\033[31m $ip.$i is down \033[0m" fi done [root@test tmp]# bash ping.sh 7、詳細描述每個網絡接口的配置文件中各個參數的含義和其所對應的值; /etc/sysconfig/network-scripts/ifcfg-IFACE: DEVICE:此配置文件應用到的設備 HWADDR:對應的設備的MAC地址 BOOTPROTO:激活此設備時使用的地址配置協議,常用的有dhcp,static,none NM_CONTROLLED:NM是NetworkManager的簡寫;此網卡是否接受NM控制;CentOS6建議為“no” ONBOOT:在系統引導時是否激活此設備 TYPE:接口類型;常見的有Ethernet,Bridge UUID:設備的惟一標識 IPADDR:指明IP地址 NETMASK:子網掩碼 GATEWAY:默認網關 DNS1:第一個DNS服務器指向 DNS2:第二個DNS服務器指向 USERCTL:普通用戶是否可控制此設備 PEERDNS:如果BOOTPROTO的值為“dhcp”,是否允許dhcp server分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf文件中 8、如何給網絡接口配置多個地址,有哪些方式? [root@test tmp]# ifconfig eth0:2 192.168.4.4 [root@test tmp]# ip addr add 192.168.5.5/24 dev eth0 label eth0:3 9、常用的網絡管理類工具有哪些,并用示例形式描述他們的使用方法。 ifcfg命令家族: ifconfig, route, netstat ifconfig命令:接口及地址查看和管理 ifconfig [INTERFACE] # ifconfig -a:顯示所有接口,包括inactive狀態的接口; ifconfig interface [aftype] options | address ... # ifconfig IFACE IP/MASK [up|down] # ifconfig IFACE IP netmask NETMASK options: [-]promisc 注意:立即送往內核中的TCP/IP協議棧,并生效; route命令:路由查看及管理 路由條目類型: 主機路由:目標地址為單個IP; 網絡路由:目標地址為IP網絡; 默認路由:目標為任意網絡,0.0.0.0/0.0.0.0 查看: # route -n 添加: route add [-net|-host] target [netmask Nm] [gw GW] [[dev] If] 示例:route add -net 10.0.0.0/8 gw 192.168.10.1 dev eth1 route add -net 0.0.0.0/0.0.0.0 gw 192.168.10.1 route add default gw 192.168.10.1 刪除: route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If] 示例: route del -net 10.0.0.0/8 gw 192.168.10.1 route del default netstat命令: Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships 顯示路由表:netstat -rn -r:顯示內核路由表 -n:數字格式 顯示網絡連接: netstat [--tcp|-t] [--udp|-u] [--udplite|-U] [--sctp|-S] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p] -t:TCP協議的相關連接,連接均有其狀態;FSM(Finate State Machine); -u:UDP相關的連接 -w:raw socket相關的連接 -l:處于監聽狀態的連接 -a:所有狀態 -n:以數字格式顯示IP和Port; -e:擴展格式 -p:顯示相關的進程及PID; 常用組合: -tan, -uan, -tnl, -unl, -tunlp 傳輸層協議: tcp:面向連接的協議;通信開始之前,要建立一個虛鏈路;通信完成后還要拆除連接; udp:無連接的協議;直接發送數據報文; 顯示接口的統計數據: netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--verbose|-v] [--program|-p] [--numeric|-n] 所有接口: netstat -i 指定接口: netstat -I<IFace> ifup/ifdown命令: 注意:通過配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE來識別接口并完成配置; 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,請描述該過程。 [root@centos7 /]# mount /dev/cdrom /mnt/cdrom [root@centos7 /]# vim /etc/yum.repos.d/cdrom.repo [cdrom] name=centos7cdrom baseurl=file:///mnt/cdrom gpgcheck=0 enabled=1 [root@centos7 /]# yum clean all [root@centos7 /]# yum makecache 12、寫一個腳本,完成以下功能 (1) 假設某目錄(/etc/rc.d/rc3.d/)下分別有K開頭的文件和S開頭的文件若干; (2) 顯示所有以K開頭的文件的文件名,并且給其附加一個stop字符串; (3) 顯示所有以S開頭的文件的文件名,并且給其附加一個start字符串; (4) 分別統計S開頭和K開頭的文件各有多少; [root@localhost tmp]# vim rcd.sh #!/bin/bash declare -i i=0 declare -i j=0 for src1 in /etc/rc.d/rc3.d/K*;do echo $src1 $src1 stop let i++ echo $i done /etc/init.d/network restart for src2 in /etc/rc.d/rc3.d/S*;do echo $src2 $src2 start let j++ echo $j done echo "K start file total:$i" echo "S start file total:$j" [root@localhost tmp]# bash rcd.sh 13、寫一個腳本,完成以下功能 (1) 腳本能接受用戶名作為參數; (2) 計算此些用戶的ID之和; [root@test tmp]# vim idsum.sh #!/bin/bash for i in $*;do id $i &> /dev/null if [ $? -ne 0 ];then echo "$i not exists" exit 32 else let idsum+=`id -u $i` fi done echo "idsum:$idsum" [root@test tmp]# bash idsum.sh test4 test2 test3 14、寫一個腳本 (1) 傳遞一些目錄給此腳本; (2) 逐個顯示每個目錄的所有一級文件或子目錄的內容類型; (3) 統計一共有多少個目錄;且一共顯示了多少個文件的內容類型; [root@test tmp]# vim filetype.sh #!/bin/bash declare -i dfile=0 declare -i cmnfile=0 declare -i lfile=0 declare -i bfile=0 declare -i cfile=0 declare -i sfile=0 declare -i ufile=0 if [ $# -lt 1 ];then echo "At least input a directory" exit 1 fi dfile=$(ls -l "$@" |grep ^d |awk '{print $NF}'|wc -l) cmnfile=$(ls -l "$@" |grep ^- |awk '{print $NF}' |wc -l) lfile=$(ls -l "$@" |grep ^l |awk '{print $NF}' |wc -l) bfile=$(ls -l "$@" |grep ^b |awk '{print $NF}'|wc -l) cfile=$(ls -l "$@" |grep ^c |awk '{print $NF}' |wc -l) sfile=$(ls -l "$@" |grep ^s |awk '{print $NF}' |wc -l) ufile=$(ls -l "$@" |grep -v ^[-dlbcst/]|grep ^[^[:space:]] |awk '{print $NF}' |wc -l) ls -l "$@" echo "The directory file total: $dfile" echo "The common file total:$cmnfile" echo "The symbolic link file total:$lfile" echo "The block special file total:$bfile" echo "The character special file total:$cfile" echo "The socket file total:$sfile" echo "The unkown file total:$ufile" [root@test tmp]# bash filetype.sh /dev /tmp 15、寫一個腳本 通過命令行傳遞一個參數給腳本,參數為用戶名 如果用戶的id號大于等于500,則顯示此用戶為普通用戶; [root@test tmp]# vim usertype.sh #!/bin/bash id $1 &> /dev/null if [ $? -eq 0 ];then if [ `id -u $1` -ge 500 ];then echo "user is regular user" else echo "user is a system user" fi else echo "user is not exsits" fi [root@test tmp]# bash usertype.sh test3 16、寫一個腳本 (1) 添加10用戶user1-user10;密碼同用戶名; (2) 用戶不存在時才添加;存在時則跳過; (3) 最后顯示本次共添加了多少用戶; [root@test tmp]# vim adduser.sh #!/bin/bash declare -i j=0 for i in {1..10};do id user$i &> /dev/null if [ $? -ne 0 ];then useradd user$i let j++ echo "add user$i success" else echo "user$i exist" fi done echo "add user total:$j" [root@test tmp]# bash adduser.sh 17、寫一腳本,用ping命令測試172.16.250.20-172.16.250.100以內有哪些主機在線,將在線的顯示出來; [root@test tmp]# vim ping2.sh #!/bin/bash ip='172.168.250' for i in {20..100};do ping -c 3 -w 3 $ip.$i &>/dev/null result=$? if [ $result -eq 0 ];then echo -e "\033[32m $ip.$i is up \033[0m". fi done [root@test tmp]# bash -x ping2.sh 18、打印九九乘法表; [root@test tmp]# vim math99.sh #!/bin/bash for i in {1..9};do for j in $(seq 1 $i);do let sum=($i * $j) echo -n -e "${j}x${i}=$sum\t" done echo done [root@test tmp]# bash math99.sh
原創文章,作者:N22_上海_長清,如若轉載,請注明出處:http://www.www58058.com/50521
作業很工整,細節描述的很好