【Linux】【Basis】网络

Linux网络属性配置            
         
     计算机网络: 
         TCP/IP:协议栈(使用)
             ISO,OSI:协议栈(学习)
             
         MAC:Media Access Control
             48bits:
                 ICANN:24bits, 2^24
                     地址块:2^24
                     
                 网桥(bridge):MAC地址表
                     静态指定:
                     动态学习:根据原地址学习;
                     
                 交换机(switch):多端口网桥; 
                     
         IP(Internet protocol)地址:网络号+主机号
                 A<-->B
                     网络?
                     主机?
                 
                 IPv4:32bits
                     8bits.8bits.8bits.8bits
                         0-255
                         0.0.0.0-255.255.255.255
                         
                     IP地址分类:
                         A类:
                             第一段为网络号,后三段为主机号
                             网络号:
                                 0 000 0000 - 0 111 1111:1-127
                             网络数量:126,127
                             每一个网络中的主机数量:2^24-2
                             默认子网掩码:255.0.0.0,/8
                                 用于与IP地址按位进行“与”运算,从而取出其网络地址;
                                     1.3.2.1/255.0.0.0 = 1.0.0.0
                                     1.3.2.1/255.255.0.0= 1.3.0.0   
                             私网地址:10.0.0.0/255.0.0.0
                         B类:
                             前两段为网络号,后两段为主机号
                             网络号:
                                 10 00 0000 - 10 11 1111:128-191
                                 网络数:2^14
                                 每一个网络中的主机数量:2^16-2
                                 默认子网掩码:255.255.0.0,/16
                                 私网地址:172.16.0.0-172.31.0.0                             
                         C类:
                             前三段为网络号,最后一段为主机号
                             网络号:
                                 110 0 0000 - 110 1 1111:192-223
                             网络数:2^21
                             每一个网络中的主机数量:2^8-2
                             默认子网掩码:255.255.255.0,  /24
                         D类:组播
                             1110 0000 - 1110 1111:224-239
                         E类:科研
                             240-255
                 IPv6:128bits
                 
                     路由器:router
                         路由表:
                             静态指定
                             动态学习:rip2, ospf
                             
                         路由条目:
                             目标地址  下一跳(nexthop)
                                 目标地址的类别:
                                     主机:主机路由
                                     网络:网络路由
                                     0.0.0.0/0.0.0.0:默认路由                           
     OS:多用户,多任务
         多任务:多进程
             chrome:
             QQ:
             QQ Music:
             
         通讯时,进程的数字标识:
             16bits:
                 0-65535:1-65535
                     1-1023:固定分配,并且只有管理员有权限启用;
                     1024-4W:半固定,
                     4W+:临时;
         进程地址:
             IP:PORT,  socket
             
     总结:
         MAC:本地通讯;范围:本地局域网;
         IP:界定通讯主机,源和目标;范围:互联网;
         Port:界定进程;范围:主机 ;
         
     将Linux主机接入到网络中:
         IP/NETMASK:本地通讯
         路由(网关):跨网络通讯
         DNS服务器地址:基于主机名的通讯
             主DNS服务器地址
             备用DNS服务器地址
             第三备份DNS服务器地址
             
         配置方式:
             静态指定:
                 命令:
                     ifcfg家族:
                         ifconfig:配置IP,NETMASK
                         route:路由
                         netstat:状态及统计数据查看
                     iproute2家族:
                         ip OBJECT:
                             addr:地址和掩码;
                             link:接口
                             route:路由
                         ss:状态及统计数据查看
                     CentOS 7:nm(Network Manager)家族
                         nmcli:命令行工具
                         nmtui:text window 工具
                         
                     注意:
                         (1) DNS服务器指定   
                             配置文件:/etc/resolv.conf
                         (2) 本地主机名配置
                             hostname
                             配置文件:/etc/sysconfig/network
                             CentOS 7:hostnamectl                   
                 配置文件:
                     RedHat及相关发行版
                         /etc/sysconfig/network-scripts/ifcfg-NETCARD_NAME
                     
             动态分配:依赖于本地网络中有DHCP服务
                 DHCP:Dynamic Host Configure Procotol
                 
     网络接口命名方式:
         传统命名:
             以太网:ethX, [0,oo),例如eth0, eth1, ...
             PPP网络:pppX, [0,...], 例如,ppp0, ppp1, ...
         
         可预测命名方案(CentOS):
             支持多种不一样的命名机制:
                 Fireware, 拓扑结构
                 
             (1) 若是Firmware或BIOS为主板上集成的设备提供的索引信息可用,则根据此索引进行命名,如eno1, eno2, ...
             (2) 若是Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,如ens1, ens2, ...
             (3) 若是硬件接口的物理位置信息可用,则根据此信息命名,如enp2s0, ...
             (4) 若是用户显式定义,也可根据MAC地址命名,例如enx122161ab2e10, ...
             上述均不可用,则仍使用传统方式命名;
             
             命名格式的组成:
                 en:ethernet
                 wl:wlan
                 ww:wwan
                 
                 名称类型:
                     o<index>:集成设备的设备索引号;
                     s<slot>:扩展槽的索引号;
                     x<MAC>:基于MAC地址的命名;
                     p<bus>s<slot>:基于总线及槽的拓扑结构进行命名;
                     
回顾:计算机网络基础、Linux网络属性配置
     TCP/IP协议栈:物理层、互联网层、传输层、应用层
         互联网层:IP
         传输层:TCP, UDP
         应用层:http, https, ftp, ldap, ...
         
     连接路层:以太网帧
     互联网层:IP报文
     
     以太网帧:MTU(1500)
         
     Linux网络属性配置:命令,配置文件;
         
Linux网络属性配置(2)
 
     ifcfg命令家族: ifconfig, route, netstat
         
         ifconfig命令:接口及地址查看和管理
             ifconfig  [INTERFACE]
                 # ifconfig -a:显示全部接口,包括inactive状态的接口;
             
             ifconfig interface [aftype] options | address ...
                 # ifconfig  IFACE  IP/MASK  [up|down]
                 # ifconfig  IFACE  IP  netmask  NETMASK 
                 
                 options:
                     [-]promisc
                 
                 注意:当即送往内核中的TCP/IP协议栈,并生效;
                 
             管理IPv6地址:
                 add addr/prefixlen
                 del  addr/prefixlen
                 
         route命令:路由查看及管理
         
             路由条目类型:
                 主机路由:目标地址为单个IP;
                 网络路由:目标地址为IP网络;
                 默认路由:目标为任意网络,0.0.0.0/0.0.0.0
                 
             查看:
                 # route  -n
             添加:
                 route  add  [-net|-host]  target  [netmask  Nm]  [gw GW]  [[dev] If]
                 
                     示例:route add -net  10.0.0.0/8  gw  192.168.10.1  dev  eth1
                                 route add  -net  0.0.0.0/0.0.0.0  gw 192.168.10.1 
                                 route add  default  gw 192.168.10.1 
                                 
             删除:
                 route  del  [-net|-host] target  [gw Gw]  [netmask Nm]  [[dev] If]
                     
                     示例: route  del  -net  10.0.0.0/8  gw 192.168.10.1
                              route  del  default
                              
         netstat命令:
             Print network connections, routing tables, interface statistics, masquerade connections, and multicast  memberships
             
             显示路由表:netstat  -rn
                 -r:显示内核路由表
                 -n:数字格式
                 
             显示网络链接:
                 netstat  [--tcp|-t]  [--udp|-u]  [--udplite|-U]  [--sctp|-S]  [--raw|-w]  [--listening|-l]  [--all|-a]  [--numeric|-n]   [--extend|-e[--extend|-e]]  [--program|-p]
                     -t:TCP协议的相关链接,链接均有其状态;FSM(Finate State Machine);
                     -u:UDP相关的链接
                     -w:raw socket相关的链接
                     -l:处于监听状态的链接
                     -a:全部状态
                     -n:以数字格式显示IP和Port;
                     -e:扩展格式
                     -p:显示相关的进程及PID;
                     
                 经常使用组合:
                     -tan,  -uan,  -tnl,  -unl,  -tunlp
                                 
                 传输层协议:
                     tcp:面向链接的协议;通讯开始以前,要创建一个虚链路;通讯完成后还要拆除链接;
                     udp:无链接的协议;直接发送数据报文;
                     
             显示接口的统计数据:
                 netstat    {--interfaces|-I|-i}    [iface]   [--all|-a]   [--extend|-e]   [--verbose|-v]   [--program|-p]  [--numeric|-n]
                     
                 全部接口:
                     netstat  -i
                 指定接口:
                     netstat  -I<IFace>
                     
         ifup/ifdown命令:
             注意:经过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE来识别接口并完成配置;
     
     配置主机名:
     
         hostname命令:
             查看:hostname
             配置:hostname  HOSTNAME
                 当前系统有效,重启后无效;
             
         hostnamectl命令(CentOS 7):
             hostnamectl  status:显示当前主机名信息;
             hostnamectl  set-hostname:设定主机名,永久有效;
             
         配置文件:/etc/sysconfig/network
             HOSTNAME=<HOSTNAME>
             
             注意:此方法的设置不会当即生效; 但之后会一直有效;
             
     配置DNS服务器指向:
         
         配置文件:/etc/resolv.conf
             nameserver   DNS_SERVER_IP
             
             如何测试(host/nslookup/dig):
                 # dig  -t  A  FQDN
                     FQDN --> IP
                     
                 # dig  -x  IP
                     IP --> FQDN
                     
     iproute家族:
         ip命令:
             show / manipulate routing, devices, policy routing and tunnels
             
             ip [ OPTIONS ] OBJECT { COMMAND | help }
                 OBJECT := { link | addr | route | netns  }
             
             注意: OBJECT可简写,各OBJECT的子命令也可简写;
                 
             ip  OBJECT:
                 
                 ip link: network device configuration
                 
                     ip  link  set - change device attributes
                         dev NAME (default):指明要管理的设备,dev关键字可省略;
                         up和down:
                         multicast on或multicast off:启用或禁用多播功能;
                         name NAME:重命名接口
                         mtu NUMBER:设置MTU的大小,默认为1500;
                         netns PID:ns为namespace,用于将接口移动到指定的网络名称空间;
                         
                     ip  link  show  - display device attributes
                     
                     ip  link  help -  显示简要使用帮助;
                     
                 ip netns:  - manage network namespaces.
                 
                     ip  netns  list:列出全部的netns
                     ip  netns  add  NAME:建立指定的netns
                     ip  netns  del  NAME:删除指定的netns
                     ip  netns   exec  NAME  COMMAND:在指定的netns中运行命令
                     
                 ip address - protocol address management.
                     
                     ip address add - add new protocol address
                         ip  addr  add  IFADDR  dev  IFACE
                             [label NAME]:为额外添加的地址指明接口别名;
                             [broadcast ADDRESS]:广播地址;会根据IP和NETMASK自动计算获得;
                             [scope SCOPE_VALUE]:
                                 global:全局可用;
                                 link:接口可用;
                                 host:仅本机可用;                                            
                         
                     ip address delete - delete protocol address
                         ip addr  delete  IFADDR  dev  IFACE
                             
                     ip address show - look at protocol addresses
                         ip  addr   list  [IFACE]:显示接口的地址;
                         
                     ip address flush - flush protocol addresses
                         ip  addr  flush  dev  IFACE
                         
                 ip route - routing table management
                 
                     ip route add - add new route
                     ip route change - change route
                     ip route replace - change or add new one
                         ip  route   add  TYPE PREFIX  via GW  [dev  IFACE]  [src SOURCE_IP]
                         
                         示例:
                             # ip route add 192.168.0.0/24  via 10.0.0.1  dev eth1 src  10.0.20.100
                             # ip  route  add default  via  GW                      
                         
                     ip route delete - delete route
                         ip  route  del  TYPE PRIFIX
                         
                         示例:
                             # ip  route delete  192.168.1.0/24
                             
                     ip route show - list routes
                         TYPE PRIFIX 
                     ip route flush - flush routing tables
                         TYPE  PRIFIX
                     
                     ip route get - get a single route
                         ip  route  get  TYPE PRIFIX
                         
                         示例:ip route  get  192.168.0.0/24
                     
         ss命令:
             ss  [options]  [ FILTER ]
                 选项:
                     -t:TCP协议的相关链接
                     -u:UDP相关的链接
                     -w:raw socket相关的链接
                     -l:监听状态的链接
                     -a:全部状态的链接
                     -n:数字格式
                     -p:相关的程序及其PID
                     -e:扩展格式信息
                     -m:内存用量
                     -o:计时器信息
                     
                 FILTER := [ state TCP-STATE ]  [ EXPRESSION ]
                 
                     TCP的常见状态:
                         TCP FSM:
                             LISTEN:监听
                             ESTABLISEHD:创建的链接
                             FIN_WAIT_1:
                             FIN_WAIT_2:
                             SYN_SENT:
                             SYN_RECV:
                             CLOSED:
                         
                     EXPRESSION:
                         dport =
                         sport =
                             示例:'( dport = :22 or sport = :22)'
                                 ~]# ss   -tan    '(  dport = :22 or sport = :22  )'
                                 ~]# ss  -tan  state  ESTABLISHED
                                 
     配置文件:
         IP/NETMASK/GW/DNS等属性的配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
             IFACE:接口名称;
         路由的相关配置文件:/etc/sysconfig/networkj-scripts/route-IFACE
                     
         配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE经过大量参数来定义接口的属性;其可经过vim等文本编辑器直接修改,也能够使用专用的命令的进行修改(CentOS 6:system-config-network (setup),CentOS 7: nmtui)
         
             ifcfg-IFACE配置文件参数:
                 DEVICE:此配置文件对应的设备的名称;
                 ONBOOT:在系统引导过程当中,是否激活此接口;
                 UUID:此设备的唯一标识;
                 IPV6INIT:是否初始化IPv6;
                 BOOTPROTO:激活此接口时使用什么协议来配置接口属性,经常使用的有dhcp、bootp、static、none;
                 TYPE:接口类型,常见的有Ethernet, Bridge;
                 DNS1:第一DNS服务器指向;
                 DNS2:备用DNS服务器指向;
                 DOMAIN:DNS搜索域;
                 IPADDR: IP地址;
                 NETMASK:子网掩码;CentOS 7支持使用PREFIX以长度方式指明子网掩码;
                 GATEWAY:默认网关;
                 USERCTL:是否容许普通用户控制此设备;
                 PEERDNS:若是BOOTPROTO的值为“dhcp”,是否容许dhcp server分配的dns服务器指向覆盖本地手动指定的DNS服务器指向;默认为容许;
                 HWADDR:设备的MAC地址;
                 
                 NM_CONTROLLED:是否使用NetworkManager服务来控制接口;
                 
             网络服务:
                 network
                 NetworkManager
                 
                 管理网络服务:
                     CentOS 6:  service  SERVICE  {start|stop|restart|status}
                     CentOS 7:systemctl  {start|stop|restart|status}  SERVICE[.service]
                     
                 配置文件修改以后,若是要生效,须要重启网络服务;
                     CentOS 6:# service  network  restart
                     CentOS 7:# systemctl  restart  network.service
                     
         用到非默认网关路由:/etc/sysconfig/network-scripts/route-IFACE
             支持两种配置方式,但不可混用;
                 (1) 每行一个路由条目:
                     TARGET  via  GW
                     
                 (2) 每三行一个路由条目:
                     ADDRESS#=TARGET
                     NETMASK#=MASK
                     GATEWAY#=NEXTHOP
                     
     给接口配置多个地址:
         ip addr以外,ifconfig或配置文件均可以;
         
         (1) ifconfig  IFACE_LABEL  IPADDR/NETMASK
         
             IFACE_LABEL: eth0:0, eth0:1, ...
             
         (2) 为别名添加配置文件;
             DEVICE=IFACE_LABEL
             BOOTPROTO:网上别名不支持动态获取地址;
                 static, none
                 
     nmcli命令:
         nmcli  [ OPTIONS ] OBJECT { COMMAND | help }
             
             device - show and manage network interfaces
                 COMMAND := { status | show | connect | disconnect | delete | wifi | wimax }
             
             connection - start, stop, and manage network connections
                 COMMAND := { show | up | down | add | edit | modify | delete | reload | load }
                 
                 modify [ id | uuid | path ] <ID> [+|-]<setting>.<property> <value>
                 
                 如何修改IP地址等属性:
                     # nmcli  conn  modify  IFACE  [+|-]setting.property  value
                         ipv4.address
                         ipv4.gateway
                         ipv4.dns1
                         ipv4.method
                             manual
                             
     博客做业:上述全部内容;
         ifcfg, ip/ss,配置文件
         
     课外做业:nmap, ncat, tcpdump命令;
 
网络客户端工具:
     
     ping/lftp/ftp/lftpget/wget等;
     
     ping命令:
         send ICMP ECHO_REQUEST to network hosts
         ICMP:Internet Control Message Protocol     
         
         ping  [OPTION]  destination
             -c #:发送的ping包个数;
             -w #:ping命令超时时长;
             -W #:一次ping操做中,等待对方响应的超时时长;
             -s #:指明ping包报文大小;
         
     hping命令: (package: hping3)
         send (almost) arbitrary TCP/IP packets to network hosts
         
             --fast
             --faster
             --flood
             -i uX
         
     traceroute命令:
         - print the route packets trace to network host
         
         跟踪从源主机到目标主机之间通过的网关;
         
     ftp命令:
         ftp: File Transfer Protocol
             
             ftp服务命令行客户端工具;
             
     lftp命令:
         lftp  [-p port]  [-u user[,pass]] [site]
         
         get, mget
         put, mput
         rm, mrm
         
     lftpget命令:
         lftpget [-c] [-d] [-v] URL [URL...]
             -c:继续此前的下载;
             
     wget命令:
         The non-interactive network downloader.
         
         wget [option]... [URL]...
             -b:在后台执行下载操做;
             -q:静默模式,不显示下载进度;
             -O file:下载的文件的保存位置;
             -c:续传;
             --limit-rate=amount:以指定的速率传输文件;
相关文章
相关标签/搜索