1、,UNIX网络管理,赵永安 ,BSD 网络内核,应用层,shell,网络设备,BSD Socket 层,INET Socket层,IP 层,物理接口/数据链路层,TCP,UDP,UNIX系统联网的基本条件,TCP/IP协议体系结构,IP、ARP、RARP、ICMP、IGMP,数据链路层和物理层,TCP,UDP,应用协议 (ftp、http),应用协议 (DNS、NFS),port与socket,思想:建立基于TCP/IP协议的远程、异构环境的通讯体系策略:涉及应用层、传输层和网络层port 位于TCP/IP应用层,定义网络服务类型 端口由数字组成,端口总数216 分为三类:公认端口 注册端口
2、动态或私有端口socket TCP/IP通讯规则 应用程序调用TCPIP协议的技术(函数集) 涉及三个参数:IP地址、传输层协议和端口号技术实现:定义基于端口和协议的文件/etc/services,Well Known Ports,# The Well Known Ports are those from 0 through 1023. # The Registered Ports are those from 1024 through 49151 # The Dynamic and/or Private Ports are those from 49152 through 65535 # #
3、 Each line describes one service, and is of the form: # service-name port/protocol aliases . # comment,ftp-data 20/tcp ftp-data 20/udp ftp 21/tcp ftp 21/udp http 80/tcp www # WorldWideWeb HTTP http 80/udp www # HyperText Transfer Protocol smtp 25/tcp mail pop3 110/tcp pop-3 # POP version 3 imap 143/
4、tcp imap2 # Interim Mail Access Proto v2,root# less /etc/services,网络接口,思想:用于屏蔽网络环境中网络设备的多样性提供一个对所有硬件类型收发数据处理的相同操作集合 策略: 设立接口名,标识网络设备 每个接口至少设置一个IP地址 技术:定义设备物理特性配置文件root # less /etc/sysconfig/hwconf. class: NETWORKdetached : 0device : ethdriver: XXXXX dese: “”,第1块网卡配置信息,网络接口,设备驱动设备 配置文件: /etc/modules.
5、conf 功 能:提供LINUX网络适配器的驱动类型基本结构: root # more /etc/modules.conf alias eth0 pcnet32 alias scsi_hostadapter BusLogic alias usb-controller ehci-hcd alias usb-controller1 usb-uhci alias sound-slot-0 es1371 驱动检测: root # grep eth /etc/modules.conf alias eth0 pcnet32 注:对于系统不能自动完成监测的任何设备,包括网卡需要系统管理员寻找、选择和手工安装
6、配套的设备驱动程序。,网络接口,网络基本配置文件文件: /etc/sysconfig/network 功 能: LINUX网络环境的基本配置文件,决定LINUX网络通讯的基础基本结构: root # more /etc/sysconfig/networkNETWORKING= yes | no /系统是否启用网络功能 HOSTNAME= Mylinux /主机名 GATEWAYDEV= eth0 /与默认网关通讯所用的网卡 GATEWAY= 192.168.10.1 /静态路由中的默认网关 FORWARD_IPV4= false | true /是否开启IP数据包转发,单网卡环境一般为fals
7、e DOMAINNAME= localhost /本机的域名,网络接口,网卡配置文件 配置文件的命名规则:ifcfg-网卡类型及网卡序号 对首块以太网卡而言,其配置文件为:ifcfg-eth0配置文件: /etc/sysconfig/network-scripts/ ifcfg-eth0 功 能: 定义和记录第一块以太网卡的网络环境配置。 基本结构: root # /etc/sysconfig/network-scripts/ ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.10.250 NETMASK=255
8、.255.255.0 GATEWAY=192.168.10.1 BROSDCAST=192.168.10.255 NETWORK=192.168.10.0,配置主机名,(一)显示主机名 # hostnamestu1 (二) 设置主机名(仅生存在swap中,关机后无效) # hostname Myhost(三) 修改主机名为了使修改的主机名长期有效,需要修改网络配置文件/etc/sysconfig/network # vi /etc/sysconfig/networkHOSTNAME = Mylinux /用户定义的主机名,配置主机名,(四) hostname的解析过程# hostnamestu
9、1,# hostname -av,网卡配置法(1) - ifconfig,功能:显示检查、配置、或监控网络接口 命令:ifconfig interface ip-add netmask mask-add up/down参数: interface 网络设备接口(eth0、eth1、eth2) ip-add ip地址 netmask 掩码标志字 mask-add 掩码地址 up/down 启用 /关闭 缺省参数为显示网络接口状态例: ifconfig eth0 192.168.10.250 netmask 255.255.255.0 up,ifcfg-eth0 示例,# more /etc/sys
10、config/network-scripts/ifcfg-eth0 DEVICE = eth0 /设备名eth0; BOOTPROTO = static /启动状态::静态IP地址; BROADCAST=192.168.10.255 /广播地址为192.168.0.255; IPADDR = 192.168.10.250 / IP 地址为192.168.0.1; NETMASK = 255.255.255.0 /子网掩码255.255.255.0; NETWORK = 192.168.10.0 /网络号192.168.0.0; ONBOOT = yes /规定服务器启动时激活; TYPE =
11、Ethernet /网络类型:以太网;,ifconfig,eth0 Link encap:Ethernet HWaddr 00:D0:B7:B6:E6:15 第一块网卡inet addr:192.168.10.250 Bcast:192.168.10.255 Mask:255.255.255.0 ip、广播、掩码UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 网卡启用,多播,对外通信RX packets:2798315 errors:0 dropped:0 overruns:0 frame:0 接收数据包TX packets:1976457 e
12、rrors:0 dropped:0 overruns:0 carrier:0 发送数据包collisions:0 txqueuelen:100 RX bytes:330470712 (315.1 Mb) TX bytes:246062098 (234.6 Mb)Interrupt:10 lo Link encap:Local Loopback 本地回路inet addr:127.0.0.1 Mask:255.0.0.0UP LOOPBACK RUNNING MTU:16436 Metric:1 MTU特殊值,导致127不能上网RX packets:317 errors:0 dropped:0
13、overruns:0 frame:0TX packets:317 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0 RX bytes:39091 (38.1 Kb) TX bytes:39091 (38.1 Kb),$ /sbin/ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:10:5A:00:87:22 inet addr:192.168.10.250 Bcast:192.168.10.255 Mask:255.255.255.0UP BROADCAST RUN
14、NING MULTICAST MTU:1500 Metric:1RX packets:9625272 errors:0 dropped:0 overruns:0 frame:0TX packets:6997276 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:100 Interrupt:19 Base address:0xc800输出显示 MAC 地址(Hwaddr)、所分配的 IP 地址(inet addr)、广播地址(Bcast)和网络掩码(Mask)。接口处于 UP 状态,其 MTU 为 1500 并且 Me
15、tric 为 1。接下来的两行给出有关接收到(RX)和已发送的(TX)信息包数,以及错误、丢弃和溢出信息包数的统计。最后两行显示冲突信息包的数目、发送队列大小(txqueuelen)和 IRQ 以及这块卡的基址。,ifconfig,网卡配置法(2) - netconfig,root # netconfig,为了使配置状态生效,需要启用网络环境。 root # service network restart 正常时系统提示: Shutting down interface eth0: OK Shutting down loopback interface:OK Setting network p
16、arameters: OK Bringing up loopback interface: OK Bringing up interface eth0: OK,网卡状态控制,禁用状态设置 root # ifconfig eth0 down root # ifdown eth0启用状态设置 root # ifconfig eth0 up root # ifup eth0,使用已保存的配置激活和禁用网络设备,网卡配置的特殊方法,(1)设置网卡的MTU (Max Transfer Unit)值将第一块网卡的MTU值设置为900 root # ifconfig eth0 mut 900,(2)设置网卡
17、接收网络传输的所有数据包 启用promiscuous模式,将第一块网卡设置为监控状态 root # ifconfig eth0 promisc,(3)修改设备硬件地址 修改第一块网卡的MAC(硬件)地址 root # ifconfig eth0 downroot # ifconfig eth0 hw ether 00:11:22:33:44:55:66root # ifconfig eth0 up,(4)设备别名 (Device alias) 在第一块网卡上捆绑三个IP地址 root # ifconfig eth0:0 192.156.250.111 netmask 255.255.255.0
18、 root # ifconfig eth0:1 192.156.250.222 netmask 255.255.255.0,网关(路由)设置,位于应用层 网络掩码实现相同网段的数据访问 不同网段或子网主机之间的访问需要网关支持,子网通讯,swith,Subnet 1 192.168.1.x,Subnet 2 192.168.2.x,Subnet 3 192.168.3.x,192.168.9.0,192.168.10.1,192.168.7.0,192.168.10.250,192.168.11.0,192.168.13.0,1、最小路由:同一网段内主机的访问,不需要与其它的 TCP/IP 外
19、网通信,而且无法实现子网之间的访问。系统安装时生成 2、静态路由用于网络与外网相接,或实现子网之间的网关访问数据包传输的路由是固定的 静态路由需要系统管理员手工创建不具备随网络的变化而自动调整的功能。当网络变化时,必须手工重新配置该路由表。,四种常见的路由配置,3、动态路由:适用于大型网络,出于冗余故障恢复的目的,通常安装了多个路由器,指向同一远程网络。根据路由设备之间所交换的信息动态地构造、更新路由信息。自动调节路由来适应不断变化的网络条件 。缺点:设备间的路由信息交换会消耗相当大的带宽。4、静态和动态路由的组合,四种常见的路由配置,显示内核默认路由表 命令: route例 # route
20、Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface127.0.0.0 127.0.0.1 255.0.0.0 U 0 0 0 lo 192.168.10.0 192.168.10.250 255.255.255.0 U 0 0 0 eth0,最小路由,第一项是到 localhost 的回送路由,配置 lo 时自动创建的 第二项是通过192.168.1.0的eth0接口到网络的内部路由,Destination:表示路由的目标网络地址。 Gateway: 表示网关的主机名或IP地址。 “*”表
21、示无网关 Genmask: 路由网络掩码。内核通过Genmask和数据包的IP地址进 行 “与”操作来设置路由 Flags: 表示路由的标志。U - 启动路由,H - target主机 ,G - 网关, , D - 动态路由R - 动态路由复位, M - 修改路由, !- 拒绝路由 Metric: 表示路由的单位开销量。 Ref: 表示依赖本路由现状的其它路由数目。 Use: 表示使用路由表条目的数目。 Iface: 表示路由所发送的包的目的网络。,Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use
22、Iface,路由表项,路由命令,功能:添加、删除系统当前路由表中的默认网关记录命令格式: (1)静态路由(默认网关)route add default gw 网关IP地址 网卡设备名 (default只能有一个)route del default gw 网关IP地址 (2)网段 route add net 网络地址 netmask 子网掩码 设备名 gw 网关IP地址 route del 网络地址 netmask 子网掩码,# route add default gw 192.168.10.1 eth0 # route Kernel IP routing table Destination G
23、ateway Genmask Flags Metric Ref Use Iface 127.0.0.0 * 255.0.0.0 U 0 0 0 lo 192.168.10.0 * 255.255.255.0 U 0 0 0 eth0 default 192.168.10.1 0.0.0.0 UG 0 0 0 eth0第一项是到 localhost 的回送路由,配置 lo 时自动创建的。 第二项是通过192.168.1.0的eth0接口到网络 的内部路由。 第三项是指定192.168.10.1 eth0接口作为本网络的默认静态路由,即外部路由,一般设为网关(路由器或交换机)的IP地址 局域网出口
24、交换机地址,配置静态路由,在路由表中添加网络段,功能:添加一个网络段到路由表中 # route add net 网络地址 netmask 子网掩码 接口名示例: # route add net 192.168.11.0 netmask 255.255.255.0 eth0 # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface127.0.0.0 * 255.0.0.0 U 0 0 0 lo 192.168.10.0 * 255.255.255.0 U 0 0 0 eth0 19
25、2.168.11.0 * 255.255.255.0 U 0 0 0 eth0 default 192.168.10.1 0.0.0.0 UG 0 0 0 eth0,拒绝一个网络路由,root # route add net 192.168.11.0 netmask 255.255.255.0 reject root # route - Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 127.0.0.0 * 255.0.0.0 U 0 0 0 lo 192.168.10.0 * 255
26、.255.255.0 U 0 0 0 eth0 192.168.11.0 * 255.255.255.0 ! 0 - 0 - default 192.168.10.1 0.0.0.0 UG 0 0 0 eth0 - 注:192.168.11.0网段的Flags 为 !状态,表示该网段被拒接路由,删除静态路由,# route del default注:一般静态路由记录仅有一个。因此,在添加静态路由之前,必须首先删除已有的默认路由记录。,# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use
27、Iface127.0.0.0 * 255.0.0.0 U 0 0 0 lo 192.168.10.0 * 255.255.255.0 U 0 0 0 eth0,在路由表中删除网络段,功能:删除一个网络段 # route del net 网络地址 netmask 子网掩码例: # route del net 192.168.11.0 netmask 255.255.255.0# routeKernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface127.0.0.0 * 255.0.0.0 U 0 0
28、 0 lo 192.168.10.0 * 255.255.255.0 U 0 0 0 eth0 default 192.168.10.1 0.0.0.0 UG 0 0 0 eth0,LINUX系统网络路由信息的记录文件:/proc/net/route 进程目录,不能备份,开机重新生成,关机自动清除,目的: 确认计算机在局域网中启动后能否与其他主机通讯。前提: Linux 启动过程中,系统监测网络设备,在屏幕上滚动显示测试结果,有关网络的信息 :Setting hostname: : workname OK or FAILED Bringing up Interface lo: OK or FA
29、ILED Bringing up interface eth0: OK or FAILED,测试网络,netstat,使用权限 : 所有使用者使用方式 : netstat 参数为你服务功能说明 : 查看网络连接状态; 检查网络接口配置信息; 检查路由表; 获取各种网络协议的运行统计信息。,netstat 的参数,-a 显示所有连接的信息,包括那些正在侦听的all -i 显示所有已配置网络设备的统计信息information -c 持续更新网络状态(每秒一次)直至被人为中止(C)constant -r 显示内核路由表route -n 以数字(原始)格式而不是已解析的名称显示远程和本地地址 -t
30、仅显示 TCP 套接字信息 -v 显示 netstat 的版本信息,显示路由表,$ netstat rnKernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 210.34.6.0 0.0.0.0 255.255.255.128 U 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 210.34.6.2 0.0.0.0 UG 0 0
31、0 eth0 - n 选项以IP地址的形式输出,避开DNS服务器主机名方式 Gateway路由条目所指的网关,没有使用网关,出现星号(*)或者0.0.0.0=default; Genmask路由地址掩码,与I P地址进行按位“与”计算,确定适宜的路由 Flags标记的说明如下: G 路由将采用网关。 U 准备使用的接口处于“活动”状态。 H 通过该路由,只能抵达一台主机。 D 如果路由表的条目是由ICMP重定向消息生成的,就会设置这个标记。 M 如果路由表条目已被ICMP重定向消息修改,就会设置这个标记。 Iface显示连接的物理网卡,如eth0表示用第一块,eth1表示用第二块。,显示网络接
32、口特性,$ netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg Flgeth0 1500 0 787165 0 0 1 51655 0 0 0 BRU eth1 1500 0 520811 0 0 0 1986 0 0 0 BRU lo 3924 0 1943 0 0 0 43 0 0 0 LRU MTU :接口的最大传输单位 Met :接口的度量值; RX - OK / TX - OK :两列表示的是已经准确无误地收发了多少数据包 R
33、X-ERR/TX-ERR :两列表示的是收发产生了多少错误的数据包 RX-DRP/TX-DRP :两列表示的是收发丢弃了多少数据包 RX-OVR/TX-OVR :两列表示的是由于误差使收发遗失了多少数据包 Flg :接口设置的标记,说明如下: B 已经设置了一个广播地址broadcast。 L 该接口是一个回送设备loop。 M 接收所有数据包(混乱模式)。 N 避免跟踪。 O 在该接口上,禁用A R P。 P 这是一个点到点链接。 R 接口正在运行running。 U 接口处于“活动”状态up。,Tcp状态 $ netstat t(tcp),Active Internet connectio
34、ns (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:32768 *:* LISTEN tcp 0 0 *:sunrpc *:* LISTEN tcp 0 0 *:http *:* LISTEN tcp 0 0 *:ftp *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 *:telnet *:* LISTEN tcp 0 0 *:https *:* LISTEN tcp 0 2 210.26.53.254:telnet
35、210.26.53.21:1056 ESTABLISHED 用n给端口号,不用名称 监听,网络调试与测试,ping检查指定地址是否在活动; 检查网络性能:延时、抖动、丢包率等。 不丢包,波动小,avg10ms才好,ping,ICMP协议原理,ICMP协议是TCP/IP协议的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息可以通过ping命令发送ICMP回应请求消息并记录收到ICMP回应回复消息,通过这些消息来对网络或主机的故障提供参考依
36、据ICMP协议本身的特点决定了它非常容易被用于攻击网络上的路由器和主机。比如,可以利用操作系统规定的ICMP数据包最大尺寸不超过64KB这一规定,向主机发起“Ping of Death”(死亡之Ping)攻击。“Ping of Death” 。攻击的原理是:如果ICMP数据包的尺寸超过64KB上限时,主机就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使主机死机。,向目标主机长时间、连续、大量地发送ICMP数据包,无效地占据网络带宽资源,最终导致正常的网络传输系统瘫痪。另外,大量的ICMP数据包会形成“ICMP风暴”,使得目标主机耗费大量的CPU资源处理,乃至无法正常处理请求与应答的访问业务。因此,在线服役的网络服务器一般均采用关闭ICMP协议的方法,以减少非正常访问的影响和干扰。,(1)关闭ICMP协议,拒绝ping命令访问 root # echo 1 /proc/sys/net/ipv4/icmp_echo_ignore_all 关闭ICMP协议,执行以下命令被拒绝,命令运行失败: root # ping 127.0.0.1(2)开启ICMP协议,提供ping命令访问 root # echo 0 /proc/sys/net/ipv4/icmp_echo_ignore_all 开启ICMP协议,以下命令成功运行: root # ping 127.0.0.1,