• 跨网络通信

    跨网络通信需要借助路由器,而路由器根据路由表路径来转发数据

      路由分类

             主机路由 

             网络路由

             默认路由

  路由有优先级:精度越高,优先级越高

  路由表构成

      Linux网络配置_路由

     Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

       目标地址          网关                 掩码                        优先级                  接口

  目标:数据包发送的目标路径

  网关

       1、直连:不需要配置

       2、非直连:下一跳地址(下一个路由器邻近本路由器的接口地址)

  掩码:目标地址对应的掩码

  接口:本路由器的出口

  •  基本网络配置

   将Linux主机接入到网络,需要配置网络相关设置

     一般包括如下内容

         主机名hostname

         IP/Netmask

         路由route:默认网关

         DNS服务器

             主DNS服务器

             次DNS服务器

             第三DNS服务器

  • 网卡管理

      查看网卡工作模式

         mii-tool -v IFACE

      查看网卡驱动

         dmesg | grep -i IFACE

         ethtool -i IFACE

      卸载网卡驱动

        modproble -r e1000

        rmmod e1000

      装载网卡驱动

        modproble e1000

       网卡名称

         centos6  

            网络接口使用连续号码命名:eth0、eth1等,当增加或删除网卡时,名称可能会发生变化                      

                         以太网:eth[0,1,2,...]

                      ppp:ppp[0,1,2,...]         

            网络接口识别并命名相关的udev配置文件:

            /etc/udev/rules.d/70-persistent-net.rules

           Linux网络配置_路由_02

         centos7             

            CentOS 7使用基于硬件,设备拓扑和设置类型命名:

                一、网卡命名机制:systemd对网络设备的命名方式

                        1、Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1

                        2、Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1

                        3、硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0

                        4、用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56

                        5、 上述均不可用时,则使用传统命名机制                  

                  基于BIOS支持启用biosdevname软件

                       内置网卡:em1,em2

                       pci卡:pYpXY:slot ,X:port

             二、 名称组成格式

                       en: Ethernet 有线局域网

                       wl: wlan无线局域网

                       ww: wwan无线广域网

              名称类型:

                   o<index>: 集成设备的设备索引号

                   s<slot>: 扩展槽的索引号

                   x<MAC>: 基于MAC地址的命名

                   p<bus>s<slot>: enp2s1

            修改网卡命名方式为传统命令方式

            1、修改/etc/default/grub

                  grub2-mkconfig -o /etc/grub2.cfg

            2、修改/etc/grub2.cfg --> /etc/grub2/grub.cfg 

                linux 16   行的行尾添加net.ifnames=0

  • 设置主机名

      centos6

         hostname [HOSTNAME]   临时生效

         永久有效:/etc/sysconfig/network

         Linux网络配置_网络相关配置_03

          存放网关和主机名

            修改网关,在下一次重启生效 

            修改主机名后执行hostname newhostname 生效

         注意:如果hostname文件和网卡配置文件都有网关,网卡配置文件优先生效  

      centos7

         hostname [HOSTNAME]  临时生效

         永久有效:/etc/hostname

         Linux网络配置_路由_04

           直接存放主机名

          hostnamectl set-hostname newhostname  修改配置文件并生效

         Linux网络配置_网络相关配置_05  

  • 设置DNS

    /etc/resolv.conf

        nameserverDNS_SERVER_IP1

        nameserverDNS_SERVER_IP2

        nameserverDNS_SERVER_IP3

     Linux网络配置_网络相关配置_06

    /etc/hosts  本地主机名数据库和IP地址映射

      Linux网络配置_网络相关配置_07

      Linux网络配置_路由_08

    hosts文件优先级高于resolv.conf文件

  注意:建议修改主机名后把新主机名添加到此文件;搭好网站后,在hosts文件中地址指向自己

    /etc/nsswitch.conf

       可修改hosts文件优先级;交换files和dns位置即可

     Linux网络配置_路由_09

  • IP 管理相关命令

   ifconfig命令

      查看

         ifconfig [IFACE]  显示活动的接口列表

         ifconfig -a  显示所有接口列表

         ifconfig -s [IFACE]  显示网卡接收信息       

      启用禁用网卡

         ifconfig  IFACE down | up

         ifdown | ifup IFACE  注意:此命令依赖于配置文件,配置文件得事先存在

      设置IP地址

         ifconfig IFACE IP/mask | IP netmask

         ifconfig IFACEALIAS IP/netmask  网卡别名设置地址

      启用混杂模式

         [-]promisc

   ip命令

      查看

         ip a | add | address 显示IP地址,网络层信息

         ip link show | list  [IFACE]  显示数据链路层信息

      禁用或启用网卡

         ip link set IFACE down | up 

      添加IP地址

         ip  a a IP/mask device IFACE

         ip a a IP device IFACE label ALIASIFACE  

         ip a a IP dev IFACE scpe{global|link|host}指明作用域

                        global:全局可用

                        link:仅链接可用

                        host:本机可用         

      删除IP地址

             ip a del IP dev IFACE

             ip a flush dev IFACE   清空IP地址

      路由管理

         查看路由表

             ip route show | list

         添加路由

             ip route add TARGET via GW dev IFACE

         删除路由

             ip route del TARGET via GW dev IFACE

             ip route flush dev IFACE   清空路由表

    注意:iP命令添加的地址只能用ip命令可以查看到

  • route 路由管理命令    

       查看路由表

          route -n

       添加路由

          route add -host IP GW IP dev IFACE  主机路由

          route add -net IP/32 GW IP dev iFACE  

          route add -net IP/mask GW IP [dev IFACE]  网络路由

          route add -net IP netmask GW IP [dev IFACE]

          route add default GW IP   默认路由

          route add -net 0.0.0.0 netmask 0.0.0.0

       删除路由

          route  del  -host  IP

          route  del  -net IP netmask

          route  del  default  gw  IP

   使用命令管理路由是临时生效,永久生效需写配置文件

     路由配置文件

          /etc/sysconfig/network-scripts/route-IFACE

        格式

            一、TARGET via GW

             Linux网络配置_路由_10

            二、每三行定义一条路由

                  ADDRESS#=TARGET

                  NETMASK#=mask

                  GATEWAY#=GW

            Linux网络配置_路由_11

        重启网络服务后配置文件生效  service network restart

      注意:如果有两条默认路由,和外网通讯时会有故障,建议写一条默认路由

       Linux默认不转发路由,开启路由转发功能

             echo 1 > /proc/sys/net/ipv4/ip_forward

        跟踪路由

          traceroute IP

          tracepath IP

          mtr 动态跟踪 

  • 网络配置文件 

   IP,MASK,GW,DNS相关配置文件

      /etc/sysconfig/network-scripts/ifcfg-IFACE

        DEVICE   此配置文件应用到的设备

        ONBOOT=yes|no  是否开机自动启动

        BOOTPROTO=dhcp|static|none|bootp 激活此设备时使用的地址配置协议

        IPADDR  指明IP地址

        NETMASK | PREFIX  子网掩码,可用CIDR表示法

        TYPE=ethernet|bridge  接口类型

        GATEWAY  默认网关

        DNS1  主DNS服务器

        DNS2  次DNS服务器

        HWADDR  对应设备的MAC地址

        MACADDR  自己指定的MAC地址

        UUID  设备的唯一标识

        USERCTL  普通用户是否可控制此设备

        PEERDNS  如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中

        NM_CONTROLLED=yes|no  NM是NetworkManager,此网卡是否接受NM控制;建议centos6为No

  • 查看网络系统状态信息相关命令

      netstat 命令

          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 相关

                 -a:所有

                 -l:处于Listen状态

                -n:数字格式显示          

                -e:显示扩展信息

                -p:显示相关进程及PID

               -nr:显示路由表

         netstat -i 显示所有接口统计信息

                     -IIFACE | -I=IFACE 显示指定接口统计信息

        常用组合

             netstat -tan,-uan,-tanp,-tnl,-unl

      ss 显示处于活动状态的套接字信息

         ss [ OPTIONS ] [ FILTER ]

                 -t:TCP协议相关

                 -u:UDP协议相关

                 -w:裸套接字相关

                 -x:Unix sock相关

                 -l:listen状态的连接

                 -a:所有

                 -n:数据格式

                 -p:相关程序及PID

                 -e:扩展信息

                 -m:内存信息

                 -o:计时器信息

      常用组合

          ss -l,-pl  显示本地打开的所有端口相关信息

          ss -ta,-tan,tnl,-tanl,-tanlp  显示tcp协议相关信息

          ss -ua,-uan,unl  显示udp协议相关信息

          ss -o state established '( dport = :ssh or sport = :ssh )'  显示所有已建立的ssh连接

          ss -s 显示当前socket详细信息

  • nmcli 地址配置工具

    nmcli  地址配置工具

       查看

          nmcli connection show [IFACE]  显示所有连接

          nmcli dev status  显示所有设备状态

          nmcli connection show --active  显示所有活动连接

       启用或禁用网卡

          nmcli connection IFACE up | down 

          nmcli dev disconnect IFACE   断开连接

          nmcli dev connect IFACE    连接

       创建新连接

          nmcli connection add con-name aaa type ethernet ifname ens38 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1/24  ipv4.dns 114.114.114.114  autoconnect yes

       修改连接设置

          nmcli connection mod IFACE [+|-]setting.property value

                  +ipv4.addresses      ipv4.gateway

                   ipv4.dns1                 ipv4.method:manual | auto  

       启用或禁用连接

           nmcli connection up IFACE 

           nmcli connection down IFACE

       重新加载配置文件 

           nmcli connection reload

  • 网卡别名

  在一个网卡上绑定多个IP地址

     一、命令临时绑定

        ifconfig  IFACEALIAS IP/mask

           ifconfig eth0:0 192.168.1.254/24

        ip address add  IP/mask dev IFACE label IFACE

          ip a a 192.168.1.254/24 dev ens33 label ens33:0

        nmcli connection mod IFACE +ipv4.address IP IP

       删除

           ifconfig eth0:0 down

           ip a del 192.168.1.254/24 dev ens33:0

           nmcli connection mod IFACE -ipv4.address IP

     二、写配置文件

       1、写多个配置文件

             cat > ifcfg-eth0:1

                DEVICE=eth0:1

                BOOTPROTO=static

                IPADDR=192.168.1.254

                PREFIX=24

             cat > ifcfg-eth0:2

                DEVICE=eth0:1

                BOOTPROTO=static

                IPADDR=192.168.1.254

                PREFIX=24

            service NetworkManager stop

            service network restart

     注意:写完配置文件后需重启服务;Centos6上需关闭NetworkManager服务

       2、一个配置文件里写多个地址

           cat > ifcfg-ens33         

            DEVICE=ens33

            BOOTPROTO=none

            IPADDR=192.168.30.7

            NETMASK=255.255.255.0

            IPADDR1=192.168.30.71

            NETMASK1=255.255.255.0

    注意:网卡别名必须使用静态地址,不可使用DHCP

Linux网络配置工具:字符配置工具

     setup

     nmtui

  多个网卡上绑定一个IP地址

    centos6:Bonding

        将多块网卡上绑定一个IP地址对外提供服务,可实现高可用或负载均衡;虚拟一块网卡对外提供连接,物理网卡被修改为相同的MAC地址

     Bonding工作模式

       Mode 0(balance-rr) 轮转策略

             从头到尾顺序的在每一个slave接口上面发送数据包;提供负载均衡和容错能力

       Mode 1(active-backup) 活动备份(主备)策略

             只有一个slave被激活,当且仅当活动的slave接口失败时才会激活其它slave;

             为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见

       Mode 3 (broadcast)广播策略

             在所有slave接口上传送所有报文,提供容错能力

      配置

        1、创建bonding配置文件

             把要绑定的网卡设为同一模式

             Linux网络配置_路由_12

            Linux网络配置_路由_13  

        2、创建物理网卡配置文件

           Linux网络配置_网络相关配置_14

           Linux网络配置_网络相关配置_15

        3、重启网络服务

          Linux网络配置_网络相关配置_16

          注意:centos6在重启网络服务之前需关闭NetworkManager

           查看bond状态

          cat /proc/net/bonding/bond0

         Linux网络配置_网络相关配置_17

       删除

           1、禁用bond0接口,卸载bond驱动

            Linux网络配置_路由_18

           2、删除配置文件

            Linux网络配置_网络相关配置_19

      nmcli命令配置Bonding

        1、添加bonding接口

             nmcli connection add type bond con-name mybond0 ifname mybond0 mode active-backup ipv4.method manual ipv4.address 192.168.30.128/24

        2、添加从属接口

             nmcli connection add type bond-slave con-name boud0-ens33 ifname mybond0 master mybond0

             nmcli connection add type bond-slave con-name boud0-ens37 ifname mybond0 master mybond0

        3、启动从属接口

             nmcli connection up bond0-ens33

             nmcli connection up bond0-ens37

        4、启动绑定

             nmcli connection up mybond0

    centos7:网络组Networking Teaming

       将多个网卡聚合到一起,从而实现冗错和高吞吐量

      实现方法

        1、创建team组接口

           nmcli connection add type team con-name team0 config '{"runner":{"name":"broadcast"}}' ifname team0 ipv4.method manual ipv4.address 192.168.30.100/24

        2、创建port接口

            nmcli connection add type team-slave con-name team0-ens33 ifname ens33 master team0

            nmcli connection add type team-slave con-name team0-ens37 ifname ens37 master team0

        3、启用接口           

            nmcli connection up team0

            nmcli connection up team0-ens33

            nmcli connection up team0-ens37

          查看team状态

            teamdctl team0 state

    删除

       1、直接删除文件

       2、命令删除

   网络组配置文件

     虚拟网卡:

      Linux网络配置_路由_20      

   物理网卡:

     Linux网络配置_网络相关配置_21

     Linux网络配置_网络相关配置_22