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(系统启动时读取)
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.178linux.com/64062
评论列表(1条)
总结的还是不错的,能注意下整体排版会更不错~继续加油~