zoukankan      html  css  js  c++  java
  • centos网络配置

    Linux网络属性管理(1)
    
     	局域网:以太网,令牌环网
    
     		Ethernet: CSMA/CD
     			冲突域
     			广播域  
    
     			MAC:Media Access Control
     				48bits: 
     					24bits:
     					24bits:
    
     			IP: Internet Protocol
     				Routing protocol
     				Routed protocol
    
    OSI:
    	OSI中的层	功能									TCP/IP协议族
    	应用层		文件传输,电子邮件,文件服务,虚拟终端	TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet
    	表示层		数据格式化,代码转换,数据加密			没有协议
    	会话层		解除或建立与别的接点的联系				没有协议
    	传输层		提供端对端的接口						TCP,UDP
    	网络层		为数据包选择路由						IP,ICMP,RIP,OSPF,BGP,IGMP
    	数据链路层	传输有地址的帧以及错误检测功能			SLIP,CSLIP,PPP,ARP,RARP,MTU
    	物理层		以二进制数据形式在物理媒体上传输数据	ISO2110,IEEE802,IEEE802.2
    
     	tcp/ip分层协议栈:物理层,互联网层,传输层,应用层
     			application layer 
     			transport layer	
     			internet layer	
     			datalink layer
     			pysical layer 
    
    
     		ip协议:网络号+主机号
    
     			IPv4 地址分类:32bits
     				8bits.8bits.8bits.8bits
     				点分十进制:0-255
     					0000 0000 - 1111 1111
     					0.0.0.0-255.255.255.255
    
     				A类:
     					0 000 0000 - 0 111 1111: 1-127
     					网络数量:126, 127
     					每个网络中的主机数:2^24-2
     					默认子网掩码:255.0.0.0  //用于与ip地址进行"与"运算,从而取出其网络地址
     						1.3.2.2/255.0.0.0 = 1.0.0.0
     					私网地址:10.0.0.0/255.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=254
     					默认子网掩码:255.255.255.0
     					私网地址:192.168.0.0/24-192.168.255.0/24
    
     				D类:组播
     					1110 0000 - 1110 1111: 224-239
    
     				E类:科研
     					240-255
    
     			子网掩码:
     				172.16.100.100/255.255.0.0, 172.17.1.1
     			
     			ipv6:128bits
    
     			跨网络通信:路由router
     					路由表:
     						静态指定
     						动态学习: rip2,ospf
     					路由条目:
     						目标地址 吓一跳(nexthop)
     							目标地址的类别:
     								主机:主机路由host
     								网络:网络路由net
     								0.0.0.0 /0.0.0.0 :默认路由
    
     	os: 多任务,多用户,多进程
     		通信时,进程的数字标识;
     			16bits:
     				0-65535
     					1-1023: 固定分配,而且只有管理员有权限启用;
     					1024-4w :半固定;
     					4w+: 临时;
     		进程地址:
     			ip:port,socket
    
    	将Linux主机接入到网络中:
    		IP/netmask: 本地通信
    		路由(网关):跨网络通信
    		DNS服务器地址: 基于主机名的通信
    			主DNS服务器
    			次(备用)DNS服务器
    			第三DNS服务器
    
    		配置方式:
    			静态指定:
    				ifcfg: 
    					ifconfig:配置IP,netmask 
    					route:路由
    					netstat:状态及统计数据查看
    				iproute2家族:
    					ip OBJECT:
    						addr:地址和掩码;
    						link:接口
    						route:路由
    					ss:状态及统计数据查看
    						
    				配置文件:
    					redhat及相关发行版:
    						/etc/sysconfig/network-scripts/ifcfg-网卡名
    
    				CentOS 7:nm(network manager)家族
    					nmcli:命令行工具
    					nmtui:text window 工具
    
    				注意:
    					(1)DNS服务器指定
    						配置文件: /etc/resolv.conf
    					(2)本地主机名配置
    						hostname
    						配置文件:/etc/sysconfig/network
    						centos7 : hostnamectl
    
    			动态分配:依赖于本地网络中有DHCP服务
    				DHCP: Dynamic Host Configuration Protocol
    	网络接口命名方式:
    		传统命令:
    			以太网:eth0,eth1,...
    			ppp网络:ppp[0,1,2,...]
    
    		可预测命令方案(centos):
    			支持多种不同的命名机制:
    				fireware,拓扑结构
    
    			1) Firmware或BIOS为主板上集成的设备提供的索引信息可用,则根据此索引进行命名,如eno1,eno2, …
    			2) Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,如ens1,ens2, …
    			3) 如果硬件接口的物理位置信息可用,则根据此信息命名,如enp2s0, …
    			4) 如果用户显式定义,也可根据MAC地址命名,例如eno16777736(十六进制MAC), …
    			5)上述均不可用,则仍使用传统方式命名;
    
    		命名格式的组成:
    		    en:ethernet,表示因特网网卡接口
    		    wl:wlan,表示无线网网卡接口
    		    ww:wwan,Wireless Wide Area Network,表示无线广域网网卡
    
    		    名称类型:
    			   o<index>:集成设备的设备索引号;
    			   s<slot>:扩展槽的索引号;
    			   x<MAC>:基于MAC地址的命名;
    			   p<bus>s<slot>:基于总线及槽的拓扑结构进行命名;
    
    Linux网络属性配置(2)
    		ifcfg家族:
    			ifconfig命令:接口及地址查看
    				ifconfig [interface]
    					# ifconfig -a显示所有接口,包括inactive状态接口;
    					# ifconfig IFACE(网卡名) [up|down]
           			ifconfig interface [aftype] options | address ...
           				# ifconfig IFACE IP/mask [up]
           					eg: ifconfig eth1 192.168.10.1/24 up
           				# ifconfig IFACE IP netmask MASK
           					eg: ifconfig eth1 192.168.10.101 netmask 255.255.255.0
           				
           				注意:立即生效;送往内核中的tcp/ip协议栈,并生效;
    
           				options:
           					启用混杂模式:[-]promisc
    
           		route命令:路由查看及管理
           			路由条目类型:
           				主机路由:目标地址为单个ip; host
           				网络路由:目标地址为ip网络; net
           				默认路由:目标为本地主机; 0.0.0.0/0.0.0.0
           			路由管理命令
           				查看:route -n   ;-n为反解,以数字显示IP和端口;
           				添加:route add
           					route add  [-net|-host]  target [netmask Nm] [gw Gw] [[dev] Iface]
    
           						目标des:192.168.0.0  网关gw:192.168.73.3(需要和自己主机在同一个网段)
           						~]# route add -host 192.168.0.0/16 gw 192.168.73.3 dev eth0
    
           						目标:192.168.0.0 网关:196.168.73.0
           						~]# route add -net 192.168.0.0 netmask 255.255.255.0 gw 196.168.73.0 dev eth0
           						~]# route add -net 192.168.0.0/24 gw 192.168.73.0 dev eth0
    
           						默认路由,网关:196.168.73.0
           						~]# route add -net 0.0.0.0 netmask 0.0.0.0 gw 196.168.73.0
           						~]# route add default gw 196.168.73.0
    
           						注意:gw 0.0.0.0 表示不用网关即默认网关,就在自己的本机上,无需网关;
           				删除:route del
           					route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
    
           						目标:192.18.0.0 网关:172.16.0.1
           						~]# route del -net 192.18.0.0 netmask 255.255.255.0 gw 172.16.0.1
    
        DNS服务器指定
           	/etc/resolv.conf
           		nameserver DNS_SERVER_IP1(数字地址ip)
           		nameserver DNS_SERVER_IP2
           		nameserver DNS_SERVER_IP3(最多三个)
    
           		如何测试:
           			正解:FQDN-->IP
           					# dig -t A FQDN(主机名)
           						fqdn-->ip
           					# host -t A FQDN
           			反解:IP-->FQDN
           					# dig -x IP
           					# host -t PTR IP
           					
           				FQDN: www.magedu.com.
    
           			netstat命令:
           				netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
    
           				显示网络连接:
           					netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]]  [--program|-p]
           						-t: --tcp协议相关 ; 通信开始之前,需建立一个虚链路;通信完成后还要拆除连接;
           						-u: --udp协议相关 ; 直接发送数据报文;
           						-w: raw socket相关
           						-l: 处于监听状态
           						-a: 所有状态
           						-n: 以数字显示IP和端口;
           						-e:扩展格式
           						-p: 显示相关进程及PID
    
           						常用组合:
           							-tan, -uan, -tnl, -unl,-tunlp
    
           				显示路由表:
           					netstat  {--route|-r} [--numeric|-n]
           						-r: 显示内核路由表
           						-n: 数字格式
           					~]# netstat -rn
    
           				显示接口统计数据:
           					netstat  {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n] 
    
           						# netstat -i
           						# netstat -I IFACE  
    
           		总结:ifcfg家庭命令配置
           			ifconfig/route/netstat
           			ifup/ifdown
    
    Linux网络配置(3)
    	
    	配置Linux网络属性:ip命令
    	iproute家族:
    		ip命令:
    			ip - show / manipulate routing, devices, policy routing and tunnels
    
    			ip [ OPTIONS ] OBJECT { COMMAND | help }
    
    				OBJECT := { link | addr | route }
    
    			ip OBJECT:
    				ip link - network device configuration
    
    					ip link set
    						dev IFACE(default): 指明要管理的设备,dev关键字可省略;
    						up and down:激活或禁用指定接口;
    						multicast on 或 multicast off: 启用或禁用多播功能
    						name NAME: 重命名接口
    						mtu NUMBER : 设置mtu的大小,默认为1500
    						netns PID : ns为namespace,用于将接口移动到指定的网络名称空间;
    
    					ip link show 
    					ip link help
    
    				ip netns : ip - manage network namespaces
    
    					ip netns list : 列出所有的netns
    					ip netns add name : 创建指定netns
    					ip netns del name : 删除指定的netns
    					ip netns exec name cmd : 在指定的netns 中运行命令
    
    				ip address - 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 addresses
    						[dev DEVICE]
    						[label PATTERN]
    						[primary and secondary]
    
    					ip address flush - flush protocol addresses 清空
    						使用格式同show
    
    				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 defalt via GW dev IFACE
    
    					ip route delete
    						删除路由:ip route del  TARGET 
    
    					ip route show
    					ip route flush
    						[dev IFACE]
    						[via PREFIX]
    
    		ss命令:another utility to investigate sockets
    			格式:ss [OPTION]... [FILTER]
    				选项:
    					-t: tcp协议相关
    					-u: udp协议相关
    					-w: 裸套接字相关
    					-x:unix sock相关
    					-l: listen状态的连接
    					-a: 所有
    					-n: 数字格式
    					-p: 相关的程序及PID
    					-e: 扩展的信息
    					-m:内存用量
    					-o:计时器信息
    
    					FILTER := [ state TCP-STATE ] [ EXPRESSION ]
    
    			TCP的常见状态:
    				tcp finite state machine:
    					LISTEN: 监听
    					ESTABLISHED:已建立的连接
    					FIN_WAIT_1
    					FIN_WAIT_2
    					SYN_SENT
    					SYN_RECV
    					CLOSED
    
    				EXPRESSION:
    					dport = 
    					sport = 
    					示例:’( dport = :ssh or sport = :ssh )’
    
    			常用组合:
    				-tan, -tanl, -tanlp, -uan
    
    Linux网络属性配置(4): 修改配置文件
    
    		IP、MASK、GW、DNS相关配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
    		路由相关的配置文件:/etc/sysconfig/network-scripts/route-IFACE
    
    		/etc/sysconfig/network-scripts/ifcfg-IFACE:
    			[root@centos7-1 network-scripts]#  cat ifcfg-ens33
    			TYPE="Ethernet"
    			PROXY_METHOD="none"  //
    			BROWSER_ONLY="no"
    			BOOTPROTO="dhcp"
    			DEFROUTE="yes"  //是否使用默认路由
    			IPV4_FAILURE_FATAL="no"  //ipv4出错时是否使用ipv6
    			IPV6INIT="yes"
    			IPV6_AUTOCONF="yes"
    			IPV6_DEFROUTE="yes"
    			IPV6_FAILURE_FATAL="no"
    			IPV6_ADDR_GEN_MODE="stable-privacy"
    			NAME="ens33"
    			UUID="795f0d4a-6e0b-492b-b145-08f1eebf10cb"
    			DEVICE="ens33"
    			ONBOOT="yes"
    		解释:
    			DEVICE:此配置文件应用到的设备;与IFACE一致;
    			HWADDR:对应的设备的MAC地址;
    			BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp;
    			NM_CONTROLLED:NM是NetworkManager的简写;此网卡是否接受NM控制;CentOS6建议为“no”;
    			ONBOOT:在系统引导时是否激活此设备;
    			TYPE:接口类型;常见有的Ethernet, Bridge;
    			UUID:设备的惟一标识;
    			IPV6INIT: 是否初始化IPv6;
    
    			IPADDR:指明IP地址;
    			NETMASK:子网掩码;PREFIX
    			GATEWAY: 默认网关;
    			DNS1:第一个DNS服务器指向;
    			DNS2:第二个DNS服务器指向;
    
    			USERCTL:普通用户是否可控制此设备;
    			PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中;默认允许即yes;
    			NM_CONTROLLED: 是否使用networkmanger服务来控制接口;
    
    		网络服务:
    		 	network
    		 	networkmanger
    
    		管理网络服务:
    			centos6 : service network { status | restart | start | stop }
    			centos7 : systemctl  { status | restart | start | stop } network[.service]
    
    		配置文件修改之后,需重启网络服务,配置文件才生效;
    			重启方法见管理网络服务;
    
    		/etc/sysconfig/network-scripts/route-IFACE
    			两种风格:不可混用
    				(1) 每行一个路由条目
    					TARGET via GW
    
    				(2) 每三行定义一条路由
    					ADDRESS#=TARGET
    					NETMASK#=mask
    					GATEWAY#=GW
    
    		给网卡配置多地址:
    			ifconfig:
    				ifconfig IFACE_ALIAS 
    			ip
    				ip addr add 
    			配置文件:
    				ifcfg-IFACE_ALIAS
    					DEVICE=IFACE_ALIAS
    
    			注意:网关别名不能使用dhcp协议引导;
    
    	Linux网络属性配置的tui(text user interface):
    		system-config-network-tui
    
    		也可以使用setup找到;
    
    		注意:记得重启网络服务方能生效;
    
    	配置当前主机的主机名:
    		hostname [HOSTNAME]
    
    		/etc/sysconfig/network
    		HOSTNAME=
    
    	网络接口识别并命名相关的udev配置文件:
    		/etc/udev/rules.d/70-persistent-net.rules
    
    		卸载网卡驱动:
    			modprobe -r e1000
    
    		装载网卡驱动:
    			modprobe e1000
    
    
    	CentOS 7网络属性配置
    
    		传统命名:以太网eth[0,1,2,...], wlan[0,1,2,...]
    
    		可预测功能
    
    			udev支持多种不同的命名方案:
    				Firmware, 拓扑结构
    
    		(1) 网卡命名机制
    			systemd对网络设备的命名方式:
    				(a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1;
    				(b) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1; 
    				(c) 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0;
    				(d) 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56; 
    				(e) 上述均不可用时,则使用传统命名机制;
    
    				上述命名机制中,有的需要biosdevname程序的参与;
    
    		(2) 名称组成格式
    			en: ethernet
    			wl: wlan
    			ww: wwan
    
    			名称类型:
    				o<index>: 集成设备的设备索引号;
    				s<slot>: 扩展槽的索引号;
    				x<MAC>: 基于MAC地址的命名;
    				p<bus>s<slot>: enp2s1
    
    		网卡设备的命名过程:
    			第一步:
    				udev, 辅助工具程序/lib/udev/rename_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_NAME_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 manage network connections
    
    			如何修改IP地址等属性:
    				#nmcli connection modify IFACE [+|-]setting.property value
    					 setting.property:
    					 	ipv4.addresses
    					 	ipv4.gateway
    					 	ipv4.dns1
    					 	ipv4.method
    					 		manual
    
    		网络接口配置tui工具:nmtui
    
    		主机名称配置工具:hostnamectl
    			status
    			set-hostname
    
    	博客作业:上述所有内容;
    		ifcfg, ip/ss, 配置文件, nmcli
    
    	参考资料:http://www.redhat.com/hdocs
    
    	课外作业:nmap, ncat, tcpdump工具
    
    	网络客户端工具:
    		lftp, ftp, lftpget, wget
    
    			# lftp [-p port] [-u user[,password]] SERVER
    				子命令:
    					get
    					mget
    					ls
    					help
    
    			# lftpget URL
    
    			# ftp
    
    			# wget
    				wget [option]... [URL]...
    					-q: 静默模式
    					-c: 续传
    					-O: 保存位置
    					--limit-rates=: 指定传输速率
    
    			
    回顾:ip命令,ss命令;配置文件;CentOS 7
    
    	ifcfg、ip、netstat、ss
    	配置文件:
    		/etc/sysconfig/network-scripts/
    			ifcfg-IFNAME
    			route-IFNAME
    	CentOS 7: nmcli, nmtui
    

      

  • 相关阅读:
    使用Spring RestTemplate 发送 List<MultipartFile>,上传多个文件
    二分查找的非递归实现
    图的深度优先遍历和广度优先遍历
    快速排序学习
    szwl面试记录
    Mycat对Mysql进行分库分表
    Java使用队列解决约瑟夫问题
    pa_hzzx面试总结
    Linux pam 后门纪录root用户密码以及自己设置root密码登录root
    JSP线程安全
  • 原文地址:https://www.cnblogs.com/liuyuanq/p/10047355.html
Copyright © 2011-2022 走看看