基本概念:网桥、交换机、路由器
早期的网络是由一根铜轴电缆,多个主机通过T型头连接到这根电缆上面。主机与主机通信是通过发送电信号,A主机与B主机进行通信,C和B就不能通信了。如果A给B发送信号,C也给B发送了信号,那么就会产生冲突,以太网为了解决这个问题,采用CSMA/CD方案,也就是载波侦听,多路访问,冲突检测。
但是随着连接的主机的越来越多,冲突域还是会有,所有把一个网络切割成N个小网络,使用网桥来实现跨网络通信。网桥中会存放哪台主机在哪个接口上,也就是mac表。
随着要通信的网络越来越多,网桥上有多个端口,这种多端口的网桥,也就是交换机。交换机造价越来越便宜后,干脆交换机一个端口连接一台主机,可以更好的解决冲突域的问题。
我们知道,当交换机不知道哪台主机在哪个接口的时候,就会广播,随着网络越来越庞大,交换机越来越多,广播也越频繁,为了解决广播域的问题,就有了路由器,用来隔离广播域。
全球网络那么多,为了实现网络与网络通信,就需要有一个标识来标记网络,也就有了IP地址,用来标记网络,也可以用来标记主机,实现网络与网络之间通信。
IP地址分类:
A类:
0 000 0000 - 0 111 1111:1 - 127
网络数:2^7-1,127本地回环地址
每个网络中的主机数:2^24-2
默认子网掩码:255.0.0.0
私网地址:10.0.0.0/8
B类:
10 00 0000 - 10 11 1111: 128 - 191
网络数:2^14
每个网络中的主机数:2^16-2
默认子网掩码:255.255.0.0
私网地址:172.16.0.0/16 - 172.31.0.0/16
C类
110 0 0000 - 110 1 1111:192 - 223
网络数:2^21
每个网络中的主机数:2^8-2
私网地址:192.168.0.0/24 - 192.168.255.0/24
D类:组播
1110 0000 - 1110 1111:224 - 239
OSI/ISO参考模型
物理层:两个网络之间进行通信用什么介质,传输速率有多高,用哪种设备,接口是什么,几毫米还是几厘米,电压多少伏等等一系列规定和规范。
数据链路层:主要作用是标记本机主机的网卡地址,标记对方的地址
网络层:标记网络地址,主要作用是源IP地址目标IP,解决的是主机到主机的通信。
传输层:主要用来标记没饿主机上的进程源端口号和目标端口号,传输层还可以解决拥塞控制,滑动窗口等
会话层:建立会话
表示层:加密、压缩,如何表示
应用层:真正的资源交换
传输层协议:
tcp,udp,sctp
网络层协议:
ip,OSPF
网络与网络之间进行通信,要进过路由:
路由:
主机路由:如果目标是单台主机,明确说明到哪条主机的路由条目,就叫主机路由
网络路由:到达哪个网络经过的路由,叫网络路由
默认路由:不管与谁通信,都经过的路由
配置路由的方式:
静态指定:
ifcfg
ip
配置文件
system-config-network-tui(setup)
Centos 7:
mncli,nmtui
动态分配
DHCP:dynamic host configureation protocol
相关命令:
ifconfig命令:
ifconfig [interface]
# ifconfig -a
#ifconfig IFACE [ up | down ]
ifconfig interface [aftype] options | address ...
# ifconfig IFACE IP/mask [up]
# ifconfig IFACE IP netmask MASK
ifup | ifdown IFACE:网卡启用或禁用
注意:立即生效
1.修改本机IP地址
ifconfig ens33 192.168.0.104
或 ifconfig ens33 192.168.0.103 netmask 255.255.255.0
route命令:
路由管理命令
查看:route -n
添加:route add [-net | -host] target [netmask MS] [gw GW] [[dev] If]
1.设置主机路由:要经过网关192.168.0.1到达172.16.31.10这台主机
# route add -host 172.16.31.10 gw 192.168.0.1 dev ens33
2.设置网络路由:要到达网络192.168.0.0.网关是192.168.0.1
# route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1 dev ens33
3.设置默认路由:
# route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.0.1
或 route add default gw 192.168.0.1
删除: route del [-net | -host] target [gw GW] [netmask NM] [[dev] If]
1.删除主机路由
# route del -host 172.16.31.10 netmask 255.255.255.0 gw 192.168.0.1
2.删除网络路由
# route del -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1
3.删除默认路由
# route del -net 0.0.0.0 netmask 0.0.0.0
其他命令:
netstat: 网络状态查看命令
-t: tcp协议相关
-u:udp协议相关
-w:raw socket相关
-l:处于监听状态
-a:所有状态
-n:以数字显示IP及端口
-e:扩展格式
-p:显示相关进程及PID
-r:显示内核路由表
-i:显示所有接口
-Iens33:只显示一个接口
IP命令
ip [ link | addr | route] COMMAND
ip link:network device configuration
ip link set dev IFACE [ up | down] :激活或禁用指定接口
ip link show [ dev IFACE ] [ up ]
[dev IFACE]:指定接口
[up]:仅显示激活状态的接口
1.查看所有网卡设备的信息
# ip link show
2.查看指定设备的信息
# ip link show dev ens33
3.仅显示启用状态的设备的信息
# ip link show up
4.启用ens33接口
# ip link set ens33 up
5.禁用ens33接口
# ip link set ens33 down
ip addr:protocol address management
ip addr { add | del } IFADDR dev STRING
[label LABEL] :添加地址时指明网卡别名
[scope {global | link | host}] : 指明作用域
global:全局可用
link:仅链接可用
host:本机可用
[broadcast ADDRESS]:指明广播地址
ip address show - look at protocol address
[dev DEVICE]
[label PATTERN]
[primary and secondary]
ip address flush - flush protocol addresses
使用格式同show
1.显示所有接口下的ip地址
# ip addr show
2.显示指定的设备下的ip地址
# ip addr show dev ens33
3.给指定设备添加一个地址
# ip addr add 192.168.0.200/24 dev ens33
4.删除指定设备的一个ip地址
# ip addr delete 192.168.0.200/24 dev ens33
5.给指定设备添加一个别名并添加一个地址
# ip addr add 192.168.0.201/24 dev ens33 label ens33:1
6.删除网卡别名
# ip addr delete 192.168.0.201/24 dev ens33 label ens33:1
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 default via GW dev IFACE
ip route delete
删除路由:ip route del TARGET
ip route show
ip route flush
[dev IFACE]
[via PREFIX]
1.添加一个主机路由
# ip route add 192.168.1.2/255.255.255.255 dev ens33
2.添加一个网络路由
# ip route add 172.16.0.0 via 192.168.0.1 dev ens33
3.删除一个主机路由
# ip route delete 192.168.1.2 dev ens33
4.删除一个网络路由
# ip roue delete 172.16.0.0/16 via 192.168.0.1 dev ens33
5.显示路由信息
# ip route show 或 ip route list
6.添加默认路由
# ip route add default dev ens33
7.删除默认路由
# ip route delete default dev ens33
其他命令:
ss命令:网络状态查看工具
-t:tcp协议相关
-u:udp协议相关
-w:裸套接字相关
-x:unix sock相关
-l:listen状态的连接
-a:所有
-n:数字格式
-o:计时器信息
-p:相关的程序及PID
-e:扩展的信息
-m:内存用量
-o:计时器信息
FITER := [ state TCP_STATE ] [ EXPRESSTION ]
TCP的常见状态
tcp finite state macine:
LISTEN:监听
ESTABLISHED:已建立的连接
FIN_WAI_1
FIN_WAIT_2
SYN_SENT
SYN_RECV
CLOSED
EXPRESSION:
dport=
sport=
(示例:dport=:ssh or sport=:ssh)
修改配置文件进行网络配置
IP、MASK、GW、DNS相关配置文件: /etc/sysconfig/network-scripts/ifcfg-IFACE
路由相关配置文件: /etc/sysconfig/network-scripts/route-IFACE,这个文件默认不存在
/etc/sysconfig/network-scripts/ifcfg-IFACE DEVICE: 此配置文件应用到的设备
HWADDR:对应的设备的MAC地址
BOOTPROTO:激活此设备使用的地址配置协议,常用的dhcp,static,none,bootp
NM_CONTROLLED::NM是NetworkManager的简写;此网卡是否接受NM控制,cnetos6建议为no
ONBOOT:在系统引导时是否激活此设备
TYPE::接口类型;常见的有Ethernet,Bridge
UUID:设备的唯一标识
IPADDR:指明IP地址
NETMASK:子网掩码
GATWAY:默认网关
DNS1:第一个DNS服务器指向
DNS2:第二个DNS服务器指向
USERCTL:普通用户是否可控制此设备
PEERDNS:如果BOOTPROTO的值为dhcp,是否运行dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf
/etc/sysconfig/network-scripts/route-IFACE
两种风格:
1.TARGET via GW
2.每三行定义一条路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
给网卡配置多地址
ifconfig
# ifconfig ens33:0 192.168.0.202/24 up
ip
# ip addr add 192.168.0.202/24 dev ens33 label ens33:1
通过配置文件来实现
# cd /etc/sysconfig/network-scripts/
# cp ens33 ens33:1
注意:网卡别名不能使用dhcp协议引导
网络属性配置的其他工具
tui(text user interface)
system-config-network-tui
也可以使用setup
注意:需要重启网络服务方能生效
其他操作:
1.查看主机名
# hostname
2.设置主机名
#hostname ckh
3.修改配置文件
# vi /etc/sysconfig/network
4.修改网卡名字
# cd /etc/udev/rules.d/
# vim 70-persistent-net.rules
# lsmod :查看网卡驱动
# modprobe -r e1000 :卸载网卡驱动
# modprove e1000 :装载网卡驱动
Centos7 网络属性配置
1.网卡命名机制
systemd对网络设备的命名方式
a.如果firmware或bios为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1
b.如果fireware或bios为pci-e扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1
c.如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0
d.如果用户显示启动,也可根据MAC地址进行命名,enx23871883
e.上述命名机制中,有的需要biosdevname程序的参与
2.名称组成格式
en:ethernet 以太网接口
wl:wlan 无线局域网设备
ww:wwan 无线广域网设备
名称类型:
o<index>:集成设备的设备索引号
s<slot>:扩展槽的索引号
x<MAC>:基于MAC地址的命名
p<bus>s<slot>:enp2s1
网卡设备的命名过程
第一步:udev,辅助工具程序/lib/uedv/renae_device,/usr/lib/udev/rules.d/60-net.rules
第二步:biosdevname会根据/usr/lib/udev/rules.d/71-biosdevname.rules
第三步:通过检测网络接口设备,根据/usr/lib/udev/rules.d/75-net-description
ID_NET_NAME_ONBOARD,ID_NET_NAME_SLOT,ID_NET_NAE_PATH
回归传统命名方式
1.编辑/etc/default/grub配置文件
GRUB_CMDLINE_LINUX="net.ifnames=0 rhgb quiet"
2.为grub2生成其配置文件
grub2-mkconfig -o /etc/grub2.cfg
3.重启系统
地址配置工具:nmcli
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
device - show and manage network interfaces
connection - start,stop,and manager network connections
如何修改IP地址等属性
# nmcli connection modify IFACE [+|-]setting.property value
setting.property
ipv4.addresses
ipv4.gateway
ipv4.dns1
ipv4.method
manual
网络客户端工具:
lftp, ftp,lftpget,wget
# lftp [-p port] [-u usr[,password] SERVER ]
子命令:
get
mget
ls
help
# lftpget URL
# ftp
#wget
wget [option]... [URL]...
-q:静默模式
-c:断点续传
-O:保存位置
--limit-rates=:指定传输速率