计算机网络的基本概念
IP地址(IP Address)
基本概念
IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
IP地址是一个32位的二进制数
IP地址的构成
IP地址由两部分组成:
-
主机位
-
网络位
IP地址的类型
公有地址
公有地址由Inter NIC负责。这些IP地址分配给注册并向Inter NIC提出申请的组织机构。通过它直接访问因特网。
私有地址
私有地址(Private address)属于非注册地址,专门为组织机构内部使用。
A类 10.0.0.0--10.255.255.255
B类 172.16.0.0--172.31.255.255
C类 192.168.0.0--192.168.255.255
什么是子网
引入子网掩码,从逻辑上把一个大网络划分成一些小网络。子网掩码是由一系列的1和0构成,通过将其同IP地址做“与”运算来指出一个IP地址的网络号是什么。对于传统IP地址分类来说,A类地址的子网掩码是255.0.0.0;B类地址的子网掩码是255.255.0.0;C类地址的子网掩码是255.255.255.0。例如,如果要将一个B类网络166.111.0.0划分为多个C类子网来用的话,只要将其子网掩码设置为255.255.255.0即可,这样166.111.1.1和166.111.2.1就分属于不同的网络了。像这样,通过较长的子网掩码将一个网络划分为多个网络的方法就叫做划分子网
子网掩码(NetMask)
概念
子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络位和主机位,并说明该IP地址是在局域网上,还是在广域网上。
默认子网掩码
类别 | 子网掩码二进制 | 子网掩码十进制 |
---|---|---|
A | 11111111 00000000 00000000 00000000 | 255.0.0.0 |
B | 11111111 11111111 00000000 00000000 | 255.255.0.0 |
C | 11111111 11111111 11111111 00000000 | 255.255.255.0 |
网关(GateWay)
概念
网络连接到另一个网络的关口,也就是两个不同网络之间的中介人
网关地址(不同网段通信)路由器接口地址
路由
概念
路由是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程。路由通常与桥接来对比,在粗心的人看来,它们似乎完成的是同样的事。它们的主要区别在于桥接发生在OSI参考模型的第二层数据链路层,而路由发生在第三层网络层。这一区别使二者在传递信息的过程中使用不同的信息,从而以不同的方式来完成其任务。
[root@node1 opt]# route -n # 查看网关路由信息 Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 ens160 192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 ens160 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
主机路由是主机连的路由
网络路由是接外网的路由
计算机域名系统(DNS)
概念
因特网上作为域名和IP地址互相映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串
[root@node1 opt]# cat /etc/resolv.conf # Generated by NetworkManager search domain18.example.com #主机名 nameserver 114.114.114.114 #DNS地址
配置网络的方式
ifconfig
管理命令
ifconfig #用于查看所有激活的网卡 ifconfig -a #查看所有的网卡,包括未激活的 ifconfig 网卡名称 up/down #开启/关闭网卡 ifconfig 网卡名称 IP地址和子网掩码 #临时修改IP地址
ifconfig内容详解
[root@k8s-master-node1 ~]# ifconfig eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.80.140 netmask 255.255.255.0 broadcast 192.168.80.255 inet6 fe80::ae1f:6bff:fed7:3da2 prefixlen 64 scopeid 0x20<link> ether ac:1f:6b:d7:3d:a2 txqueuelen 1000 (Ethernet) RX packets 72818 bytes 4713865 (4.4 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1171 bytes 151941 (148.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device memory 0xfb200000-fb27ffff
-
en:以太网
-
无线局域网wl
-
无线广域网ww
-
-
o:板载网卡
-
s为热插拔插槽
-
p代表pcl类型的支持
-
-
1:序列号 与mac地址有关
-
mtu 1500 最大传输单元
-
UP,BROADCAST,RUNNING,MULTICAST网卡支持特征
-
BROADCAST 广播
-
MULTICAST 多播
-
ether ac:1f:6b:d7:3d:a2 mac地址
-
inet 192.168.80.140 netmask 255.255.255.0 ipv4地址
-
broadcast 192.168.80.255 广播地址
-
inet6 fe80::ae1f:6bff:fed7:3da2 ipv6地址
-
RX packets 96 bytes 8784 (8.5 KiB)
-
RX errors 0 dropped 0 overruns 0 frame 0
-
TX packets 96 bytes 8784 (8.5 KiB)
-
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0(多少数据包在接收)
IP
管理命令
ip link 用于查看mac地址 ip link set 网卡名称 up/down 打开或关闭网卡 ip adderss add xxx.xxx.xxx.xxx/xx dev 网卡名称 临时添加IP地址 ip adderss del xxx.xxx.xxx.xxx/xx dev 网卡名称 临时删除IP地址 ip a show 查看地址 ip route add 172.25.0.1 via 172.25.0.254 dev ens192 主机路由 ip route add 172.16.1.0/24 via 192.168.10.254 dev ens192 网络路由前一个为更改的路由,后一个为原本的路由 ip route del 172.25.0.1 删除路由
NetworkManager
nmtui
图形化管理IP工具
nmcli
nmcli device 查看有几块网卡 nmcli device show ens160 查看ens160网卡的详细信息 nmcli connection show 查看配置文件 nmcli device show 查看所有网卡的信息 nmcli dev conneted/disconneted 网卡名称 开启/关闭网卡 nmcli device connel 连接到网卡 nmcli connection modify ens160 ipv4.addresses 172.16.1.1/24 ipv4.gateway 172.16.1.254 ipv4.dns 172.16.1.254 ipv4.method manual 配置网络ip网关dns nmcli connection add ifname ens160 type ethernet con-name ens160 ipv4.addresses 172.16.1.1/24 ipv4.gateway 172.16.1.254 ipv4.dns 172.16.1.254 ipv4.method manual 新建网络配置文件并配置 nmcli con up ens160 重启网卡 nmcli con del ens160 删除网卡 nmcli connection modify ens160 +ipv4.addresses 172.16.1.1/24 多添加一个ip地址
注意
一块网卡可以有多个配置文件,但是只能有一个生效
可以用+-来添加/删除两个ip地址或者是dns
网卡配置文件详解
[root@node1 opt]# vim /etc/sysconfig/network-scripts/ifcfg-ens160 TYPE=Ethernet # 网卡类型 BOOTPROTO=none # 配置模式 NAME=ens160 #网卡配置的名字 UUID=075e39d6-6666-4c2f-b10c-f187c0aece75 #网卡ID DEVICE=ens160 #设备名字 ONBOOT=yes #是否开启启动网卡 IPADDR=192.168.1.123 #IP地址 PREFIX=24 #掩码位数 GATEWAY=192.168.1.1 #网关 DNS1=114.114.114.114 #DNS
VMware三种网络模式
NAT
网络地址转换,有上行链路,主要是完成虚拟机和物理机之间的地址转换,将虚拟机中的地址转换为物理机的IP地址进行上网
仅主机
没有上行链路的虚拟交换机,没有和外网通信的链路,只能在内部进行交换,不能访问外网
桥接
虚拟机直连到外部网络 供外部网络访问
bond双网卡绑定
双网卡绑定bond模式:
轮询(balance-rr)
主备 (active-backup)
适配器传输负载均衡 (balance-tlb)
动态链接聚合 (802.3ad)
广播策略 (broadcast)
平衡策略 (balance-xor)
适配器适应性负载均衡 (balance-alb)
实质:
把两块网卡逻辑上绑定成一个虚拟网卡,IP地址配置在虚拟网卡上,不配置在物理网卡
步骤:
1. 创建bond0逻辑接口
nmcli con add type bond ifname bond0 (虚拟设备的名字) con-name bond0 mode active-backup autoconnect yes
2. 将两张网卡绑定给bond0
nmcli con type ethernet slave-type bond ifname ens160 con-name ens160 master bond0 nmcli con type ethernet slave-type bond ifname ens224 con-name ens224 master bond0
3. 给bond0配置ip地址
nmcli con modify bond0 ipv4.method manual ipv4.address 172.16.0.100/24
4.重启bond0网卡配置文件
nmcli con up bond0
网桥配置
1.创建br0设备
nmcli con add type bridge ifname br0 con-name br0 autoconnect yes
2. 添加一个子网卡
nmcli con add type ethernet slave-type bridge ifname ens160 master br0
3. 配置网桥的地址
nmcli con modify br0 ipv4.method manual ipv4.address 172.16.0.200/24
一般情况网桥是不需要配置地址
端口
作用
通过ip地址来识别服务器 通过端口号来识别服务
常用端口号
端口号码 / 层 | 名称 | 注释 |
---|---|---|
1 | tcpmux | TCP 端口服务多路复用 |
5 | rje | 远程作业入口 |
7 | echo | Echo 服务 |
9 | discard | 用于连接测试的空服务 |
11 | systat | 用于列举连接了的端口的系统状态 |
13 | daytime | 给请求主机发送日期和时间 |
17 | qotd | 给连接了的主机发送每日格言 |
18 | msp | 消息发送协议 |
19 | chargen | 字符生成服务;发送无止境的字符流 |
20 | ftp-data | FTP 数据端口 |
21 | ftp | 文件传输协议(FTP)端口;有时被文件服务协议(FSP)使用 |
22 | ssh | 安全 Shell(SSH)服务 |
23 | telnet | Telnet 服务 |
25 | smtp | 简单邮件传输协议(SMTP) |
37 | time | 时间协议 |
39 | rlp | 资源定位协议 |
42 | nameserver | 互联网名称服务 |
43 | nicname | WHOIS 目录服务 |
49 | tacacs | 用于基于 TCP/IP 验证和访问的终端访问控制器访问控制系统 |
50 | re-mail-ck | 远程邮件检查协议 |
53 | domain | 域名服务(如 BIND) |
63 | whois++ | WHOIS++,被扩展了的 WHOIS 服务 |
67 | bootps | 引导协议(BOOTP)服务;还被动态主机配置协议(DHCP)服务使用 |
68 | bootpc | Bootstrap(BOOTP)客户;还被动态主机配置协议(DHCP)客户使用 |
69 | tftp | 小文件传输协议(TFTP) |
70 | gopher | Gopher 互联网文档搜寻和检索 |
71 | netrjs-1 | 远程作业服务 |
72 | netrjs-2 | 远程作业服务 |
73 | netrjs-3 | 远程作业服务 |
73 | netrjs-4 | 远程作业服务 |
79 | finger | 用于用户联系信息的 Finger 服务 |
80 | http | 用于万维网(WWW)服务的超文本传输协议(HTTP) |
88 | kerberos | Kerberos 网络验证系统 |
95 | supdup | Telnet 协议扩展 |
101 | hostname | SRI-NIC 机器上的主机名服务 |
102 | iso-tsap | ISO 开发环境(ISODE)网络应用 |
105 | csnet-ns | 邮箱名称服务器;也被 CSO 名称服务器使用 |
107 | rtelnet | 远程 Telnet |
109 | pop2 | 邮局协议版本2 |
110 | pop3 | 邮局协议版本3 |
111 | sunrpc | 用于远程命令执行的远程过程调用(RPC)协议,被网络文件系统(NFS)使用 |
113 | auth | 验证和身份识别协议 |
115 | sftp | 安全文件传输协议(SFTP)服务 |
117 | uucp-path | Unix 到 Unix 复制协议(UUCP)路径服务 |
119 | nntp | 用于 USENET 讨论系统的网络新闻传输协议(NNTP) |
123 | ntp | 网络时间协议(NTP) |
137 | netbios-ns | 在红帽企业 Linux 中被 Samba 使用的 NETBIOS 名称服务 |
138 | netbios-dgm | 在红帽企业 Linux 中被 Samba 使用的 NETBIOS 数据报服务 |
139 | netbios-ssn | 在红帽企业 Linux 中被 Samba 使用的NET BIOS 会话服务 |
143 | imap | 互联网消息存取协议(IMAP) |
161 | snmp | 简单网络管理协议(SNMP) |
162 | snmptrap | SNMP 的陷阱 |
163 | cmip-man | 通用管理信息协议(CMIP) |
164 | cmip-agent | 通用管理信息协议(CMIP) |
174 | mailq | MAILQ |
177 | xdmcp | X 显示管理器控制协议 |
178 | nextstep | NeXTStep 窗口服务器 |
179 | bgp | 边界网络协议 |
191 | prospero | Cliffod Neuman 的 Prospero 服务 |
194 | irc | 互联网中继聊天(IRC) |
199 | smux | SNMP UNIX 多路复用 |
201 | at-rtmp | AppleTalk 选路 |
202 | at-nbp | AppleTalk 名称绑定 |
204 | at-echo | AppleTalk echo 服务 |
206 | at-zis | AppleTalk 区块信息 |
209 | qmtp | 快速邮件传输协议(QMTP) |
210 | z39.50 | NISO Z39.50 数据库 |
213 | ipx | 互联网络分组交换协议(IPX),被 Novell Netware 环境常用的数据报协议 |
220 | imap3 | 互联网消息存取协议版本3 |
245 | link | LINK |
347 | fatserv | Fatmen 服务器 |
363 | rsvp_tunnel | RSVP 隧道 |
369 | rpc2portmap | Coda 文件系统端口映射器 |
370 | codaauth2 | Coda 文件系统验证服务 |
372 | ulistproc | UNIX Listserv |
389 | ldap | 轻型目录存取协议(LDAP) |
427 | svrloc | 服务位置协议(SLP) |
434 | mobileip-agent | 可移互联网协议(IP)代理 |
435 | mobilip-mn | 可移互联网协议(IP)管理器 |
443 | https | 安全超文本传输协议(HTTP) |
444 | snpp | 小型网络分页协议 |
445 | microsoft-ds | 通过 TCP/IP 的服务器消息块(SMB) |
464 | kpasswd | Kerberos 口令和钥匙改换服务 |
468 | photuris | Photuris 会话钥匙管理协议 |
487 | saft | 简单不对称文件传输(SAFT)协议 |
488 | gss-http | 用于 HTTP 的通用安全服务(GSS) |
496 | pim-rp-disc | 用于协议独立的多址传播(PIM)服务的会合点发现(RP-DISC) |
500 | isakmp | 互联网安全关联和钥匙管理协议(ISAKMP) |
535 | iiop | 互联网内部对象请求代理协议(IIOP) |
538 | gdomap | GNUstep 分布式对象映射器(GDOMAP) |
546 | dhcpv6-client | 动态主机配置协议(DHCP)版本6客户 |
547 | dhcpv6-server | 动态主机配置协议(DHCP)版本6服务 |
554 | rtsp | 实时流播协议(RTSP) |
563 | nntps | 通过安全套接字层的网络新闻传输协议(NNTPS) |
565 | whoami | whoami |
587 | submission | 邮件消息提交代理(MSA) |
610 | npmp-local | 网络外设管理协议(NPMP)本地 / 分布式排队系统(DQS) |
611 | npmp-gui | 网络外设管理协议(NPMP)GUI / 分布式排队系统(DQS) |
612 | hmmp-ind | HMMP 指示 / DQS |
631 | ipp | 互联网打印协议(IPP) |
636 | ldaps | 通过安全套接字层的轻型目录访问协议(LDAPS) |
674 | acap | 应用程序配置存取协议(ACAP) |
694 | ha-cluster | 用于带有高可用性的群集的心跳服务 |
749 | kerberos-adm | Kerberos 版本5(v5)的“kadmin”数据库管理 |
750 | kerberos-iv | Kerberos 版本4(v4)服务 |
765 | webster | 网络词典 |
767 | phonebook | 网络电话簿 |
873 | rsync | rsync 文件传输服务 |
992 | telnets | 通过安全套接字层的 Telnet(TelnetS) |
993 | imaps | 通过安全套接字层的互联网消息存取协议(IMAPS) |
994 | ircs | 通过安全套接字层的互联网中继聊天(IRCS) |
995 | pop3s | 通过安全套接字层的邮局协议版本3(POPS3) |
netstat
[root@node1 ~]# netstat -ntpl ##查看监听端口 Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1819/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1196/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1201/cupsd tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp6 0 0 :::22 :::* LISTEN 1196/sshd tcp6 0 0 ::1:631 :::* LISTEN 1201/cupsd tcp6 0 0 :::9090 :::* LISTEN 1/systemd tcp6 0 0 :::111 :::* LISTEN 1/systemd
-
Proto 协议名
-
Local Address 本地监听地址
-
Foreign Address 外部访问地址
-
LISTEN 已经监听
-
PID/Program name 进程的pid和进程名
-
-tulnp
-
-t 查看tcp
-
-u查看udp
-
-l 已经监听
-
-n 显示数字和ip地址 不加则显示主机名和协议的名字
-
-p 显示pid和进程名
-
-a 显示所有
-
ss
ss:用来查看系统所开放的端口和系统的连接
[root@node1 ~]# ss -tan State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 32 192.168.122.1:53 0.0.0.0:* LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 5 127.0.0.1:631 0.0.0.0:* LISTEN 0 128 0.0.0.0:111 0.0.0.0:* ESTAB 0 0 192.168.1.123:22 192.168.1.1:5176 LISTEN 0 128 [::]:22 [::]:* LISTEN 0 5 [::1]:631 [::]:* LISTEN 0 128 *:9090 *:* LISTEN 0 128 [::]:111 [::]:*
state为listen则表示监听
state为estab则表示连接已经建立
-
ss -tan 查看服务端口是否被监听
-
-t 显示tcp连接
-
-a 显示已经监听的
-
-n 用数字的方式来显示端口号
-
-l 只查看监听的套接字
-
-u 查看udp的监听
-
-p 可以看见端口监听由哪个进程发起
-
ss的优点:
有大并发的优势
ss是从内核中读取网络连接
但是netstat是去读取套接字
netstat效率比ss低,尤其是在高并发的情况
需要安装iproute来使用ss命令
什么是套接字:
应用程序在系统中创建的一个接口去访问连接,这样的连接是套接字