本文共 10131 字,大约阅读时间需要 33 分钟。
第五周:网络基础
osi pduPDUPDU: Protocol Data Unit,协议数据单元是指对等层次之间传递的数据单位物理层的 PDU是数据位 bit数据链路层的 PDU是数据帧 fram
物理层:pdu 是数据位:数据链路层:是数据帧frame网络层:packet传输层:segment其它更高的层次是messages 网卡:以太网: 数据链路层:data link layerunicastbroadcastmulticast 冲突域:一台机器和另一台机器发送数据冲突网桥:学习源地址:转发目标地址 11111111111111111111....ethtool eht0 双工 Duplex: Full ethernet(以太网、数据链路层) switch (数据链路层)route -n
route -n 一个路由器 一个网段局域网 广播机制广域网:单播机制application :hhtp https ftp nfs dns tftp smtp pop3 imap telnet sshcat /etc/services 查看端口号:qq udP 用户数据包协议 no seq tcp 传输控制协议 有顺序的查看端口号:[root@Centos7~]#cat /proc/sys/net/ipv4/ip_local_port_range32768 60999tcp 包头 0-32A - B序列包:100 1000确认包|101 (希望下次发101个包)101 |1001 确认包1001 |102 tcP 面向可靠链接的选项面向连接ack synfinSYN:在建立连接时使用,用来同步序号。当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 1744SYN=1表示第一次握手finsh 结束:2^16=65536映射第四层到应用程序;tcp
ftp 21telnet 23http 80 udp:dns 53tftp:69snmp:161通过端口号:知道上层应用程序的地址通过端口号:知道上层软件:80 httP22 ssh[root@Centos7~]#cat /proc/sys/net/ipv4/tcp_max_orphans 8192[root@Centos7~]#cat /proc/sys/net/ipv4/tcp_fin_timeout60Linux为了防止孤儿连接长时间存留在内核中,定义了两个内核参数:[root@Centos7~]#cat /proc/sys/net/ipv4/tcp_retries1
3[root@Centos7~]#cat /proc/sys/net/ipv4/tcp_retries215window 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 -narp -dip aarp 广播,arp 三次握手,数据的传输数据包的构成:ethernet ip tcp udp data fcs (循环校验位)数据链路层 网络层 传输层 数据包 48位macipv6 128位:号称每个沙子都可以分一个ipinet6 fe80::20c:29ff:fe39:4273/64 scope link 一个以太网最大frame 是1500发包:这个3500的这个包是凑出来的[root@Centos7~]#ping 192.168.137.172 -s 3500片便宜就是包被切割的位置ttl 是生命期一个路由器减去一个值#ping www.microsoft.com64 bytes from 210.192.117.42-BJ-CNC (210.192.117.42): icmp_seq=1 ttl=51 time=112 msping ip地址:
[root@centos ~]#ping 192.168.137.172ping 11000000101010001000100110101100IP地址的转化ping 3232270764下面的很重要:A类0.0.0.0是未知地址127.0.0.1 是回环地址,不供网卡使用网络数:0-127 x.x.x1-126.x.x.x00xxxxxxx 0.....01111111 0.....前8位是网络Id0.0.0.0127.0.0.110.0.0.0 网段号10.255.255.255 表示10.0.0.0网段号的广播网段号:2^可变网络id 位数主机数 2^主机id -21.1.1.1 澳大利亚8.8.8.8 谷歌:114.114.114.114 江苏电信B类 10 xxxxxx xxxxxxxx.y.z10 111111128-191.x.x.x16位网络id16位主机id主机数:2^16=65536-2c类:110 xxxxxx xxxxxxxx.xxxxxxxx.y110 00000110 11111192-223. x.x.x24位网络id8位主机id网络数:2^21主机数:2^8=254d:224-239.x.x.x1110xxxx .x.x.x 表示多播地址电脑分配地址只能是多播e:保留:240-254 .x.x.x11110xxx.x.x.x总结:c类地址和主机id 主机数id 有点不一样子网掩码与IP地址相与得到网络id
10.0.0.0/8分成2个小网10.0.0.0/9min;10.0.0.1max: 10.127.255.25510.128.0.0/9
min 10.128.0.0.1max 10.255.255.25410.00 000000.0.0 10.0.0.0/10
10.01 000000.0.0 10.64.0.0/1010.10 000000.0.0 10.128.0.0/1010.11 000000.0.0 10.192.0.0/1010.0.0.0/8划分32个子网给32个公司使用:
子网掩码:8+5=13255.248.0.0新的子网:10.0.0.0/1310.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=3213+5=18新的子网:255.255.192.010.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/1810.11111 100 .00 000000 .1 10.252.0.110.11111 100 .00 111111.254 10.252.63.254 合成一个网络:超网10.0.0.0/8172.20.0.0/16主机id 向网络id 借位路由表的配置;目标:数据包发送的目标路径192.168.0.0netmaskkinterface;本路由器的出口gateway ;直连;不需要配置非直连:下一个路由器邻近本路由器的接口地址dhcp
自动获取 家里使用备用设置 公司使用虚拟网卡:yum remove libvirt-daemon 查看虚拟网卡yun list libvirt* 产查看包加载网卡
ethtool -i eth0 modprobe -r e1000modprobe e1000cd /etc/udev/rules.d/
vim 70-persistent-net.rulesdmesg |grep -i ethifconfig eth2 downifconfig eth2 upifdown ifupip 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.1route 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.100service network restartroute add 都是内存中临时添加的centos7 eth1:192.168.1.100/24centos6 ens37:192.168.2.100/24添加路由器route add default dev eth1route add default gw 192.168.137.100 route add defautl dev ens37ping 192.168.1.100tcpdump -i eth2 抓包yum install quagga
rpm -ql quagga
rpm -ql quagga
ss -ntlp
DEVICE=eth1 设备名
TYPE=Ethernet UUID=1908c9dc-8431-4df4-8241-d1ce061a9a65ONBOOT=yes 开机的时候网卡启动NM_CONTROLLED=yesBOOTPROTO=dhcp 自动获取 static noneDEFROUTE=yesIPV4_FAILURE_FATAL=yesIPV6INIT=noNAME="System eth1"HWADDR=00:0C:29:35:59:73PEERDNS=yesPEERROUTES=yes~ 配置网卡:DEVICE=eth1BOOTPROTO=staticIPADDR=172.18.0.6PREFIX=16GATEWAY=72.18.0.1DNS=114.114.114.114DNS=1.1.1.1 DNS=8.8.8.8service network restart
service NetworkManager stopA R1 R2 B配置网络段添加3段网络net10 anet11 net10 r1 添加2快网卡net12 net11 r2 添加2块网卡net12 bcat /etc/sysconfig/network 更改主机名
路由器配置
DEVICE=eth1BOOTPROTO=staticIPADDR=172.18.0.6PREFIX=16路由器与电脑的区别就是网关不用配置开启路由转发功能:echo 1> /proc/sys/net/ipv4/ip_forward追踪路由器: traceroute 10.0.0.100mtr 10.0.0.0 动态监控路由器:tracepath 10.0.0.100DNS1 :cat /etc/resolv.conf 配置文件重启服务:service network restart~/.bashr
配置alias 别名更改主机名:vim /etc/sysconfig/networkhostname +主机名exit 退出生效一个网卡多个主机名:临时
ifconfig eth0:1 8.8.8.8/24ip a 查看删除:ifconfig eth0:1 down实验:一个物理网卡八个多个地址:centos6路由器:一个网卡
ifconfig eth0:1 1.1.1.254/24ifconfig eth0:2 2.2.2.254/24aroute add default gw 2.2.2.254 broute add default gw 1.1.1.254echo 1> /proc/sys/net/ipv4/ip_forward
tcpdump -i eth0 icmp
指定网卡ping:ping -I 1.1.1.1 2.2.2.2 (目标)netstart :
netstat -nll /var/run/dbus/system_bus_socket :实现本地通讯socket :连接本地连接,解决封装解包的问题
实现本机通讯:a b ssh socket sshdnetstat -nt tcp
netstat -ntu udpnetstat -ntul netstat -ntulnetstat -ntuanetstat -ntunetstat -ntuap netstat -Ieth0netstat -i rx-ok重点:
多少个包:ss -sip 命令;ip linkip 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 ens33ip route add default via 172.16.0.1ip route delete查看地址:增加地址:ip addr add 1.1.1.1/24 dev eth0ip addr del 2.2.2.2/24 dev eth0ip aip addr add 1.1.1.1/24 dev eth0:2 (起名字)添加地址:ip addr del 172.16.100.100/16 dev eth0 label etho:0ip addr add 172.16.100.100/16 dev eth0 label etho:0
配置文件:主网卡的地址仍是自动获取
网卡别名:eth1自动获取:eth1 :DEVICE=eth1BOOTPROTO=dhcp手工指定:eht1:2:DEVICE=eth1BOOTPROTO=staticIPADDR=172.18.22.22PREFIX=16GATEWAY=172.18.0.1域名:cat /etc/host查看域名:cat /etc/resolv.confvim /etc/nsswitch.conf网络接口绑定:
d多个网卡绑定一个IP
eth0 1.1.1.1 dbserver
用户:
eth1 bonding 工作模式:mode 1实验bonding mode1 两个网卡都是仅主机模式:
cat /proc/net/bonding/bond0cat > ifcfg-bond0
DEVICE=bond0IPADDR=192.168.137.22bongPREFIX=24BONDING_OPTS="mode=1 miimon=100"cat ifcfg-eth0
DEVICE=eth0MASTER=bond0SLAVE=yescat ifcfg-eth1
DEVICE=eth0MASTER=bond0SLAVE=yesbonding卸载:lsmod 查看所有模块:ifconfig bond0 down :禁用网卡驱动:modprobe -r bonding 卸载网卡ifconfig -a配置eth0配置eth1主机名:cat /etc/sysconfig/network 改名字;启动网卡;ifconfig ens37 up ifconfig ens37 downcentos 7网路配置:
rpm -qi biosdevname 网卡配置信息
cat /etc/default/grub 配置文件按 vim /etc/default/grub直接更改网卡名ll /etc/grub2.cfg
[root@Centos7~]#ll /etc/grub2.cfglrwxrwxrwx. 1 root root 22 Apr 4 10:33 /etc/grub2.cfg -> ../boot/grub2/grub.cfg100 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=0net.ifnames=0
第二种:
ll /etc/default/grub:zai rhgb quiet net.ifnames=0grub2-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 shownmcli 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.manualnmcli connection nmcli connection up home-eth1 nmcli connectionnmcli connection up office-eth1 自动获取:
手动:[root@Centos7~]#nmcli connection modify eth0 con-name eth0 ipv4.method manual ipv4.addresses 192.168.137.22/16nmcli connection up home-eth1 家是指定的Ip
nmcli device disconnect eth1 :取消连接
nmcli device connect eth1 : 连接nmcli connection show eth0 查看信息
配置文件更改了信息,从新加载启动一下
nmcli connection reloadnmcli connection up office-eth1
nmcli connection static-eth1 ipv4.method manual
eth1 加 地址:nmcli connection modify home-eth1 +ipv4.addnmcli connection reload nmcli connection up home-eth1 删除已加地址;nmcli connection modify home-eth1 -ipv4.addresses 8.8.8.8/16nmcli connection up home-eth1 nmtui 字符工具centos6cat /etc/sysconfig/networkcentos7cat /etc/hostname传统配置文件:vim /etc/hostnamecentos7hostname centos7 生效hostnamectl 该文家又生效hostname status 状态:更改主机名:[root@Centos7~]#hostnamectl set-hostname centos7.4.magedu.com[root@centos7~]#hostname
centos7.4.magedu.com[root@centos7~]#cat /etc/hosts加上主机名team 0
rm -f ifc*nmcli connection reloadnmcli 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 team0nmcli connection add type team-slave con-name team0-eth1 ifname eth1 master team0
nmcli connection shownmcli connection up team0-eth0
nmcli connection up team0-eth1nmcli connection showteamdctl 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