1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。
设备 |
功能 |
使用场景 |
网桥 |
用于连接不同网段,将相似的网络连接起来,隔离信息。 |
连接不同部门间的局域网;连接地理位置分散并且相距较远的局域网,可以增加工作的物理距离;采用由网桥连接的多个局域网调节负载;网桥可以设置在局域网的关键部位,防止单点失常而破坏整个系统等。 |
集线器 |
对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。发送的数据没有针对性,而是采用广播方式发送。 |
局域网中 |
二层交换机 |
工作于OSI模型的第二层,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。 |
|
三层交换机 |
在OSI模型中第三层实现数据包的高速转发,既可实现网络路由功能,又可根据不同网络状态做到最优网络性能。 |
核心骨干网 |
路由器 |
连接不同的网络 |
局域网、广域网中 |
2、IP地址的分类有哪些?子网掩码的表示形式及其作用
类别 |
IP地址范围 |
子网掩码 |
私有IP地址范围 |
A |
0.0.0.0-127.255.255.255 |
255.0.0.0 |
10.0.0.0-10.255.255.255 |
B |
128.0.0.0-191.255.255.255 |
255.255.0.0 |
172.16.0.0-172.31.255.255 |
C |
192.0.0.0-223.255.255.255 |
255.255.255.0 |
192.168.0.0-192.168.255.255 |
IP地址与子网掩码按位进行“与”运算可以得出设备所在的网络地址
3、计算机网络的分成模型有哪些(OSI模型和TCP/IP模型),每一层的功能及涉及到的物理设备有哪些。
OSI模型七层 |
功能 |
物理设备 |
应用层 Application |
网络服务与使用者应用程序间的一个接口 |
终端设备(PC、手机、平板等) |
表示层 Presentation |
数据表示、数据安全、数据压缩 |
终端设备(PC、手机、平板等) |
会话层 Session |
会话层连接到传输层的映射;会话连接的流量控制;数据传输;会话连接恢复与释放;会话连接管理、差错控制 |
终端设备(PC、手机、平板等) |
传输层 Transport |
用一个寻址机制来标识一个特定的应用程序(端口号) |
终端设备(PC、手机、平板等) |
网络层 Network |
基于网络层地址(IP地址)进行不同网络系统间的路径选择 |
路由器 |
数据链路层 Data Link |
在物理层上建立、撤销、标识逻辑链接和链路复用 以及差错校验等功能。通过使用接收系统的硬件地址或物理地址来寻址 |
网桥、交换机 |
物理层Physical |
建立、维护和取消物理连接 |
光纤、同轴电缆、 双绞线、网卡、中继器 |
TCP/IP模型四层 |
功能 |
应用层 |
为用户提供所需要的各种服务,例如:FTP、Telnet、DNS、SMTP等 |
传输层 |
为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。该层定义了两个主要的协议:传输控制协议(TCP)和用户数据报协议(UDP) |
网际互联层 |
主要解决主机到主机的通信问题。它所包含的协议设计数据包在整个网络上的逻辑传输。注重重新赋予主机一个IP地址来完成对主机的寻址,它还负责数据包在多种网络中的路由。该层有三个主要协议:网际协议(IP)、互联网组管理协议(IGMP)和互联网控制报文协议(ICMP) |
网络接入层 |
4、如何将Linux主机接入到TCP/IP网络,请描述详细的步骤。(手动指定的方式)
1编辑ifcfg-eno16777736文件如下: # vim /etc/sysconfig/network-scripts/ifcfg-eno16777736 DEVICE="eno16777736" TYPE="Ethernet" UUID="414bf4dd-3cbd-466a-b48b-da00c3f790aa" ONBOOT=yes BOOTPROTO=static DNS1=114.114.114.114 IPADDR=192.168.1.103 NETMASK=255.255.255.0 GETWAY=192.168.1.1 NETWORK=192.168.1.0 BROADCAST=192.168.1.255 2保存文件并退出 3重启网络服务 #service network restart 4ping网关 #ping 192.168.1.1
5、为Linux主机配置网络信息的方式有哪些,请描述各个过程。
1通过配置文件配置(/etc/sysconfig/network-scripts/ifcfg-eno16777736) 2Linux安装时进行配置 3通过图形化界面配置
6、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;
在线的主机使用绿色显示;
不在线的主使用红色显示;
#!/bin/bash #Elephant for i in {1..254} ; do ping -c 1 172.16.250.$i | grep "Unreachable" >> /dev/null if [ $? -eq 0 ] ; then echo -e "\033[31m172.16.250.$i\033[0m" else echo -e "\033[32m172.16.250.$i\033[0m" fi done
7、详细描述每个网络接口的配置文件中各个参数的含义和其所对应的值;
网络接口配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE,IFACE:接口名称; ifcfg-IFACE配置文件参数: DEVICE:此配置文件对应的设备的名称; ONBOOT:在系统引导过程中,是否激活此接口; UUID:此设备的惟一标识; IPV6INIT:是否初始化IPv6; BOOTPROTO:激活此接口时使用什么协议来配置接口属性,常用的有dhcp、bootp、static、none; TYPE:接口类型,常见的有Ethernet, Bridge; DNS1:第一DNS服务器指向; DNS2:备用DNS服务器指向; DOMAIN:DNS搜索域; IPADDR: IP地址; NETMASK:子网掩码;CentOS 7支持使用PREFIX以长度方式指明子网掩码; GATEWAY:默认网关; USERCTL:是否允许普通用户控制此设备; PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向覆盖本地手动指定的DNS服务器指向;默认为允许; HWADDR:设备的MAC地址; NM_CONTROLLED:是否使用NetworkManager服务来控制接口;
8、如何给网络接口配置多个地址,有哪些方式?
给接口配置多个地址: ip addr之外,ifconfig或配置文件都可以; (1) ifconfig IFACE_LABEL IPADDR/NETMASK IFACE_LABEL: eth0:0, eth0:1, ... (2) 为别名添加配置文件; DEVICE=IFACE_LABEL BOOTPROTO:网上别名不支持动态获取地址; static, none
9、常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法。
ifconfig命令 #ifconfig 激活状态 UP处于激活 #ifconfig eno1677736 #ifconfig -a 所有接口,含非激活状态 #ifconfig eno16777736 192.168.1.103/24 up #ifconfig eno16777736 192.168.1.103 netmask 255.255.255.0 #ifconfig eth1 promisc 混杂模式 #ifconfig eth1 -promisc
route命令 #route -n 数字格式显示路由信息 #route #route add -net 10.0.0.0/8 gw 192.168.10.1 dev eth1 #route del -net 10.0.0.0/8 #route del default 删除默认网关
netstat命令 #netstat -rn #route -n 以上两命令相似 #netstat -t #netstat -tn #netstat -u #netstat -un #netstat -unl #netstat -tunl #netstat -tunlp #netstat -tan TCP的所有状态连接 #netstat -uan #netstat -tne e扩展格式 #netstat -tnl #netstat -I eth0 #netstat -i
hostname #hostnamectl status #hostnamectl set-hostname magedu.com
DNS #cat /etc/hosts #vim /etc/hosts 添加一行 172.16.10.6 www.magedu.com www magedu #ping www.magedu.com #ping www #ping magedu #dig -t A www.magedu.com #dig测试不检查hosts,ping命令先检查hosts 主机->IP #dig -x 101.200.188.233 IP->FQDN
——————
iproute 2家族:ip和ss命令
#rpm -qi iproute #uname -r 显示内核版本 #rpm -ql iproute
ip命令 #ip link show 与ifconfig相似 二层设备相关属性 #ip link list #ip link set eth1 down #ip link show #ip link set eth1 up #ip link show #ip link set eth1 multicast on #ip link show #ip link set eth1 multicast off #ip link show #ip link set eth1 down #ip link set eth1 name eno12 #ip link set eth1 down #ip link show #ip link set eth1 up
centos #ip netns add mynet网络名称空间 #ip link show #ip link set eno136777736 netns mynet #ip link show #ip netns exec mynet ip link show 在空间中执行命令 #ip netns del mynet #ip ad show #ip ad li #ip address add 192.168.10.100/24 dev eth1 #ifconfig eth1 0 删地址 #ip address add 192.168.10.100/24 dev eth1 #ip addr show eth1 #ifconfig eth1 #ip address add 192.168.10.101/24 dev eth1 #ifconfig eth1 #ip addr add 10.1.1.10/8 dev eth1 #label eth1:0加别名 #ip addr show eth1 #ifconfig eth1 加别名后可显示多ip #ip addr list eth1 #ip addr del 10.0.10.100/8 dev eth1 #ip addr flush dev eth1 #ip addr show eth1
ip route #ip route list #ip addr add 10.0.10.100/8 dev eth1 #ip addr add 10.0.20.100/8 dev eth1 #ip addr list eth1 #ip route add 192.168.0.0/24 via 10.0.0.1 dev eht1 #ip route list #ip route add 192.168.1.0/24 via 10.0.0.1 dev eth1 src 10.0.20.100 #ip route list #ip route add default via 172.16.0.1 dev eth0 #ip route delete 192.168.1.0/24 #ip route show src 172.16.100.6 #ip route get 192.168.0.0/24 #ip route flush 10/8
ss命令 #ss -tnl #ss -tan #ss -tan state ESTABLISHED #ss -tan `(dport=:22 or sport=:22)·
network 命令 #chkconfig --list C6 #service network restart 修改配置文件后,重启设备 C7 #systemctl #ip route add 10.0.0.0/8 via 192.168.10.1 立即生效 #ip route list #vim route-eno33554984 10.0.0.0 via 192.168.10.1 #systemctl restart network.service #ip route list #vim rote-en ADDRESS0=20.0.0.0 NETMASK=255.0.0.0 GETWAY=192.168.10.2
nmcli(centos7) #nmcli device status #nmcli device connect eno33554984 #nmcli device disconnect eno33554984 #nmcli conn show #nmcli conn modify eno33554984 t ipv4.address 192.168.30.100 #nmcli conn down eno33594984 #nmcli conn up eno33594984 配置生效
10、Linux系统软件包管理方法(安装、升级、卸载等操作)有哪些,以及如何管理的。
rpm命令:rpm [OPTIONS] [PACKAGE_FILE] 安装:-i, --install 升级:-U, --update, -F, --freshen 卸载:-e, --erase 查询:-q, --query 校验:-V, --verify 数据库维护:--builddb, --initdb
安装: rpm {-i|--install} [install-options] PACKAGE_FILE ... rpm -ivh PACKAGE_FILE ... GENERAL OPTIONS: -v:verbose,详细信息 -vv:更详细的输出 [install-options]: -h:hash marks输出进度条;每个#表示2%的进度; --test:测试安装,检查并报告依赖关系及冲突消息等; --nodeps:忽略依赖关系;不建议; --replacepkgs:重新安装 --nosignature:不检查包签名信息,不检查来源合法性; --nodigest:不检查包完整性信息; 注意:rpm可以自带脚本; 四类:--noscripts preinstall:安装过程开始之前运行的脚本,%pre , --nopre postinstall:安装过程完成之后运行的脚本,%post , --nopost preuninstall:卸载过程真正开始执行之前运行的脚本,%preun, --nopreun postuninstall:卸载过程完成之后运行的脚本,%postun , --nopostun
11、如何使用发行版光盘作为yum repository,请描述该过程。
如何使用光盘当作本地yum仓库: (1) 挂载光盘至某目录,例如/media/cdrom # mount -r -t iso9660 /dev/cdrom /media/cdrom (2) 创建配置文件 [CentOS7] name= baseurl= gpgcheck= enabled= yum的命令行选项: --nogpgcheck:禁止进行gpg check; -y: 自动回答为“yes”; -q:静默模式; --disablerepo=repoidglob:临时禁用此处指定的repo; --enablerepo=repoidglob:临时启用此处指定的repo; --noplugins:禁用所有插件; 例,centos7使用本地光盘yum仓库 #cd /etc/yum.repos.d/ #vim local.repo [base] name=CentOS 7 Release ... baseurl=file:\\\media/cdrom enabled=1 gpgcheck=0 #yum repolist
12、写一个脚本,完成以下功能
(1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;
(2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;
(3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;
(4) 分别统计S开头和K开头的文件各有多少;
#!/bin/bash #Elephant ls -l /etc/rc.d/rc3.d | awk ' { if (substr($9,1,1)=="K") {printf $9" stop \n";statek[$NF]++;} else if (substr($9,1,1)=="S") {printf $9" start \n";states[$NF]++;} } END {printf "S total " length(states)"\n"; printf "K total " length(statek)"\n";} '
13、写一个脚本,完成以下功能
(1) 脚本能接受用户名作为参数;
(2) 计算此些用户的ID之和;
#!/bin/bash #Elephant if [ $# -eq 0 ];then echo "At least one user" exit 2 else declare -i sumid=0 for user in $@;do userid=$(grep "^$1\>" /etc/passwd | cut -f 3 -d:) sumid=$sumid+$userid shift done echo "user(s) total id is $sumid" fi
14、写一个脚本
(1) 传递一些目录给此脚本;
(2) 逐个显示每个目录的所有一级文件或子目录的内容类型;
(3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;
#!/bin/bash #Elephant if [ $# -eq 0 ] ;then echo "At least one dir" exit 2 else for dir in $@ ; do e="" export e declare -i countfiles=0 export countfile declare -i countdirs=0 export countdirs ls -l $dir | awk '{if(substr($1,1,1)=="-") { a="'$dir'"; b="/"; d=$9; c=(a""b); e=(c""d); ENVIRON["e"]=e; system("cat "e""); ENVIRON["countfiles"]++; printf "=============>"ENVIRON["e"] " is NO."ENVIRON["countfiles"]" file in ""'$dir'""\n---------------------------------------------\n"; } else if(substr($1,1,1)=="d") {a="'$dir'"; b="/"; d=$9; c=(a""b) e=(c""d) ENVIRON["e"]=e; ENVIRON["countdirs"]++; system("ls -l "e""); printf "==============>"ENVIRON["e"]" is NO."ENVIRON["countdirs"]" dir in ""'$dir'""\n---------------------------------------------\n"; }' done fi
15、写一个脚本
通过命令行传递一个参数给脚本,参数为用户名
如果用户的id号大于等于500,则显示此用户为普通用户;
#!/bin/bash #Elephant if ! [ $# -eq "1" ];then echo "We only need one user" exit 2 else declare -i userid userid=$(grep "^$1\>" /etc/passwd | cut -f3 -d:) if [ $userid -ge 500 ];then echo "$1 is a common user" fi fi
16、写一个脚本
(1) 添加10用户user1-user10;密码同用户名;
(2) 用户不存在时才添加;存在时则跳过;
(3) 最后显示本次共添加了多少用户;
#!/bin/bash #Elephant declare -i tt=0 for i in {1..10};do id user$i &> /dev/null if [ $? -eq 0 ] ; then echo "user$i exits " else useradd user$i let tt++ echo "user$i" | passwd --stdin user$i fi done echo "We created $tt user(s)"
17、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;
#!/bin/bash #Elephant for i in {20..100} ; do ping -c 1 172.16.250.$i | grep "Unreachable" >> /dev/null if ![ $? -eq 0 ] ; then echo "172.16.250.$i" fi done
18、打印九九乘法表;
#!/bin/bash #Elephant for i in {1..9};do j=1 while [ $j -le $i ];do printf "$i*$j=$[$i*$j] \t" let j++ done printf "\n" done
运行结果: 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
原创文章,作者:N22_Elephant,如若转载,请注明出处:http://www.178linux.com/50113
评论列表(2条)
对于TCP/IP的相关知识希望能有对建连和断开有全面的认知,整个过程还是要很熟练的,加油。
@luoweiro:嗯嗯,看到那块视频了,有了深入理解