设为首页 收藏本站
查看: 1006|回复: 0

[经验分享] centos的网络管理

[复制链接]

尚未签到

发表于 2018-4-22 08:13:05 | 显示全部楼层 |阅读模式
  CentOS中的网络管理:
  1.为网卡设置网络属性:
  自动获取:
  在主机所在的网络中,至少有一台DHCP服务器;
  手动配置(静态指定):
  a.使用命令:
  net-tools家族(ifcfg家族):
  ifconfig(ipconfig)
  查看网络接口的配置信息;
  配置网络属性;
  管理接口状态;
  route:
  查看路由信息;
  配置路由信息(网关,静态路由,静态默认路由);
  netstat:
  状态及统计数据的查看;
  iproute家族:
  ip OBJECT
  其中OBJECT可以是:
  addr:IP地址和掩码的管理
  link:物理接口的管理
  route:路由管理
  ss:
  状态及统计数据的查看;
  注意:以上命令,在任何的Linux发行版中都适用;
  nm家族:Network Manager
  nmcli:命令行工具
  nmtui:text-window的工具
  nm家族只在CentOS7中能够使用;
  system-config-network
  system-config-network-cmd
  system-config-network-tui
  上述三个工具都是setup的子命令;在CentOS6中可以使用上述命令;
  b.修改配置文件:
  2.网络接口的命名方式:
  思科的交换机:FastEthernet0/1, GigabitEthernet0/1
  思科的路由器:Ethernet0/0, FastEthernet0/0
  Linux的接口命名的方式:
  a.传统的命名方式:
  以太网:ethX,X从0开始的整数;如:eth0,eth1,...
  PPP网络:PPPoE,PPP over Ethernet
  pppX,X从0开始的整数;如:ppp0,ppp1,...
  环回接口:lo,loopback;
  在CentOS6及之前的发行版本中使用;
  b.可预测的命名方案(CentOS7开始)
  可以支持很多种命名机制:
  1) 根据Firmware进行命名:
  每一台计算机的网卡在其计算机的硬件固件中都有唯一的标识符,比如:MAC地址,厂商标识,电器编号等;
  2) 根据物理拓扑结构:
  每一台计算机的主板上都有固定数量的插槽或接口,如主板上第二个插槽连接的网卡的第一个物理接口等;
  根据不同的命名机制,可以有如下的命名标准:
  1) 如果Firmware或BIOS是主板上集成的设备提供的索引信息并且该信息可用,则根据此索引信息进行设备命名,如:enoX, eno1,eno167777736,...
  2) 如果Firmware或BIOS是主板上扩展插槽所提供的索引信息并且该信息可用,则根据此索引信息进行设备命名,如:ensX, ens0,ens2,...
  3) 如果硬件接口的物理拓扑的位置信息存在并可用,则可以根据此信息进行设备命名,如:enp1s0
  4) 如果用户显式的定义,可以根据诸如MAC地址进行命名;如:enx000c290045b3
  5) 如果上述可预测命名皆不可用,则延用传统命名方式对网络设备进行命名;
  命名的格式组成:
  en:ethernet
  wl:wlan
  ww:wwan
  名称的类型:
  o<index>:集成设备的索引编号;
  s<slot_num>:扩展插槽的索引编号;
  x<MAC>:基于MAC地址进行命名;
  p<bus>s<slot>:基于总线+扩展插槽的索引联合索引编号;
  net-tools家族(ifcfg家族):
  1.ifconfig命令
  ifconfig - configure a network interface
  ifconfig [interface] :用于查看网络接口的配置信息;
  如果执行ifconfig命令,不带任何接口做参数,则显示所有处于激活状态的网络接口信息;
  如果执行ifconfig命名,带有特定接口名称作为参数,则无论接口是否处于激活状态,都显示该网络接口的信息;
  ifconfig interface address:用于配置指定接口的网络参数;
  ifconfig interface IP[/PREFIX_LEN] [up|down]
  ifconfig interface IP netmask SUBNET_MASK [up|down]
  示例:
  # ifconfig eth1 172.16.100.105
  # ifconfig eth1 172.16.100.105/24
  # ifconfig eth1 172.16.100.105 netmask 255.255.255.192
  # ifconfig eth1 up|down
  常用选项:
  -a:显示所有的网络接口,无论其是否处于激活状态;
  示例:
  # ifconfig -a
  route命令:查看和管理路由信息;
  路由表中的路由条目,可能包括下列几种类型:
  1.主机路由:目标地址是特定的单个IP地址;
  2.网络路由:子网路由;主网路由,超网路由(CIDR);
  10.10.10.0/24
  192.168.1.0/24
  192.168.0.0/16
  3.默认路由:目标地址为0.0.0.0/0的路由条目;到达任意地址的路由;
  常用选项:
  -n:以数字化显示主机名(IP地址)和端口
  设置路由信息:
  route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
  route del [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
  设置默认网关的方法:default === -net 0.0.0.0 netmask 0.0.0.0
  route add default gw 192.168.100.1
  route add default gw 192.168.220.1 dev eth2
  删除默认网关的方法:
  route del default
  route del default gw 172.16.0.1
  添加静态路由的方法:
  route add -net 10.0.0.0/8 gw 192.168.220.100 [dev eth2]
  删除静态路由的方法:
  route del -net 10.0.0.0/8
  route del -net 10.0.0.0/8 gw 192.168.220.100
  回顾:
  使主机连入网络并且可以使用各种资源:
  IP Address/Subnet_mask
  Gateway
  DNS Server
  设置网络接口的上述属性:
  自动获得:
  DHCP
  手动配置(静态配置):
  命令行工具:
  net-tools家族(ifcfg家族)
  ifconfig
  1.查看网络接口的信息
  2.配置网络接口的基本配置信息(IP/MASK)
  3.管理网络接口
  route
  1.查看当前Linux内核路由表  -n选项
  2.配置默认网关及静态路由
  netstat
  iproute家族
  ip
  ss
  nm家族(只是在CentOS7中才能使用)
  nmcli
  nmtui
  配置文件:
  netstat命令:
  Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
  Print network connections
[--tcp|-t]:只显示与TCP协议相关的网络连接

[--udp|-u]:只显示与UDP协议相关的网络连接

[--udplite|-U]:只显示udplite协议相关的网络连接

[--sctp|-S]:

[--raw|-w]:显示与裸套接字相关的网络连接

[--listening|-l]:显示处于LISTEN状态的TCP连接

[--all|-a]:查看所有状态的任意连接

[--numeric|-n]:数字化显示结果中的主机名、端口号、用户ID等信息;

[--numeric-hosts]

[--numeric-ports]

[--numeric-users]

[--extend|-e[--extend|-e]]:以扩展格式显示结果

[--program|-p]:显示与该网络连接相关的应用程序及进程ID

  TCP的有限状态机(TCP FSM):
  State
  The  state  of  the socket. Since there are no states in raw mode and usually no states used in UDP and UDPLite, this column may be left blank. Normally this can be one of several values:
  ESTABLISHED
  The socket has an established connection.
  SYN_SENT
  The socket is actively attempting to establish a connection.
  SYN_RECV
  A connection request has been received from the network.
  FIN_WAIT1
  The socket is closed, and the connection is shutting down.
  FIN_WAIT2
  Connection  is  closed, and the socket is waiting for a shutdown from the
  remote end.
  TIME_WAIT
  The socket is waiting after close to handle packets still in the network.
  CLOSE  The socket is not being used.
  CLOSE_WAIT
  The remote end has shut down, waiting for the socket to close.
  LAST_ACK
  The remote end has shut down, and  the  socket  is  closed.  Waiting  for
  acknowledgement.
  LISTEN The  socket  is listening for incoming connections.  Such sockets are not
  included in the output unless you specify the --listening (-l)  or  --all
  (-a) option.
  CLOSING
  Both sockets are shut down but we still don't have all our data sent.
  UNKNOWN
  The state of the socket is unknown.
  常用的选项组合:
  -tan, -uan, -tnl, -unl, -tnlp, -unlp, -tunlp
  Print routing tables
  {--route|-r}:显示路由表信息
[--numeric|-n]:数字化信息

[--extend|-e]:显示扩展信息

  常用的选项组合:
  -rn, -rne
  Print interface statistics:
  {--interfaces|-I|-i}
[--all|-a]

[--extend|-e]

[--verbose|-v]

[--program|-p]

[--numeric|-n]

  Print Protocol statistics:
  {--statistics|-s}:显示详细的各个协议的统计信息;
[--tcp|-t]

[--udp|-u]

[--udplite|-U]

[--sctp|-S]

[--raw|-w]

  iproute家族:
  ip:show / manipulate routing, devices, policy routing and tunnels
  ip [ OPTIONS ] OBJECT { COMMAND | help }
  OBJECT := { link | addr | route | netns }
  ip link COMMAND
  COMMAND: add, delete, set, show, help
  ip link set - 修改网络设备的配置参数
  ip link set [dev] IFACE_NAME { up | down }:激活或禁用网络接口;
  ip link set [dev] IFACE_NAME [ arp { on | off } ]:是否允许此网络接口使用ARP协议;
  ip link set [dev] IFACE_NAME name IFACE_NEW_NAME:更改网络接口名称,需要将设备先down掉;
  ip link set [dev] IFACE_NAME [ mtu MTU ]:修改网络接口的MTU数值;
  ip link set [dev] IFACE_NAME [ netns PID ]:
  ip link set [dev] IFACE_NAME [ netns NAME ]:将指定的网络接口加入到指定的网络名称空间中;
  ip link { show | list }:列表显示所有的链路接口;只显示链路层信息;
  ip link help:获得简短的帮助信息
  ip netns COMMAND - 设置内核中的网络名称空间;
  ip netns list:列表显示所有的自定义的名称空间;
  ip netns add NS_NAME:创建名称空间;
  ip netns exec NS_NAME cmd:在指定的名称空间中使用命令;
  ip netns delete NS_NAME:删除指定的名称空间;
  ip addr COMMAND - 查看和设置三层逻辑网络地址;
  ip addr add IFADDR dev IFACE_NAME:为指定的网络接口添加IP地址;
  ip addr del IFADDR dev IFACE_NAME:将IP地址从指定的网络接口上删除;
  ip addr flush dev IFACE_NAME:将指定接口上配置的所有IP地址全部清除;
  ip addr { show | list } [dev IFACE_NAME]:显示网络接口上配置的IP地址;
  为网络接口增加多个IP地址,并能够使用ifconfig查看;
  ip addr add IFADDR dev IFACE_NAME label IFACE_NAME_LABEL
  ifconfig IFACE_NAME_LABEL IFADDR
  IFACE_NAME_LABEL : IFACE_NAME:#
  ip route COMMAND - 查看和设置路由表信息
  ip route { add | del } TARGET/PREFIX via NEXT_HOP [dev IFACE_NAME]
  ip route list
  回顾:
  netstat
  -t, -u, -l, -e, -p, -n, -a, -s, -I|-i, ...
  ip link|addr|route|netns
  ss - another utility to investigate sockets
  ss [options] [ FILTER ]
  常用选项:
  -t:TCP协议相关的连接状态
  -u:UDP协议相关的连接
  -w:raw socket相关的连接
  -l:处于监听状态的连接
  -a:所有的状态的套接字连接
  -n:数字化显示结果
  -p:显示相关的应用程序及PID
  -e:显示详细的扩展信息
  -m:显示内存使用量
  -o:计时器信息
  常用的选项组合:
  -tan, -uan, -tnl, -unl, -tulp, -unlp
  FILTER := [ state TCP-STATE ] [ EXPRESSION ]
  TCP-STATE:TCP协议有限状态机中的所有可用状态;
  EXPRESSION:
  dport= :port
  sport= :port
  EXPRESSION示例:
  '( dport = :22 or sport = :22 )'
  net-tools
  iproute
  特点:使用命令配置网络参数以后,网络参数会立即生效;但是,只要重新启动或重新激活网络接口,其配置的网络参数立即丢失;
  上述命令的配置结果,并没有影响或修改网络设备的配置文件;
  配置文件:
  CentOS6中:
  跟IP、MASK、GATEWAY、DNS Server相关的配置文件:
  /etc/sysconfig/network-scripts/ifcfg-IFACE_NAME
  DEVICE:此网络接口的名称
  TYPE:此网络接口的类型,比较常见的是Ethernet,Bridge,Token Ring,...
  HWADDR:此设备的物理地址,在以太网中是MAC地址;
  ONBOOT:在系统引导的过程中,是否激活此设备;
  NETBOOT:是否可以使用此设备进行网络引导;
  BOOTPROTO:激活此接口时使用何种协议来配置此接口的属性;
  动态配置:dhcp,bootp
  静态配置:static,none
  IPV6INIT:是否在此接口上初始化IPV6协议;
  USERCTL:是否允许普通用户能够管理此接口;推荐取值为no;
  IPADDR:指定此接口的固定IP地址,前提是BOOTPROTO应该是static或none;
  NETMASK:设置IP地址对应的子网掩码;如:255.255.255.0
  PREFIX:设置IP地址的网络前缀的位数;如:24
  GATEWAY:设置默认网关
  DNS1:首选DNS服务器的地址指向;
  DNS2:备用DNS服务器的地址指向;
  DNS3:第三DNS服务器的地址指向;
  PEERDNS:是否允许从DHCP服务器获得的DNS服务器的地址指向替代此配置文件中的DNS服务器的地址指向;默认值为允许;
  NM_CONTROLLED:是否允许NetworkManager服务管理网络接口;此服务在CentOS6中非常不完善,所以建议不使用此服务进行网络接口的管理;而且最好将此服务永久关闭,执行下列两条命令即可;
  # service NetworkManager stop
  # chkconfig NetworkManager off
  主机名称的配置文件:/etc/sysconfig/network
  HOSTNAME:当前Linux系统使用的主机名称
  # hostname 查看当前系统的FQDN
  # hostname NEW_HOSTNAME
  注销后重新登录,即可生效
  CentOS7中:
  跟IP、MASK、GATEWAY、DNS Server相关的配置文件:
  /etc/sysconfig/network-scripts/ifcfg-IFACE_NAME
  多数的配置语句与Center6相同,多出了下列几项:
  UUID:全局唯一标识符,用来唯一标识此网络接口;
  NAME:此网络接口的显示名称;
  DEFROUTE:是否允许此网络接口运行默认路由;
  主机名称的配置文件:/etc/sysconfig/network
  # hostnamectl set-hostname NEW_HOSTNAME
  本地解析配置文件:/etc/hosts
  格式为:IP地址 主机名(多个主机名之间使用空白字符隔开)
  解析器文件:/etc/resolv.conf
  search DOMAIN_NAME
  nameserver DNS_SERVER_IP_ADDRESS
  静态路由的配置文件:/etc/sysconfig/network-scripts/route-IFACE_NAME
  IFACE_NAME:必须为此次路由出站接口的名称;
  两种风格的写法:
  1.每条路由信息占用一行;
  TARGET via NEXT_HOP [dev IFACE_NAME]
  示例:
  10.0.0.0/8 via 192.168.100.254
  2.每条路由信息占用多行;
  ADDRESS#=TARGET
  NETMASK#=MASK
  GATEWAY#=NEXT_HOP
  示例:
  ADDRESS0=172.16.0.0
  NETMASK0=255.255.0.0
  GATEWAY0=192.168.10.254
  Bonding —— 绑定
  就是将多块网卡(多个网络接口设备)绑定同一IP地址,对外提供网络服务;这些网卡之间可以实现负载均衡或高可用技术;
  通过bonding,虚拟一个网卡对外提供服务及网络连接,所有的物理网卡都被修改为相同的MAC地址;
  Bonding的工作模式:
  Mode 0——负载均衡解决方案,其负载均衡的算法为balance-rr(round robin, 轮询);轮询策略意味着:从头到尾顺序的在每个slave接口上面发送数据包;该模式可以提供负载均衡以及容错的能力;
  Mode 1——主备解决方案,(active-backup, master-backup),在此模式中,只有一个slave被激活,用于正常数据传输;而其他的接口都监视此接口的工作状态;当且仅当活动的slave接口失败的时候,才会从其他备份的接口中选择一个用于激活;该模式只能实现容错,无法进行负载均衡;
  Mode 3——全广播解决方案,在所有的slave接口上传输全部报文;
  miimon用来进行链路监测。如果miimon=100,则系统每100ms监测一次链路连接的状态;如果某个网络接口在miimon监测的结果为不连通,则进行故障倒换;
  使用Bonding的时候,我们需要配置:
  1.创建虚拟接口
  2.选择miimon的监测时间及Bonding的工作模式;
  3.选择用于此次Bonding的物理接口;
  在/etc/sysconfig/network-scripts/ifcfg-bond0文件中指定Bonding的特性即可:
  DEVICE=bond0
  ONBOOT=yes
  NM_CONTROLLED=no
  BOOTPROTO=none
  BONDING_OPTS="miimon=100 mode=0"
  IPADDR=172.16.100.135
  PREFIX=16
  修改物理网卡的配置文件:/etc/sysconfig/network-scripts/ifcfg-eth1
  DEVICE=eth1
  BOOTROTO=none
  MASTER=bond0
  SLAVE=yes
  USERCTL=no
  修改物理网卡的配置文件:/etc/sysconfig/network-scripts/ifcfg-eth2
  DEVICE=eth2
  BOOTROTO=none
  MASTER=bond0
  SLAVE=yes
  USERCTL=no

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-450234-1-1.html 上篇帖子: 安装Centos6.5详细教程 下篇帖子: Linux学习之CentOS(六)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表