第五周:网络基础 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 00xxxxxxx 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.com [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