Linux网络属性管理(1)
Bell(AT&T), PARC(Xerox)
以太网
计算机网络:共享底层通信信道
CSMA/CD算法
token环算法
MAC: Media Access Control
IP网络:Internet Protocol
32bits: 每8bits一段,共4段
8bits: 0-255
0000 0000 – 1111 1111
1.1.1.1
地址被切割为两部分:
左侧:区域标识,网络标识
右侧:主机标识
网桥:分隔 冲突域
路由器:分隔 广播域
将一个大网络分隔成多个小网络,每个网络都自己的网络地址;
每个网络中可以存在多个主机,每个主机都有自己在本网络内惟一地址标识;
完整地址:网络地址 主机地址
IP地址分类:
A, B, C, D, E
0000 0000 – 1111 1111
A类网络:
0 000 0001 – 0 111 1111: 1-127
N.H.H.H
B类:
10 00 0000 – 10 11 1111: 128-191
N.N.H.H
C类:
110 0 0000 – 110 1 1111: 192-223
N.N.N.H
D类:
1110 0000 – 1110 1111: 224-239
E类:
1111 0000 – 1111 1111: 240-255
子网掩码:网络位部分全为1,主机位部分全为0
子网掩码:用于通过计算得出网络地址
IP & Netmask
1.1.1.1,
0000 0001. 0000 0001.0000 0001.0000 0001
1111 1111. 0000 0000.0000 0000.0000 0000
0000 0001. 0000 0000.0000 0000.0000 0000
1.0.0.0
网络间转发:IP地址中获取出的网络地址来进行的;
本地主机间通信:MAC地址;
地址解析:IP–>MAC
ARP: Address Resolve Protocol
进程地址:端口号
1.1.1.1:80
资源地址:具体的应用协议来各自定义具体的实现方式
局域网:本地网络
网络地址:路由器
协议栈:分层设计
分层模型:
OSI模型:
物理层(PL):定义物理设备规范及电气信号特性;
数据链接层(DLL):本地网络通信,定义MAC地址;
网络层(NL):定义网络间通信,定义IP地址;
传输层(TL):进程间通信,定义进程地址;
会话层(SL):会话建立和拆除;
表示层(RL):数据表示方式;
应用层(AL):完成数据交换;
TCP/IP模型:
物理层
互联网层
传输层
应用层
传输层:
UDP:User Data Protocol
无连接的协议
TCP: Tranport Control Protocol
有连接的协议
IP首部格式和TCP首部格式
子网划分,路由协议(OSPF, rip2)
交换机:switch, MAC地址表
单工
半双工
全双工:没有冲突域
路由器:路由表
目标网络 经由的路径 开销
OSPF: 路由协议
学习生成路由表
IP:可路由协议
传输层:
进程启动时向内核注册使用某端口,所以,当网络报文到达时,首先到达内核;
应用层:
进程负责处理应用层协议;
回顾:网络基础知识
OSI:PL, DLL, NL, TL, SL, RL, AL
TCP/IP:PL, NL, TL, AL
数据包发送:AL, TL, NL, DLL
数据包接收:DLL, NL, TL, AL
本地网络中的主机间通信:MAC
交换机:多接口网桥
跨网络的主机间通信:
网络间数据报文转发:网络地址(IP, Netmask), Router
本地网络中的主机间通信:
路由器:路由表 routing table
生成方式:
静态方式:手动添加
动态方式:路由协议学习生成,OSPF
进程间通信:
Socket, IP:PORT
Client (ip:port) <–> Server (ip:port)
应用层间通信:
应用层协议:
smtp: simple mail transfer protocol
http: hyper text transfer protocol
通信子网,资源子网
IANA, ICANN
IPv4:
A类:
0 000 0001 – 0 111 1111: 1-127
特性:N.H.H.H
默认掩码:255.0.0.0
网络数:1-126
每个网络中的主机位:
全1为:广播地址
全0为:网络地址
每个网络中可以容纳多少个主机:2^24-2
回环:127.0.0.0/8
私有地址:10.0.0.0/8
B类:
10 00 0000 – 10 11 1111:128-191
特性:N.N.H.H
默认掩码:255.255.0.0
网络数:2^14
每个网络中的主机:
每个网络中可容纳多少个主机:2^16-2
私有地址:172.16.0.0/16-172.31.0.0/16
C类:
110 0 0000 – 110 1 1111: 192-223
特性:N.N.N.H
掩码:255.255.255.0
网络数:2^21
每个网络中的主机位:
每个网络中可容纳多少个主机:2^8-2
私有地址:192.168.0.0/24-192.168.255.0/24
D类:组播地址
E类:预留地址
NAT: Network Address Translation
FQDN:Full Qualified Domain Name
http://www.magedu.com
Linux主机接入到TCP/IP网络:
IP/Netmask
路由:建立路径条目
网络路由:目标是一个网络
主机路由:目标是一个主机
默认路由:目标是所有的非本地网络
注意:下一跳路由接口的地址必须与本地主机的某个地址在同一网络中;
DNS服务器指向:
主DNS服务器
备用DNS服务器
第三备用DNS服务器
配置IP及Netmask:
静态:手工指定
动态(DHCP):
前提:本地物理网络要有一个DHCP服务器动态提供地址
静态配置地址:
ifconfig命令
ip命令
GUI工具
TUI工具
编辑配置文件
Interface名称:
以太网:ethX,例如eth0, eth1
ensX
emX
PPP网络:pppX
本地环回接口:lo, 仅用于本机上进程间基于内核完成通信
127.0.0.1
ifconfig命令:
查看接口:
ifconfig [Interface]
-a: 包括未激活状态的所有接口
MTU: 最大传输单元
启用或禁用:ifconfig IFNAME up|down
启用:ifup IFNAME
禁用:ifdown IFNAME
设定IP地址:
ifconfig IFNAME IP/Netmask [up]
注意:CIDR格式的掩码
ifconfig IFNAME IP netmask NETMASK
注意:完整格式的掩码,即类似255.255.0.0
设定的地址会立即送往内核,因此,会立即生效;但不会永久有效;
ping命令:用ICMP的ECHO_REQUEST报文测试主机间的连通性
ping [OPTIONS] DESTINATION
-c #: 发送的ping报文次数;
-s #: 发送的探测报文大小;
-w #:ping命令运行时长;
练习:写一个脚本
1、使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;
在线的主机使用绿色显示;
不在线的主使用红色显示;
route命令:路由管理
查看本机内核路由表:
route
-n: numeric,数字格式显示地址
添加路由:新增路由条目,用户告诉本机至某目标网络或主机要经由的下一跳路由
route add [-net|-host] TARGET gw GATEWAY [dev IFNAME]
示例:到达192.168.0.0/24网络,经由172.16.0.1网关;
# route add -net 192.168.0.0/24 gw 172.16.0.1
到达192.168.1.1主机,经由172.16.0.1网关;
# route add -host 192.168.1.1 gw 172.16.0.1
设定默认网关:
# route add -net 0.0.0.0 gw 172.16.0.1
# route add default gw 172.16.0.1
删除路由:
route del [-net|-host] TARGET gw GATEWAY [dev IFNAME]
示例:删除上述配置的默认路由
# route del -net 0.0.0.0 gw 172.16.0.1
注意:所有配置立即发往内核中的协议栈,所以立即生效;不会永久有效;
配置DNS服务器指向:
/etc/resolv.conf
指令:
nameserver DNS_SERVER_IP
测试命令:
dig
测试能否解析某个FQDN(正向解析):
dig -t A FQDN
测试能否解析某个IP为FQDN(反向解析):
dig -x IP
配置IP、Netmask、网关、DNS服务指向的第二种方式:
setup –> Network Configurations
注意:此种配置方式的配置结果是保存至配置文件;生效方法:
重启网络接口的相关服务
重启系统
网络管理的相关服务有两个:
NetworkManager
network
查看其能否开机运行:
# chkconfig –list | grep -E "(NetworkManager|network)"
启用或禁止开机自动运行:
# chkconfig SERVICE_NAME on|off
立即启动、关闭或重启指定服务:
# service SERVICE_NAME start|stop|restart
# /etc/init.d/SERVICE_NAME start|stop|restart
配置IP、Netmask、网关、DNS服务指向的第三种方式:
每个网络接口都有一个配置文件:/etc/sysconfig/network-scripts/ifcfg-IFNAME
PARAMETER=VALUE
DEVICE=eth0
BOOTPROTO=none
HWADDR=08:00:27:2d:14:19
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Ethernet
UUID="c9f7b242-abbf-4a34-8316-8c2c0e9a57c0"
IPADDR=172.16.100.11
NETMASK=255.255.0.0
GATEWAY=172.16.0.1
DNS1=172.16.0.1
IPV6INIT=no
USERCTL=no
常用参数:
DEVICE:此配置文件所关联到的设备,其值通常应该ifcfg-IFNAME中的IFNAME;
BOOTPROTO:启动此设备时使用的配置协议,取值有static(手动配置)、none(手动配置)、dhcp或bootp(动态配置);
HWADDR:网卡的MAC地址,此地址应该与网卡设备ROM中固定的地址保持一致;
NM_CONTROLLED: NM即NetworkManager的简写,建议设定为no;
ONBOOT:此设备是否随OS启动而激活;
TYPE:设备类型,通常有“Ethernet”,“Bridge”;
UUID:
IPADDR:此接口的IP地址;
NETMASK:子网掩码;
GATEWAY:网关;
DNS1:DNS服务器指向的主DNS服务器;
DNS2:
DNS3:
IPV6INIT:是初始化ipv6协议地址;
USERCTL:是否允许普通用户管理此接口;
PEERDNS:当BOOTPROTO的值为dhcp时,是否允许dhcp服务器提供的dns服务指向覆盖本地手动配置的DNS服务器指向;
注意:重启网络服务network服务后方能生效;
静态路由配置文件:/etc/sysconfig/network-scripts/route-IFNAME
配置方式一:
每一行定义一个路由条目
DESTINATION via GATEWAY
例如:
192.168.0.0/24 via 172.16.0.2
192.168.1.1 via 172.16.0.3
配置方式二:
每三行定义一个路由条目:
ADDRESS#=
NETMASK#=
GATEWAY#=
例如:
ADDRESS1=192.168.0.0
NETMASK1=255.255.255.0
GATEWAY1=172.16.0.2
注意:两种方式不能混合使用;
配置IP、Netmask、网关服务指向的第四种方式:
ip命令
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
link:链接接口,如eth0
addr:管理接口上的地址
route: 管理路由
link:
set: 设定接口属性
ip link set DEVICE
{up|down}:启用或禁用接口;
promisc { on | off }:是否支持混杂模式;
name NEWNAME:设定接口使用新名字;
show: 显示接口状态,例如启用的特性,HWADDR等;
ip link show [DEVICE]
addr:管理地址
add:添加地址
del:删除地址
ip addr { add | del } IFADDR dev STRING
示例:ip addr add 172.16.200.33/16 dev eth0
show:
ip addr show [dev IFNAME]
flush:
ip addr flush [dev IFNAME]
route: 管理路由
list|show: 显示路由
ip route list
add: 添加路由
ip route add DESTINATION via GATEWAY [dev IFNAME]
示例:设定默认网关
ip route add defalut via 172.16.0.1
del: 删除路由
ip route del DESTINATION
例如:# ip route del 192.168.0.0/24
如何给接口配置多个地址的其它方式:
(1) ifconfig命令
网卡接口的别名:ethX:Y,例如eth0:0, eth0:1
ifconfig IF_ALIAS IPADDR netmask NETMASK [up]
(2) 配置文件
/etc/sysconfig/network-scripts/ifcfg-IF_ALIAS,例如ifcfg-eth0:0
DEVICE=IF_ALIAS
BOOTPROTO={static|none}:别名的地址不能动态获取;
IPADDR
NETMASK
ONBOOT
配置主机名:
(1) hostname命令
(2) 内核参数:/proc/sys/kernel/hostname
# echo "HOSTNAME" > /proc/sys/kernel/hostname
配置文件:/etc/sysconfig/network
HOSTNAME=www.magedu.com
网络管理的几个常用工具:
(1) ping
(2) traceroute IP
探测到达目标主机中间所经过网关设备;
(3) mtr HOST
合并了ping与traceroute命令的功能的网络诊断工具;
网络状态探测工具:
(1) netstat
-r: 显示路由表
-n: numeric,数字显示,不反解IP地址至主机名;
-t: tcp协议的相关连接
-u: udp协议的相关连接
-l: 显示处于监听状态(即等待别的进程连接访问);
-a: 显示所有连接,对于tcp而言即处于各种状态;
-p: 显示相关连接的关联到的进程的名字及PID;
常用组合:-rn, -tnl, -unl, -tunl, -tan, -tnlp
(2) ss
-t: tcp协议相关的连接
-n: 数字格式
-u: udp协议相关的连接
-l:处于监听状态
-a: 所有连接
-e: 显示扩展信息
-m: 显示使用信息
-o state {established|fin_wait_1|fin_wait_2|listening}
常用组合:-tnl, -unl, -tan, -tunl, -tnlp
(3) iftop:以连接为中心显示带宽占用情况
iftop [-i IFNAME]
(4) nethogs: 以进程为中心显示带宽占用情况
nethogs [IFNAME]
网络安全工具:
(1) nmap
(2) ncat
(3) tcpdump
原创文章,作者:M20-石俊,如若转载,请注明出处:http://www.178linux.com/43783