一、网络基础知识
1、 集线器(hub)工作在第一层(即物理层),它没有智能处理能力,对它来说,数据只是电流而已,当一个端口的电流传到集线器中时,它只是简单地将电流传送到其他端口,至于其他端口连接的计算机接收不接收这些数据,它就不管了,每次发送时都会广播。
2、交换机(Switch又名交换式集线器)工作在第二层(即数据链路层),它要比集线器智能一些,对它来说,网络上的数据就是MAC地址的集合,它能分辨出帧中的源MAC地址和目的MAC地址,因此可以在任意两个端口间建立联系,但是交换机并不懂得IP地址,只知道MAC地址,交换机只能缩小冲突域,而不能缩小广播域 ,现在的交换机分为:二层交换机,三层交换机或是更高层的交换机。三层交换机同样可以有路由的功能,而且比低端路由器的转发速率更快。虽然第三层以上交换机具有VLAN功能,也可以分割广播域,但是各子广播域之间是不能通信交流的,它们之间的交流仍然需要路由器。
3、路由器(Router)工作在第三层(即网络层),它比交换机还要“聪明”一些,它能理解数据中的IP地址,如果它接收到一个数据包,就检查其中的IP地址,如果目标地址是本地网络的就不理会,如果是其他网络的,就将数据包转发出本地网络,路由器可以隔离广播域,广播报文不能通过路由器继续进行广播。
二、OSI七层模型
1、OSI模型。1物理介质:物理层,物理层协议、2链路层:数据帧,链接层协议、3网络层:数据包,IP协议、4传输层:端口用于标记进程 (TCP,UDP、0-65535、并且是用套接字Socket: IP:port)、5会话层 6表示层 7应用层:标记资源。
2、IPV4私有地址A类一个:10.0.0.0~10.255.255.255、B类16个:172.16.0.0~172.31.255.255、C类256个:192.168.0.0~192.168.255.255、公有地址IP:从0.0.0.0 – 127.255.255.255、B类IP:从128.0.0.0 – 191.255.255.255、C类IP:从192.0.0.0 -223.255.255.255、全0:网络地址、全1:广播地址
三、Linux网络属性配置
1、IP/NETMASK,路由(主机路由,网络路由,默认网关),DNS服务器(主DNS服务器,备用DNS服务器),主机名,配置网络属性(静态配置,动态配置DHCP)
2、配置IP:
用户空间工具:ifconfig (较早工具,包名net-tools), ip (新工具,包名iproute2),在centos7上ifconfig已经不再使用;立即生效不会永久有效。
网络设备配置文件:/etc/sysconfig/ network-scripts/,ifup启用接口、ifdown关闭接口、配置主机名/etc/resolv.cof;永久有效不会立即生效。
GUI/TUI:/etc/sysconfig/network/GUI
网络设备的配置方式:内核识别硬件设备(驱动),设备名称:(以太网ethx,ens33),(ppp网络:pppx),(loopback:本地回环设备lo)
3、配置ip:可以用ifconfig 默认显示所有处于激活状态的连接,
配置例如:(ifconfig eth0 192.168.18.23 netmask 255.255.255.0或者用短格式 ifocnfig eth0 192.168.18.23/24)配置文件字段说明(DEVICE设备文件、BOOTPROTO{bootp|dhcp|static|none}、NM_CONTROLLED={yes|no}: 是否接受NetworkManager服务脚本来配置此设备centos6上有此选项一般设置no、ONBOOT={yes|no}: 是否在开机自动激活此接口、TYPE{Ethernet|Bridge}: 网络接口类型、IPADDR地址、NETMASK子网掩码、GATEWAY网关、USERCTL={yes|no}: 是否允许普通用控制此接口、PEERDNS={yes|no}: 不接受DHCP服务器指派的DNS服务器地址)
4、配置路由:route显示路由信息 -n数字格式显示、add 和del相关参数
<1> -net:目标为网络、-net NET_ADDRESS gw NEXT_HOP [dev]
例如:#Route add –net 10.0.0.0/8 gw 192.168.1.254 #route –n 查看
#route add –net 0.0.0.0 gw 192.168.1.254
#route add default gw 192.168,1.254 添加默认路由
删除路由 #route del –host 192.168.10.177 ,#route –n 查看
<2> -host:目标为主机、-host HOST_IP gw NEXT_HOP [dev]
例如:route add – host 192.168.1.188 gw 192.168.1.254 #route –n 查看
gw:gateway,后面接设备名称 eth0 等,如果-net 0.0.0.0表示默认路由目标为任意地址)
添加路由举例:route add -net 192.168.20.0/24 gw 192.168.10.1)
删除路由举例:route del 192.168.20.0。
5、route表字段说明(Destination:目标网络或目标主机、Gateway:如果该字段为0.0.0.0表示本地网络无需网关、Genmask:子网掩码、 Flags:(U表示生效,G表示网关可以把数据通过网关送到指定网络中,H表示主机路由无需指定子网掩码32举例:route add -host 192.168.20.33 gw 192.168.10.1) Metric:优先级 Ref:Use Iface),想路由信息永久有效需在/etc/sysconfig/network-script/下添加route-eth0,有2种格式添加路由表(第一方式举例:192.168.20.0 via 192.168.10.1,第二种方式每三行一个条目:ADDESS0=192.168.20.0、NETMASK0=255.255.255.0、GATEWAY0=192.168.10.1)
6、DNS服务器地址(本地解析: /etc/hosts,配置文件中设定DNS服务器 /etc/resolv.conf),配置开机是否自动运行# chkconfig servername on|off,查看哪些服务开机自动运行:chkconfig --list、
四、网络高级功能配置
1、一个网卡配置多个ip例如:ifconfig eth0:0 192.168.146.129,可以添加配置文件ifcfg-eth0:0(必须使用静态ip,DEVICE=、BOOTPROTO={static|none}、IPADDR=、NETMASK=、ONBOOT=、USERCTL=)还可以用system-config-network-tui配置网络接口
2、ping因特网包探索器Packet Internet Groper:-c指定发送多少报文个数,-W等待响应超时时间。traceroute获取从当前主机到达目标主机所经过的所有网关,mtr相当于ping和traceroute、netstat显示网络状态(-t显示tcp协议、-u显示udp协议、-l显示连接状态、-p显示进程号、-n以数字方式显示、-a显示全部、-r显示路由表)ethtool显示网络接口设备属性-S显示设备接口的统计数据
3、ip (link 管理接口,show显示管理接口状态例如:ip link show,set设定网络接口{up | down}启动或关闭接口例如 ip link set eth0 up)(addr 管理协议地址:显示或清除 {show | flush}例如:ip addr show eth0,添加或删除{add | del}例如:ip addr add 192.168.30.4/24 dev eth0、删除ip addr del 192.168.30.4/24 dev eth0),(route路由管理:{show | list | flush}例如:ip route list,{add | del}例如:ip route add 192.168.20.0/24 via 192.168.18.1 dev eth1)
4、ss类似netstat(-t显示tcp进程信息、-u显示udp进程信息、-n以数字方式显示、-p显示pid、-l监听的、-a所有进程、-e扩展信息、-m套接字相关的内存使用信息)
五、作业练习:
1、扫描公司内的所有主机;在线的,使用绿色显示;不在线,使用红色显示;最后分别显示:在线和不在线各有多少主机;
OnlineCounter=0
OfflineCounter=0
for((i=1;i<256;i++));do
if ping -c 1 -w 1 192.168.18.$i &> /dev/null ;then
let OnlineCounter++
echo -e "\033[32m 192.168.18.$i \033[0m"
else
let OfflineCounter++
echo -e "\033[31m 192.168.18.$i \033[0m"
fi
done
echo "Online counter: $OnlineCounter and Offline Counter: $OfflineCounter"
2、提示用户输入一个IP地址;如果用户输入的地址不正确,则提醒其重新输入直到正确为止;如果正确,则添加至eth0上的辅助地址;得出正确的掩码;
read -p "plese inport ip address:" ipaddress
while [ $ipaddress != "" > /dev/null ];do
if `echo "$ipaddress" | grep -E "\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-3][0-9])(\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){2}\.([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-4])" > /dev/null`;then
munber=`echo "$ipaddress" | cut -d. -f1`
mask=0
if [ $munber -lt 128 ];then
mask=8
elif [ $munber -lt 192 -a $munber -gt 127 ];then
mask=16
else
mask=24
fi
ifconfig eth0:1 $ipaddress/$mask
exit 0
else
read -p "you inport ipaddress error plese Input again: " ipaddress
fi
done
课外任务:nmap, ncat, tcpdump