1、描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景和區別
網橋也叫橋接器,是連接兩個局域網的一種存儲/轉發設備,用來連接不同網段。
集線器稱為“Hub”,主要功能是對接收到的信號進行再生整形放大,以擴大網絡的傳輸距離,同時把所有節點集中在以它為中心的節點上。
二層交換機工作于OSI模型的第2層(數據鏈路層),可識別數據包中的MAC地址信息,根據MAC地址進行轉發,并將這些MAC地址與對應的端口記錄在自己內部的一個地址表中。
三層交換機就是具有部分路由器功能的交換機,三層交換機的最重要目的是加快大型局域網內部的數據交換,所具有的路由功能也是為這目的服務的,能夠做到一次路由,多次轉發。對于數據包轉發等規律性的過程由硬件高速實現,而像路由信息更新、路由表維護、路由計算、路由確定等功能,由軟件實現。
路由器(Router),是連接因特網中各局域網、廣域網的設備,它會根據信道的情況自動選擇和設定路由,以最佳路徑,按前后順序發送信號。
2、IP地址的分類有哪些?子網掩碼的表示形式及其作用
IP地址的分類:
A類用于公網或大型局域網(地址范圍1.0.0.0到127.255.255.255,默認掩碼255.0.0.0),其中10.0.0.0/8是私網IP地址。
B類用于公網或中型局域網(地址范圍128.0.0.0-191.255.255.255,默認掩碼255.255.0.0),其中172.16.0.0/16 – 172.31.255.255/16是私網IP地址。
C類用于公網或小型局域網(地址范圍192.0.0.0-223.255.255.255,默認掩碼255.255.255.0),其中192.168.0.0/24是私網IP地址。
D類用于組播(地址范圍從224.0.0.0到239.255.255.255)
E類用于實驗
子網掩碼的表示形式:
①點分十進制,如255.255.255.0
②ip地址后加'/'以及[1-32]的數字
子網掩碼的作用:
①區別網絡標識和主機標識
②將一個大的IP網絡劃分為若干小的子網絡
3、計算機的分層模型
OSI模型:
應用層:提供應用程序之間通信;
表示層:處理數據格式、數據加密;
會話層:建立,維護,管理會話連接涉及操作系統和網絡接口和各種數據;
傳輸層:建立主機端到端連接。涉及物理設備:四層交換機
網絡層:尋址和路由選擇。涉及物理設備:路由器
數據鏈路層:提供介質訪問,鏈路管理,將數據分幀并處理流控制。涉及物理設備:網卡,網橋,交換機
物理層:比特流傳輸,將數據轉換為可通過物理介質傳送的電子信號。涉及物理設備:雙絞線、同軸電纜,集線器
TCP/IP模型:
應用層(對應OSI模型的應用層,會話層,表示層)
傳輸層(對應OSI模型的傳輸層)
網絡互聯層(對應OSI模型的網絡層)
網絡接口層(對應OSI模型的數據鏈路層和物理層)
4、如何將linux主機接入TCP/ip網絡
使用ifconfig查看網卡配置信息,看主要使用的網卡名稱
到/etc/sysconfig/network-scripts/目錄下查找對應的網卡配置文件
主要配置項
DEVICE(設備名稱)
TYPE(設備類型。端口為Ethernet)
ONBOOT(系統啟動時讀?。?nbsp;
BOOTPROTO=static(ip配置協議。當前為靜態ip,可設置DHCP,)
IPADDR(ip地址)
NETMASK(子網掩碼)
GATEWAY(網關地址)
DNS1(DNS服務器地址)
重啟網絡服務 service network restart
5、為linux主機配置網絡信息的方式有哪些
ifconfig eth0 IP/mask
ip addr add IP device eth0
Linux網絡屬性配置的tui(text user interface):system-config-network-tui
使用setup圖形界面設置
6、寫一個腳本,探測主機之間的狀態
#!/bin/bash
#
for i in { 1 254 };do
ping -c 1 -w 1 172.16.250.$i &> /dev/null
if [ $? -eq 0 ] ; then
echo -e " \033[;32m 172.16.250.$i \033[0m"
else
echo -e " \033[;31m 172.16.250.$i \033[0m"
fi
done
7、描述每個網絡接口的配置文件各個參數的含義何其所對應的值
DEVICE:此配置文件應用到的設備;
HWADDR:對應的設備的MAC地址;
BOOTPROTO:激活此設備時使用的地址配置協議,常用的dhcp, static, none, bootp;
NM_CONTROLLED:NM是NetworkManager的簡寫;此網卡是否接受NM控制;CentOS6建議為“no”;
ONBOOT:在系統引導時是否激活此設備;
TYPE:接口類型;常見有的Ethernet, Bridge;
UUID:設備的惟一標識;
PADDR:指明IP地址;
NETMASK:子網掩碼;
GATEWAY: 默認網關;
DNS1:第一個DNS服務器指向;此處的DNS配置優先于/etc/resolv.conf文件中的DNS配置
DNS2:第二個DNS服務器指向;
USERCTL:普通用戶是否可控制此設備;
PEERDNS:如果BOOTPROTO的值為“dhcp”,是否允許dhcp server分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf文件中;
8、如何給網絡接口配置多個地址,有哪些方式
ifconfig:
ifconfig IFACE_ALIAS IPADDR
ip:
ip addr add ip_addr/mask dev IFACE label alias_label
配置文件:
ifcfg-IFACE_ALIAS
DEVICE=IFACE_ALIAS
9、常用的網絡管理工具有哪些
ifconfig命令
ifconfig [interface]
# ifconfig -a
# ifconfig INTERFACE [up|down]
ifconfig interface [aftype] options | address …
# ifconfig INTERFACE IP/mask [up]
# ifconfig INTERFACE IP netmask MASK
route命令
路由管理命令
查看:route -n
添加:route add
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
目標:192.168.1.3 網關:172.16.0.1
~]# route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
目標:192.168.0.0 網關:172.16.0.1
~]# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
~]# route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
默認路由,網關:172.16.0.1
~]# 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
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
目標:192.168.1.3 網關:172.16.0.1
~]# route del -host 192.168.1.3
目標:192.168.0.0 網關:172.16.0.1
~]# route del -net 192.168.0.0 netmask 255.255.255.0
netstat命令:
netstat – Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
顯示網絡連接:
netstat [–tcp|-t] [–udp|-u] [–raw|-w] [–listening|-l] [–all|-a] [–numeric|-n] [–extend|-e[–extend|-e]] [–program|-p]
-t: tcp協議相關
-u: udp協議相關
-w: raw socket相關
-l: 處于監聽狀態
-a: 所有狀態
-n: 以數字顯示IP和端口;
-e:擴展格式
-p: 顯示相關進程及PID
常用組合:
-tan, -uan, -tnl, -unl
顯示路由表:
netstat {–route|-r} [–numeric|-n]
-r: 顯示內核路由表
-n: 數字格式
顯示接口統計數據:
netstat {–interfaces|-I|-i} [iface] [–all|-a] [–extend|-e] [–program|-p] [–numeric|-n]
# netstat -i
# netstat -I IFACE
ip命令:
ip – show / manipulate routing, devices, policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
link OBJECT:
ip link – network device configuration
set
dev IFACE
可設置屬性:
up and down:激活或禁用指定接口;
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 addr add 192.168.1.111/24 dev eth0 label eth0:0
ip address show – look at protocol addresses
[dev DEVICE]
[label PATTERN]
[primary and secondary]
ip address flush – flush protocol addresses
使用格式同show
ip route – routing table management
ip route add
添加路由:ip route add TARGET via GW dev IFACE src SOURCE_IP
TARGET:
主機路由:IP
網絡路由:NETWORK/MASK
添加網關:ip route add defalt via GW dev IFACE
ip route delete
刪除路由:ip route del TARGET
ip route show
ip route flush
[dev IFACE]
[via PREFIX]
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 ]
10、linux系統軟件包管理方法
CentOS系統上rpm命令管理程序包:
安裝、卸載、升級、查詢、校驗、數據庫維護
安裝:
rpm {-i|–install} [install-options] PACKAGE_FILE …
-v: verbose
-vv:
-h: 以#顯示程序包管理執行進度;每個#表示2%的進度
rpm -ivh PACKAGE_FILE …
[install-options]
–test: 測試安裝,但不真正執行安裝過程;dry run模式;
–nodeps:忽略依賴關系;
–replacepkgs: 重新安裝;
–nosignature: 不檢查來源合法性;
–nodigest:不檢查包完整性;
–noscipts:不執行程序包腳本片斷;具體分為以下四類:(可單獨選擇某類)
%pre: 安裝前腳本; –nopre
%post: 安裝后腳本; –nopost
%preun: 卸載前腳本; –nopreun
%postun: 卸載后腳本; –nopostun
升級:
rpm {-U|–upgrade} [install-options] PACKAGE_FILE …
rpm {-F|–freshen} [install-options] PACKAGE_FILE …
upgrage:安裝有舊版程序包,則“升級”;如果不存在舊版程序包,則“安裝”;
freeshen:安裝有舊版程序包,則“升級”;如果不存在舊版程序包,則不執行升級操作;
rpm -Uvh PACKAGE_FILE …
rpm -Fvh PACKAGE_FILE …
其他選項與上面安裝一樣
–oldpackage:降級;
–force: 強行升級;
注意:
(1)uname -r 不要對內核做升級操作;Linux支持多內核版本并存,因此,對直接安裝新版本內核
(2) 如果原程序包的配置文件安裝后曾被修改,升級時,新版本的提供的同一個配置文件并不會直接覆蓋老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留
查詢:
rpm {-q|–query} [select-options] [query-options]
[select-options]
-a: 所有包
-f: 查看指定的文件由哪個程序包安裝生成
# rpm -qf /etc/fstab
setup-2.5.58-9.el5
-p /PATH/TO/PACKAGE_FILE:針對尚未安裝的程序包文件做查詢操作;
查詢尚未安裝的程序包
rpm -qlp /PATH/TO/PACKAGE_FILE
–whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個包所提供;
–whatrequires CAPABILITY:查詢指定的CAPABILITY被哪個包所依賴;
[query-options]
–changelog:查詢rpm包的changlog (制作的,非作者發布的)
-c: 查詢程序的配置文件
-d: 查詢程序的生成文檔
-i: information
-l: 查看指定的程序包安裝后生成的所有文件;
–scripts:程序包自帶的腳本片斷
-R: 查詢指定的程序包所依賴的CAPABILITY;
–provides: 列出指定程序包所提供的CAPABILITY;
–conflicts:列出創建包與哪些包可能沖突
用法:
-qi PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE
-qpi PACKAGE_FILE, -qpl PACKAGE_FILE, …
-qa
卸載:
rpm {-e|–erase} [–allmatches] [–nodeps] [–noscripts]
[–notriggers] [–test] PACKAGE_NAME …
校驗:
rpm {-V|–verify} [select-options] [verify-options]
S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTime differs
P caPabilities differ
包來源合法性驗正及完整性驗正:
完整性驗正:SHA256
來源合法性驗正:RSA
公鑰加密:
對稱加密:加密、解密使用同一密鑰;
非對稱加密:密鑰是成對兒的,
public key: 公鑰,公開所有人
secret key: 私鑰, 不能公開
導入所需要公鑰:
rpm –import /PATH/FROM/GPG-PUBKEY-FILE
CentOS 7發行版光盤提供的密鑰文件:RPM-GPG-KEY-CentOS-7
數據庫重建:
rpm {–initdb|–rebuilddb}
initdb: 初始化
如果事先不存在數據庫,則新建之;否則,不執行任何操作;
rebuilddb:重建
無論當前存在與否,直接重新創建數據庫;
11、配置本地repo respository
(1) 掛載光盤至某目錄,例如/media/cdrom
# mount -r -t iso9660 /dev/cdrom /media/cdrom
(2) 創建配置文件
在CentOS7中
name=
baseurl=file:///
gpgcheck=0
enabled=
12、寫一個腳本
#!/bin/bash
ls /etc/rc.d/rc3.d/K*|awk '{printf "%s Stop \n", $1}'|awk -F'/' '{print $NF}'
ls /etc/rc.d/rc3.d/S*|awk '{printf "%s Start \n", $1}'|awk -F'/' '{print $NF}'
k_lines=`ls /etc/rc.d/rc3.d/K*|awk '{print NR}'|tail -1`
s_lines=`ls /etc/rc.d/rc3.d/S*|awk '{print NR}'|tail -1`
echo "k start lines is $k_lines"
echo "s start lines is $s_lines"
13、寫一個腳本
#/bin/bash
sum=0
for i in $*;do
if id $i &> /dev/null ;then
userid=`id -u $i`
let sum=$sum+$userid
else
echo "user $i not found"
fi
done
echo "User id sum is $sum"
14、寫一些腳本
#/bin/bash
for i in $*;do
typed=0
typef=0
filenume=0
for ii in `ls $i`;do
let filenume=$filenume+1
if [ -d $i/$ii ];then
let typed=$typed+1
elif [ -f $i/$ii ]; then
let typef=$typef+1
fi
done
echo "$i"
echo "$i director $typed, file $typef"
done
15、寫一個腳本
#!/bin/bash
for i in $*;do
if ! id $i > /dev/null ; then
echo "There is no for user $i"
else
userid=`id -u $i`
if [ $userid -ge 500 ];then
echo "user $i is average user "
else
echo "user $i is system user"
fi
fi
done
16、寫一個腳本
(1) 添加10用戶user1-user10;密碼同用戶名;
(2) 用戶不存在時才添加;存在時則跳過;
(3) 最后顯示本次共添加了多少用戶;
#!/bin/bash
for i in {1..10}; do
if id user$i &> /dev/null ;then
echo "user$i exists."
continue 3
else
useradd user$i
if [ $? -eq 0 ]; then
echo "user$i" | passwd –stdin user$i &> /dev/null
echo "useradd user$i finished."
let sum++
fi
fi
done
echo " useradd $sum user "
原創文章,作者:N24_xingxiu,如若轉載,請注明出處:http://www.www58058.com/64062
總結的還是不錯的,能注意下整體排版會更不錯~繼續加油~