一、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。html
不是很懂網絡這塊,下面是我理解:node
網橋:將兩個網絡鏈接起來centos
交換機:基於mac地址鏈接多個網絡緩存
路由器:基於ip地址鏈接多個網絡bash
而後萬能的度娘,服務器
1 中繼器網絡
中繼器因爲工做在OSI模型的物理層(第一層),因此能夠成爲物理層設備或者一層設備。它其實僅僅是擴大了以太網的(物理上的距離)網絡範圍,它從一個端口收包後(作信號放大處理)發送到其它全部端口(通常只有兩個端口)。它解決了兩個問題:距離遠時,信號有衰減,故它能夠放大;屏蔽了各類以太網電纜線的差異。app
從效果看,使用中繼器兩個端口鏈接的兩個網絡,就是(同)一個擴大範圍了的以太網。因此,衝突域和廣播域跟傳統以太網同樣,仍是整網。ssh
2 集線器socket
集線器其實就是多端口的中繼器,也是從一個端口收包後(作信號放大處理)發送到其它全部端口。
可見,中繼器和集線器都是物理層設備,是看不到二層相關信息的,僅做伸展以太網的網絡距離的做用而已。
3 網橋
網橋的背板是端口隔離的,就是說每一個端口都是獨立通道,再也不像中繼器/集線器那樣是共享性質的背板了。終於可使用獨立的端口作點智能功能了。
網橋使用二層mac表去維護mac和端口的對應關係,這能夠經過初期的二層廣播(未知單播走廣播流程)報文學習到。這樣,網橋能夠知道每一個端口和其下全部節點的mac的對應關係。
4.二層交換機
二層交換機屬數據鏈路層設備,能夠識別數據包中的MAC地址信息,根據MAC地址進行轉發,並將這些MAC地址與對應的端口記錄在本身內部的一個地址表中。
5.三層交換機
三層交換機用於局域網(具備頻繁通訊、各個子網都是同種物理介質類型的特色),主要對大量數據作快速交換處理。
6.路由器
路由器工做在網絡層,負責兩個局域網之間按幀傳輸數據,路由器經過比對路由表將每一幀傳到指定的目的地,路由器的工做模式是全雙工的。
然並卵,我仍是不知道講的是什麼。。
二、IP地址的分類有哪些?子網掩碼的表示形式及其做用
A類:第一個字段爲網絡地址,其餘三個字段爲主機地址。
地址範圍:0 000 0000 - 0 111 1111: 1-127 //第一字段第一位爲0
默認子網掩碼:255.0.0.0
B類:前兩個字段爲網絡地址,後兩個字段爲主機地址。
地址範圍:10 00 0000 - 10 11 1111:128-191 //第一字段前兩位爲10
默認子網掩碼:255.255.0.0
C類:前三個字段爲網絡地址,最後一個地算爲主機地址
110 0 0000 - 110 1 1111: 192-223 //第一字段前三位爲110
默認子網掩碼:255.255.255.0
D類:組播
1110 0000 - 1110 1111: 224-239 //以1110開頭
E類:保留
240-255
三、計算機網絡的分紅模型有哪些(OSI模型和TCP/IP模型),每一層的功能及涉及到的物理設備有哪些。
TCP/IP模型:
application layer:應用層
transport layer:傳輸層,標記進程
internet layer:網絡層,標記網絡地址,跨網絡通訊,網絡之間通訊經過路由器解決
datalink layer:鏈路層,標記本地主機的地址,解決本地網絡的通訊。經過交換機解決本地網絡通訊
pysical layer:物理層,物理設備,解決硬件的標準:接口,電壓,電氣信號等。可能要用到網卡
OSI參考模型分爲7層:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層,也就是將tcp/ip模型中的應用層分紅了OSI參考模型分爲7層:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層。
四、如何將Linux主機接入到TCP/IP網絡,請描述詳細的步驟。(手動指定的方式)
1.配置ip地址,修改/etc/sysconfig/network-scripts/ifcfg-IFACE文件
/etc/sysconfig/network-scripts/ifcfg-IFACE:
DEVICE:此配置文件應用到的設備;
HWADDR:對應的設備的MAC地址;
BOOTPROTO:激活此設備時使用的地址配置協議,經常使用的dhcp, static, none, bootp;
NM_CONTROLLED:NM是NetworkManager的簡寫;此網卡是否接受NM控制;CentOS6建議爲「no」;
ONBOOT:在系統引導時是否激活此設備;
TYPE:接口類型;常見有的Ethernet, Bridge;
UUID:設備的唯一標識;
IPADDR:指明IP地址;
NETMASK:子網掩碼;
GATEWAY: 默認網關; (此處優先級比/etc/resolv.conf高,直接配置到網卡中)
DNS1:第一個DNS服務器指向;
DNS2:第二個DNS服務器指向;
USERCTL:普通用戶是否可控制此設備;
PEERDNS:若是BOOTPROTO的值爲「dhcp」,是否容許dhcp server分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf文件中;
eg1.
DEVICE="eth0"
BOOTPROTO="static"
IPADDR=192.168.111.2
NETMASK=255.255.255.0
GATEWAY=192.168.111.1
ONBOOT=yes
TYPE=Ethernet
2.配置路由信息,/etc/sysconfig/network-scripts/route-IFACE文件
兩種風格:
(1) TARGET via GW
(2) 每三行定義一條路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
五、爲Linux主機配置網絡信息的方式有哪些,請描述各個過程。
1.ifconfig
[root@localhost ~]# ifconfig eth0 192.168.108.137 netmask 255.255.255.0
2.ip
[root@localhost ~]# ip addr add dev eth0 192.168.108.137
3.文件配置 /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="dhcp"
HWADDR="00:0C:29:92:AB:FB"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="863486f2-fe14-4b4a-946a-c79bb2e586c9"
六、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的全部主機的在線狀態;
在線的主機使用綠色顯示;
不在線的主使用紅色顯示;
[root@localhost week8]# cat six.sh
#!/bin/bash
for((i=1;i<=254;i++))
do
#ping:發包命令
#-c:次數 -w:測試時間
ping -c 1 -w 1 172.16.250.$i &> /dev/null
if [ $? -eq 0 ];then
#echo -e:設置顏色
#nm,m前指定顏色
#字體顏色:30 - 39
30:黑
31:紅
32:綠
33:黃
34:藍色
35:紫色
36:深綠
37:白色
echo -e "\033[32m 172.12.250.$i \033[0m"
else
echo -e "\033[31m 172.12.250.$i \033[0m"
fi
done
[root@localhost week8]# ./six.sh
172.12.250.1
172.12.250.2
172.12.250.3
172.12.250.4
172.12.250.5
172.12.250.6
七、詳細描述每一個網絡接口的配置文件中各個參數的含義和其所對應的值;
同題4.
八、如何給網絡接口配置多個地址,有哪些方式?
1.ifconfig命令
[root@localhost week8]# ifconfig eth0:0 192.168.111.4/24
[root@localhost week8]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:6B:80:EA
inet addr:192.168.111.2 Bcast:192.168.111.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe6b:80ea/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:19271 errors:0 dropped:0 overruns:0 frame:0
TX packets:2479 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1786094 (1.7 MiB) TX bytes:261884 (255.7 KiB)
eth0:0 Link encap:Ethernet HWaddr 00:0C:29:6B:80:EA
inet addr:192.168.111.4 Bcast:192.168.111.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:18 errors:0 dropped:0 overruns:0 frame:0
TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1010 (1010.0 b) TX bytes:1010 (1010.0 b)
2.ip命令
[root@localhost week8]# ip addr add 192.168.111.5 dev eth0:1
[root@localhost week8]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:6b:80:ea brd ff:ff:ff:ff:ff:ff
inet 192.168.111.2/24 brd 192.168.111.255 scope global eth0
inet 192.168.111.5/32 scope global eth0
inet 192.168.111.4/24 brd 192.168.111.255 scope global secondary eth0:0
inet6 fe80::20c:29ff:fe6b:80ea/64 scope link
valid_lft forever preferred_lft forever
3: pan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN
link/ether d2:8f:76:1f:86:0c brd ff:ff:ff:ff:ff:ff
3.配置文件
/etc/sysconfig/network-scripts/IFACE_ALIAS
九、經常使用的網絡管理類工具備哪些,並用示例形式描述他們的使用方法。
1.ifconfig 顯示本機的網絡配置信息
選項:
-a:顯示全部接口信息
Interface:顯示指定接口信息
up:打開某接口,當前會話有效,永久生效修改/etc/sysconfig/network-scripts下的接口文件,root用戶纔有權限執行此命令
down:關閉某接口,一樣只在當前會話有效
2.ip
1.ip link
set:設置
show:顯示
2.ip addr
add :增長
del :刪除
show:顯示
flush:刷新
3.ip route
add :增長
del :刪除
show:顯示
flush:刷新
3.nmcli
nmcli dev
show:查看設備
nmcli con:ip地址等信息查看或設置
show
modify:修改
nmcli connection modify IFACE [+|-]setting.property value
常見的setting.property ipv4.addresses
ipv4.gateway
ipv4.dns1
ipv4.method
十、Linux系統軟件包管理方法(安裝、升級、卸載等操做)有哪些,以及如何管理的。
1.rpm
[select-options]
-a: 全部包
-f: 查看指定的文件由哪一個程序包安裝生成
-p:針對還沒有安裝的程序包文件作查詢操做;
[query-options]
-c: 查詢程序的配置文件
-d: 查詢程序的文檔
-i: information
-l: 查看指定的程序包安裝後生成的全部文件;
-R: 查詢指定的程序包所依賴的CAPABILITY
eg.查詢zip的詳細信息
[root@localhost ~]# rpm -qi zip
Name : zip Relocations: (not relocatable)
Version : 3.0 Vendor: CentOS
Release : 1.el6 Build Date: Thu 11 Nov 2010 07:26:40 AM PST
Install Date: Wed 24 Aug 2016 12:05:02 PM PDT Build Host: c6b3.bsys.dev.centos.org
Group : Applications/Archiving Source RPM: zip-3.0-1.el6.src.rpm
Size : 823612 License: BSD
Signature : RSA/8, Sat 02 Jul 2011 10:07:05 PM PDT, Key ID 0946fca2c105b9de
Packager : CentOS BuildSystem <http://bugs.centos.org>
URL : http://www.info-zip.org/Zip.html
Summary : A file compression and packaging utility compatible with PKZIP
Description :
The zip program is a compression and file packaging utility. Zip is
analogous to a combination of the UNIX tar and compress commands and
is compatible with PKZIP (a compression and file packaging utility for
MS-DOS systems).
Install the zip package if you need to compress files using the zip
program.
安裝:
rpm {-i|--install} [install-options] PACKAGE_FILE ...
-v: verbose
-h: 以#顯示程序包管理執行進度;
升級:
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
卸載:
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]
[--notriggers] [--test] PACKAGE_NAME ...
2.yum,dnf
顯示倉庫列表:
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
搜索:以指定的關鍵字搜索程序包名及summary信息
search string1 [string2] [...]
十一、如何使用發行版光盤做爲yum repository,請描述該過程。
1.光盤掛載
默認會自動掛載,這裏自動掛載到/media/CentOS_6.5_Final
[root@localhost media]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 18339256 9590452 7817220 56% /
tmpfs 506176 84 506092 1% /dev/shm
/dev/sda1 297485 34625 247500 13% /boot
/dev/md1 2084844 68656 1910284 4% /backup
/dev/sr0 4363088 4363088 0 100% /media/CentOS_6.5_Final
若是想修改掛載目錄:
1.建立掛載目錄
[root@localhost media]# mkdir cdrom
2.掛載
[root@localhost media]# mount -t iso9660 /dev/cdrom1 /media/cdrom
2.建立配置文件
[root@localhost yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
#須要將CentOS-Base.repo移除,否則默認今後庫安裝
[root@localhost yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak
[root@localhost yum.repos.d]# vi CentOS-Local.repo
[Centos]
name=Centos
baseurl=file:///media/cdrom
gpgcheck=0
enabled=1
#測試
[root@localhost yum.repos.d]# yum install lftp
Loaded plugins: fastestmirror, refresh-packagekit, security
Determining fastest mirrors
Centos | 4.0 kB 00:00 ...
Centos/primary_db | 4.4 MB 00:00 ...
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package lftp.x86_64 0:4.0.9-1.el6 will be installed
--> Finished Dependency Resolution
...
十二、寫一個腳本,完成如下功能
(1) 假設某目錄(/etc/rc.d/rc3.d/)下分別有K開頭的文件和S開頭的文件若干;
(2) 顯示全部以K開頭的文件的文件名,而且給其附加一個stop字符串;
(3) 顯示全部以S開頭的文件的文件名,而且給其附加一個start字符串;
(4) 分別統計S開頭和K開頭的文件各有多少;
[root@localhost week8]# cat twelve.sh #!/bin/bash knum=0 snum=0 for i in $(ls /etc/rc.d/rc3.d/K*);do filename=$(basename $i) echo -n "$filename " let knum++ done echo "stop" for i in $(ls /etc/rc.d/rc3.d/S*);do filename=$(basename $i) echo -n "$filename " let snum++ done echo "start" echo "the num of start of k is $knum" echo "the num of start of s is $snum" [root@localhost week8]# ./twelve.sh K01smartd K05wdaemon K10psacct K10saslauthd K15htcacheclean K15httpd K30spice-vdagentd K50dnsmasq K50netconsole K50snmpd K50snmptrapd K73winbind K74ntpd K75ntpdate K75quota_nld K84wpa_supplicant K87restorecond K89rdisc K99rngd stop S01sysstat S02lvm2-monitor S03vmware-tools S08ip6tables S08iptables S10network S11auditd S11portreserve S12rsyslog S13cpuspeed S13irqbalance S15mdmonitor S20kdump S22messagebus S23NetworkManager S25blk-availability S25cups S25netfs S26acpid S26haldaemon S26udev-post S50bluetooth S55sshd S57vmware-tools-thinprint S80postfix S82abrt-ccpp S82abrtd S90crond S95atd S99firstboot S99local start the num of start of k is 19 the num of start of s is 31
1三、寫一個腳本,完成如下功能
(1) 腳本能接受用戶名做爲參數;
(2) 計算此些用戶的ID之和;
[root@localhost week8]# cat thirteen.sh #!/bin/bash sum=0 for i in $@;do username=$i grep "^$username" /etc/passwd &> /dev/null if [ $? -eq 0 ];then num=$(id $username | grep -o "uid=[0-9]*" | cut -d = -f 2) let sum+=num fi done echo "sum of userid is $sum" [root@localhost week8]# ./thirteen.sh yannic gapsv4 sum of userid is 1002
1四、寫一個腳本
(1) 傳遞一些目錄給此腳本;
(2) 逐個顯示每一個目錄的全部一級文件或子目錄的內容類型;
(3) 統計一共有多少個目錄;且一共顯示了多少個文件的內容類型;
[root@localhost week8]# cat fourteen.sh #/bin/bash #判斷參數個數 if [ $# -eq 0 ];then echo "input some directories" fi filenum=0 dirnum=0 #isfile()用來顯示文件類型,由於屢次調用封裝成函數 function isfile() { if [ -f $1 ];then echo "$1 is a comm file" elif [ -b $1 ];then echo "$1 is a block file" elif [ -c $1 ];then echo "$1 is a character file" elif [ -h $1 ];then echo "$1 is a syblolik file" elif [ -p $1 ];then echo "$1 is a pipe file" elif [ -S $1 ];then echo "$1 is a socket file" fi } for i in $@;do if [ -d $i ];then echo "$i:" for j in $(ls $i);do if [ -d $i/$j ];then echo "$i/$j is a directory " let dirnum++ else let filenum++ filename=$i/$j #調用函數 isfile $filename fi done else echo "it is not a directory" done echo "there are $filenum files,$dirnum directories" #執行結果 /etc/wgetrc is a comm file /etc/wpa_supplicant is a directory /etc/X11 is a directory /etc/xdg is a directory /etc/xinetd.d is a directory /etc/xml is a directory /etc/yum is a directory /etc/yum.conf is a comm file /etc/yum.repos.d is a directory there are 111 files,107 directories
1五、寫一個腳本
經過命令行傳遞一個參數給腳本,參數爲用戶名 若是用戶的id號大於等於500,則顯示此用戶爲普通用戶; [root@localhost week8]# cat fifteen.sh #!/bin/bash if [ $# -eq 0 ];then echo "please input a username" exit -1 fi id $1 &> /dev/null if [ $? -ne 0 ];then echo "no such user" exit -2 fi userid=$(id $1 | grep -o "uid=[0-9]\+" | cut -d= -f2) if [ $userid -ge 500 ];then echo "$1 is a common user" fi [root@localhost week8]# ./fifteen.sh yannic yannic is a common user [root@localhost week8]# ./fifteen.sh yannic2 no such user
1六、寫一個腳本
(1) 添加10用戶user1-user10;密碼同用戶名;
(2) 用戶不存在時才添加;存在時則跳過;
(3) 最後顯示本次共添加了多少用戶;
[root@localhost week8]# cat sixteen.sh #/bin/bash count=0 for i in $(seq 1 10);do username=user$i grep "^$username" /etc/passwd &> /dev/null if [ $? -ne 0 ];then useradd $username echo $username | passwd --stdin $username &>/dev/null let count++ fi done echo "create $count users" [root@localhost week8]# ./sixteen.sh create 10 users
1七、寫一腳本,用ping命令測試172.16.250.20-172.16.250.100之內有哪些主機在線,將在線的顯示出來;
[root@localhost week8]# cat seventeen.sh #!/bin/bash for((i=20;i<=100;i++)) do ping -c 1 -w 1 172.16.250.$i &> /dev/null if [ $? -eq 0 ];then echo 172.16.250.$i fi done
1八、打印九九乘法表;
#i表示行,j表示列 [root@localhost week8]# cat eighteen.sh #/bin/bash for((i=1;i<=9;i++));do for((j=1;j<=i;j++));do echo -n "$j*$i=$[$j*$i] " done echo done [root@localhost week8]# ./eighteen.sh 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81