网络的特征
- 速度
- 成本
- 安全性
- 可用性
- 可扩展性
- 可靠性
- 拓扑
物理拓扑分类
OSI七层模型(OSI System Interconnection)
- 物理层:二进制传输
- 数据链路层:访问介质
- 网络层:数据传输
- 传输层:端到端连接
- 会话层:主机间通信
- 表示层:数据表示
- 应用层:网络进程访问应用层
PDU
- PDU: Protocol Data Unit,协议数据单元是指对等层次之间传递的数据单位
- 物理层的 PDU是数据位 bit
- 数据链路层的 PDU是数据帧 frame
- 网络层的PDU是数据包 packet
- 传输层的 PDU是数据段 segment
- 其他更高层次的PDU是消息 message
网络配置方式
- 静态指定:
fconfig, route, netstat
ip: object {link, addr, route}, ss, tc
system-config-network-tui, setup
配置文件 - 动态分配:
DHCP: Dynamic Host Configuration Protocol
配置网络接口
- ifconfig命令
ifconfig [interface]
ifconfig -a
ifconfig IFACE [up|down]
ifconfig interface [aftype] options | address …
ifconfig IFACE IP/netmask [up]
ifconfig IFACE IP netmask NETMASK
注意:立即生效
启用混杂模式: [-]promisc
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命令
-
常用组合:
-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
ifconfig -s eth0
ip命令
- 配置Linux网络属性: ip 命令
- ip - show / manipulate routing, devices, policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
ip link - network device configuration
set dev IFACE
可设置属性:
up and down:激活或禁用指定接口
ifup/ifdown
show [dev IFACE]:指定接口
[up]:仅显示处于激活状态的接口
- ip addr { add | del } IFADDR dev STRING
[label LABEL]:添加地址时指明网卡别名
[scope {global|link|host}]:指明作用域
global: 全局可用
link: 仅链接可用
host: 本机可用
[broadcast ADDRESS]:指明广播地址
ip addr add 172.16.100.100/16 dev eth0 label eth0:0
ip addr del 172.16.100.100/16 dev eth0 label eth0:0 - ip address show - look at protocol addresses
[dev DEVICE]
[label PATTERN]
[primary and secondary] - ip addr flush 使用格式同show
ip addr flush dev eth0
- 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 192.168.0.0/24 via 172.16.0.1
ip route add 192.168.1.100 via 172.16.0.1
添加网关: ip route add default via GW dev IFACE
ip route add default via 172.16.0.1
删除路由: ip route del TARGET
显示路由: ip route show|list
清空路由表: ip route flush [dev IFACE] [via PREFIX]
ip route flush dev eth0
ss命令
- 格式: ss [OPTION]… [FILTER]
- netstat通过遍历proc来获取socket信息, ss使用netlink与内核tcp_diag模块通信获取
socket信息 - 选项:
-t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x: unix sock相关
-l: listen状态的连接
-a: 所有
-n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m:内存用量
-o:计时器信息
- FILTER : [ state TCP-STATE ] [ EXPRESSION ]
- TCP的常见状态:
tcp finite state machine:
LISTEN: 监听
ESTABLISHED:已建立的连接
FIN_WAIT_1
FIN_WAIT_2
SYN_SENT
SYN_RECV
CLOSED - EXPRESSION:
dport =
sport =
示例:’ ( dport = :ssh or sport = :ssh )’ - 常用组合:
-tan, -tanl, -tanlp, -uan
- ss -l 显示本地打开的所有端口
- ss -pl 显示每个进程具体打开的socket
- ss -t -a 显示所有tcp socket
- ss -u -a 显示所有的UDP Socekt
- ss -o state established ‘( dport = :ssh or sport = :ssh )’ 显示所有已建立的
ssh连接 - ss -o state established ‘( dport = :http or sport = :http )’ 显示所有已建立的HTTP连接
- ss -s 列出当前socket详细信息