当前位置: 首页 > news >正文

第五周 网络

第五周:网络基础
osi pdu

PDUPDU: Protocol Data Unit,协议数据单元是指对等层次之间传递的数据单位物理层的 PDU是数据位 bit数据链路层的 PDU是数据帧 fram
物理层:pdu 是数据位:
数据链路层:是数据帧frame
网络层:packet
传输层:segment
其它更高的层次是messages
网卡:以太网: 数据链路层:data link layer
unicast
broadcast
multicast
冲突域:一台机器和另一台机器发送数据冲突
网桥:学习源地址:转发目标地址 11111111111111111111....
ethtool eht0 双工 Duplex: Full
ethernet(以太网、数据链路层) switch (数据链路层)

route -n
route -n
一个路由器 一个网段
局域网 广播机制
广域网:单播机制
application :
hhtp https ftp nfs dns tftp smtp pop3 imap telnet ssh
cat /etc/services 查看端口号:
qq
udP 用户数据包协议 no seq
tcp 传输控制协议 有顺序的
查看端口号:
[root@Centos7~]#cat /proc/sys/net/ipv4/ip_local_port_range
32768 60999
tcp 包头 0-32
A - B
序列包:100
1000确认包|101 (希望下次发101个包)
101 |1001 确认包
1001 |102
tcP 面向可靠链接的选项
面向连接
ack
syn
fin
SYN:在建立连接时使用,用来同步序号。当SYN=1,ACK=0时,表示这是一个请求建立连
接的报文段;当SYN=1,ACK=1时,表示对方同意建立连接。SYN=1,说明这是一个请求
建立连接或同意建立连接的报文。只有在前两次握手中SYN才置为1,带SYN标志的TCP报文
段称为同步报文段
ACK:表示是否前面的确认号字段是否有效。ACK=1,表示有效。只有当ACK=1时,前面
的确认号字段才有效。TCP规定,连接建立后,ACK必须为1,带ACK标志的TCP报文段称为确
认报文段

tcP 三次握手:
A B
打你电话 1
谁啊 2
老王 3
约吗

好吧
\
访问外面地址:
SYN=1,说明这是一个请求

协议 本地地址 外部地址 状态 PID
TCP 127.0.0.1:443 127.0.0.1:56656 ESTABLISHED 1744
SYN=1表示第一次握手
finsh 结束:
2^16=65536
映射第四层到应用程序;

tcp
ftp 21
telnet 23
http 80
udp:
dns 53
tftp:69
snmp:161
通过端口号:知道上层应用程序的地址
通过端口号:知道上层软件:80 httP
22 ssh
[root@Centos7~]#cat /proc/sys/net/ipv4/tcp_max_orphans
8192
[root@Centos7~]#cat /proc/sys/net/ipv4/tcp_fin_timeout
60
Linux为了防止孤儿连接长时间存留在内核中,定义了两个内核参数:

[root@Centos7~]#cat /proc/sys/net/ipv4/tcp_retries1
3
[root@Centos7~]#cat /proc/sys/net/ipv4/tcp_retries2
15
window size
固定窗口
滑动窗口window size ack=2 说明只能接收2个包
tcp 报文的第一个字段:
源端口 32 位
目标端口:
序列号
确认号
6标记位
ping 172.18.118.95 -s 65507 -f flood(导致服务器down)
ddos ×××
arp -n arp 列表
arp 基于广播的
arp -d 192.18.118.95 删除
arp -n 列表
重启服务systemctl restart network
默认生命周期:
[root@centos ~]#cat /proc/sys/net/ipv4/ip_default_ttl
64
网络实验:
arp;
自问自答:
问:当主机启动的时候,who has 192.168.30.128 ?tell 0.0.0.0 (刚启动的时候的地址还没有生效没有地址)
答: 192.168.30.128 没人用,避免地址冲突的 机制,产生的广播
arp:请求响应是广播
arp:回应是单播
arp -n
arp -d
ip a
arp 广播,arp 三次握手,数据的传输
数据包的构成:
ethernet ip tcp udp data fcs (循环校验位)
数据链路层 网络层 传输层 数据包 48位mac
ipv6 128位:号称每个沙子都可以分一个ip
inet6 fe80::20c:29ff:fe39:4273/64 scope link
一个以太网最大frame 是1500
发包:这个3500的这个包是凑出来的
[root@Centos7~]#ping 192.168.137.172 -s 3500
片便宜就是包被切割的位置
ttl 是生命期一个路由器减去一个值
#ping www.microsoft.com
64 bytes from 210.192.117.42-BJ-CNC (210.192.117.42): icmp_seq=1 ttl=51 time=112 ms

ping ip地址:
[root@centos ~]#ping 192.168.137.172
ping 11000000101010001000100110101100
IP地址的转化
ping 3232270764
下面的很重要:
A类
0.0.0.0是未知地址
127.0.0.1 是回环地址,不供网卡使用
网络数:0-127 x.x.x
1-126.x.x.x
0
0xxxxxxx 0.....
01111111 0.....
前8位是网络Id
0.0.0.0
127.0.0.1
10.0.0.0 网段号
10.255.255.255 表示10.0.0.0网段号的广播
网段号:2^可变网络id 位数
主机数 2^主机id -2
1.1.1.1 澳大利亚
8.8.8.8 谷歌:
114.114.114.114 江苏电信
B类
10 xxxxxx xxxxxxxx.y.z
10 111111
128-191.x.x.x
16位网络id
16位主机id
主机数:2^16=65536-2
c类:
110 xxxxxx xxxxxxxx.xxxxxxxx.y
110 00000
110 11111
192-223. x.x.x
24位网络id
8位主机id
网络数:2^21
主机数:2^8=254
d:224-239.x.x.x
1110xxxx .x.x.x
表示多播地址
电脑分配地址只能是多播
e:保留:
240-254 .x.x.x
11110xxx.x.x.x
总结:c类地址和主机id 主机数id 有点不一样

子网掩码与IP地址相与得到网络id
10.0.0.0/8分成2个小网
10.0.0.0/9
min;10.0.0.1
max: 10.127.255.255

10.128.0.0/9
min 10.128.0.0.1
max 10.255.255.254

10.00 000000.0.0 10.0.0.0/10
10.01 000000.0.0 10.64.0.0/10
10.10 000000.0.0 10.128.0.0/10
10.11 000000.0.0 10.192.0.0/10

10.0.0.0/8划分32个子网给32个公司使用:
子网掩码:
8+5=13
255.248.0.0
新的子网:
10.0.0.0/13
10.248.0.0/13
最大子网IP:
10.11111 000 .0.1/13 (248)
10.11111 111 .255.254/13 (255)

10.248.0.0/13 划分17个子网
2^5=32
13+5=18
新的子网:255.255.192.0
10.11111 00000 000000.0 10.248.0.0/18 子网最小
10.11111 10000 000000.0 10.252.0.0/18 17 个子网
10.11111 11111 000000.0 10.255.192.0/18 最大子网

主机数 2^14-2
10.252.0.0/18
10.11111 100 .00 000000 .1 10.252.0.1
10.11111 100 .00 111111.254 10.252.63.254
合成一个网络:超网
10.0.0.0/8
172.20.0.0/16
主机id 向网络id 借位
路由表的配置;
目标:数据包发送的目标路径192.168.0.0
netmaskk
interface;本路由器的出口
gateway ;
直连;不需要配置
非直连:下一个路由器邻近本路由器的接口地址

dhcp
自动获取 家里使用
备用设置 公司使用
虚拟网卡:
yum remove libvirt-daemon 查看虚拟网卡
yun list libvirt* 产查看包

加载网卡
ethtool -i eth0
modprobe -r e1000
modprobe e1000

cd /etc/udev/rules.d/
vim 70-persistent-net.rules
dmesg |grep -i eth
ifconfig eth2 down
ifconfig eth2 up
ifdown
ifup
ip link
配置文件:
ls /etc/sysconfig/network-scripts
设置网卡地址:
ifconfig eth2 1.1.1.1/24 临时使用
添加路由表:
主机
route add -host 7.7.7.7 gw 172.18.0.1 eth2
主机路由网段 网关 接口
到达网段 网关是 从哪个地方出去
网络
route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.137.100
默认:
route add default gw 192.168.137.100
删除默认路由:
route del default gw 172.18.3.1
route del -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.137.100
删除主机路由:
route del -host 6.6.6.6
删除网络路由:
route del -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.137.100
service network restart
route add 都是内存中临时添加的
centos7
eth1:192.168.1.100/24
centos6
ens37:192.168.2.100/24
添加路由器
route add default dev eth1
route add default gw 192.168.137.100
route add defautl dev ens37
ping 192.168.1.100
tcpdump -i eth2 抓包

yum install quagga

rpm -ql quagga

rpm -ql quagga

ss -ntlp

DEVICE=eth1 设备名
TYPE=Ethernet
UUID=1908c9dc-8431-4df4-8241-d1ce061a9a65
ONBOOT=yes 开机的时候网卡启动
NM_CONTROLLED=yes
BOOTPROTO=dhcp 自动获取 static none
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth1"
HWADDR=00:0C:29:35:59:73
PEERDNS=yes
PEERROUTES=yes
~
配置网卡:
DEVICE=eth1
BOOTPROTO=static
IPADDR=172.18.0.6
PREFIX=16
GATEWAY=72.18.0.1
DNS=114.114.114.114
DNS=1.1.1.1
DNS=8.8.8.8

service network restart
service NetworkManager stop
A R1 R2 B
配置网络段
添加3段网络
net10 a
net11 net10 r1 添加2快网卡
net12 net11 r2 添加2块网卡
net12 b

cat /etc/sysconfig/network 更改主机名

路由器配置
DEVICE=eth1
BOOTPROTO=static
IPADDR=172.18.0.6
PREFIX=16
路由器与电脑的区别就是
网关不用配置
开启路由转发功能:
echo 1> /proc/sys/net/ipv4/ip_forward
追踪路由器:
traceroute 10.0.0.100
mtr 10.0.0.0 动态监控路由器:
tracepath 10.0.0.100
DNS1 :
cat /etc/resolv.conf 配置文件
重启服务:
service network restart

~/.bashr
配置alias 别名
更改主机名:
vim /etc/sysconfig/network
hostname +主机名
exit 退出生效

一个网卡多个主机名:临时
ifconfig eth0:1 8.8.8.8/24
ip a 查看
删除:
ifconfig eth0:1 down
实验:一个物理网卡八个多个地址:centos6

路由器:一个网卡
ifconfig eth0:1 1.1.1.254/24
ifconfig eth0:2 2.2.2.254/24
a
route add default gw 2.2.2.254
b
route add default gw 1.1.1.254

echo 1> /proc/sys/net/ipv4/ip_forward

tcpdump -i eth0 icmp
指定网卡ping:
ping -I 1.1.1.1 2.2.2.2 (目标)

netstart :
netstat -n
ll /var/run/dbus/system_bus_socket :实现本地通讯

socket :连接本地连接,解决封装解包的问题
实现本机通讯:
a b
ssh socket sshd

netstat -nt tcp
netstat -ntu udp
netstat -ntul
netstat -ntul
netstat -ntua
netstat -ntunetstat -ntuap
netstat -Ieth0
netstat -i rx-ok

重点:
多少个包:
ss -s
ip 命令;
ip link
ip a
添加路由:
ip route add 6.6.6.0/24 via 192.168.137.100
删除:
ip route del 6.6.6.0/24 via 192.168.137.100 dev ens33
ip route add default via 172.16.0.1
ip route delete
查看地址:
增加地址:
ip addr add 1.1.1.1/24 dev eth0
ip addr del 2.2.2.2/24 dev eth0
ip a
ip addr add 1.1.1.1/24 dev eth0:2 (起名字)
添加地址:
ip addr del 172.16.100.100/16 dev eth0 label etho:0

ip addr add 172.16.100.100/16 dev eth0 label etho:0

配置文件:主网卡的地址仍是自动获取
网卡别名:eth1
自动获取:eth1 :
DEVICE=eth1
BOOTPROTO=dhcp
手工指定:eht1:2:
DEVICE=eth1
BOOTPROTO=static
IPADDR=172.18.22.22
PREFIX=16
GATEWAY=172.18.0.1
域名:
cat /etc/host
查看域名:cat /etc/resolv.conf
vim /etc/nsswitch.conf

网络接口绑定:

d多个网卡绑定一个IP

    eth0    1.1.1.1 dbserver 

用户:
eth1
bonding 工作模式:
mode 1

实验bonding mode1 两个网卡都是仅主机模式:
cat /proc/net/bonding/bond0

cat > ifcfg-bond0
DEVICE=bond0
IPADDR=192.168.137.22bong
PREFIX=24
BONDING_OPTS="mode=1 miimon=100"

cat ifcfg-eth0
DEVICE=eth0
MASTER=bond0
SLAVE=yes

cat ifcfg-eth1
DEVICE=eth0
MASTER=bond0
SLAVE=yes
bonding卸载:
lsmod 查看所有模块:
ifconfig bond0 down :禁用网卡驱动:
modprobe -r bonding 卸载网卡
ifconfig -a
配置eth0
配置eth1
主机名:
cat /etc/sysconfig/network 改名字;
启动网卡;
ifconfig ens37 up
ifconfig ens37 down

centos 7网路配置:

rpm -qi biosdevname 网卡配置信息
cat /etc/default/grub 配置文件按
vim /etc/default/grub
直接更改网卡名

ll /etc/grub2.cfg
[root@Centos7~]#ll /etc/grub2.cfg
lrwxrwxrwx. 1 root root 22 Apr 4 10:33 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
100 linux16 /vmlinuz-3.10.0-693.el7.x86_64 root=UUID=7919257a-3c51-41cf-af9d-42ab20ebdeaa ro rhgb quiet LANG=
en_US.UTF-8 net.ifnames=0

net.ifnames=0

第二种:
ll /etc/default/grub
:zai rhgb quiet net.ifnames=0
grub2-mkconfig -o /etc/grub2.cfg\
重启:
nmcli
nmcli device status
cli connection show

[root@Centos7~]#nmcli connection add con-name office-eth1 ifname eth1 type ethernet ipv4.method auto connection.autoconnect yes
nmcli connection show
nmcli connection up office-eth1
nmcli connection modify Wired\ connection\ 2 con-name home-eth1
[root@Centos7/etc/sysconfig/network-scripts]#nmcli connection modify home-eth1 ipv4.addresses 172.18.0.22/16 ipv4.gateway 172.18.0.1 ipv4.dns 114.114.114.114 ipv4.manual
nmcli connection
nmcli connection up home-eth1
nmcli connection

nmcli connection up office-eth1 自动获取:
手动:
[root@Centos7~]#nmcli connection modify eth0 con-name eth0 ipv4.method manual ipv4.addresses 192.168.137.22/16

nmcli connection up home-eth1 家是指定的Ip

nmcli device disconnect eth1 :取消连接
nmcli device connect eth1 : 连接

nmcli connection show eth0 查看信息

配置文件更改了信息,从新加载启动一下
nmcli connection reload

nmcli connection up office-eth1

nmcli connection static-eth1 ipv4.method manual
eth1 加 地址:
nmcli connection modify home-eth1 +ipv4.add
nmcli connection reload
nmcli connection up home-eth1
删除已加地址;
nmcli connection modify home-eth1 -ipv4.addresses 8.8.8.8/16
nmcli connection up home-eth1
nmtui 字符工具
centos6
cat /etc/sysconfig/network
centos7
cat /etc/hostname
传统配置文件:
vim /etc/hostname
centos7
hostname centos7
生效
hostnamectl 该文家又生效
hostname status 状态:
更改主机名:
[root@Centos7~]#hostnamectl set-hostname centos7.4.magedu.combr/>[root@Centos7~]#hostname
centos7.4.magedu.com
exec bash

[root@centos7~]#hostname
centos7.4.magedu.com
[root@centos7~]#cat /etc/hosts
加上主机名

team 0
rm -f ifc*
nmcli connection reload

nmcli connection add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"}}' ipv4.method manual ipv4.addresses 192.168.137.22/16
nmcli connection add type team-slave con-name team0-eth0 ifname eth0 master team0

nmcli connection add type team-slave con-name team0-eth1 ifname eth1 master team0
nmcli connection show

nmcli connection up team0-eth0
nmcli connection up team0-eth1
nmcli connection show
teamdctl team0 state
删除:
nmcli connection delete team0 team0-eth0 team-eth1

测试:dns host www.magedu.com
nslookup www.magedu.com

转载于:https://blog.51cto.com/13718453/2130297

相关文章:

  • ASP.NET CORE MVC 2.0 发布到IIS 配置问题
  • 我的JS日记-隐式转换相关知识
  • 流计算独享模式正式邀测
  • 微信小程序接口改版后的登录和会话保持流程
  • Spring Cloud Finchley 正式发布,包含 4 个重大更新!
  • React全家桶项目
  • Linux 配置双网卡绑定,实现负载均衡
  • Python程序的执行原理
  • 使用 node(wd)编写 Appium 测试用例--测试2
  • [BZOJ2850]巧克力王国
  • 刚刚!“跨境汇款”被区块链重新定义,马云:源于多年前一个承诺
  • 大数据理论体系总结--数据仓库管理与全链路数据体系
  • 局域网大型文件分发的可能解决方案
  • 搭建视频监控平台《监视我的团宝宝》
  • BCH踏着优化升级路线,在数字货币界声名鹊起
  • CentOS从零开始部署Nodejs项目
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • ES6之路之模块详解
  • Idea+maven+scala构建包并在spark on yarn 运行
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • java中具有继承关系的类及其对象初始化顺序
  • js算法-归并排序(merge_sort)
  • Mithril.js 入门介绍
  • 从setTimeout-setInterval看JS线程
  • 使用SAX解析XML
  • 手写双向链表LinkedList的几个常用功能
  • 学习HTTP相关知识笔记
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • #pragma multi_compile #pragma shader_feature
  • #预处理和函数的对比以及条件编译
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (搬运以学习)flask 上下文的实现
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (剑指Offer)面试题34:丑数
  • (排序详解之 堆排序)
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (转)winform之ListView
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (轉)JSON.stringify 语法实例讲解
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .mysql secret在哪_MYSQL基本操作(上)
  • .Net Core与存储过程(一)
  • .NET Framework 4.6.2改进了WPF和安全性
  • .net 调用php,php 调用.net com组件 --
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • @EnableAsync和@Async开始异步任务支持
  • @NoArgsConstructor和@AllArgsConstructor,@Builder
  • @vue/cli 3.x+引入jQuery
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [22]. 括号生成
  • [Angular] 笔记 7:模块
  • [C#]猫叫人醒老鼠跑 C#的委托及事件