天天看點

Linux網絡配置

跨網絡通信

    跨網絡通信需要借助路由器,而路由器根據路由表路徑來轉發資料

      路由分類

             主機路由 

             網絡路由

             預設路由

  路由有優先級:精度越高,優先級越高

  路由表構成

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網絡配置

         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網絡配置

          存放網關和主機名

            修改網關,在下一次重新開機生效 

            修改主機名後執行hostname newhostname 生效

         注意:如果hostname檔案和網卡配置檔案都有網關,網卡配置檔案優先生效  

      centos7

         hostname [HOSTNAME]  臨時生效

         永久有效:/etc/hostname

Linux網絡配置

           直接存放主機名

          hostnamectl set-hostname newhostname  修改配置檔案并生效

Linux網絡配置

設定DNS

    /etc/resolv.conf

        nameserverDNS_SERVER_IP1

        nameserverDNS_SERVER_IP2

        nameserverDNS_SERVER_IP3

Linux網絡配置

    /etc/hosts  本地主機名資料庫和IP位址映射

Linux網絡配置
Linux網絡配置

    hosts檔案優先級高于resolv.conf檔案

  注意:建議修改主機名後把新主機名添加到此檔案;搭好網站後,在hosts檔案中位址指向自己

    /etc/nsswitch.conf

       可修改hosts檔案優先級;交換files和dns位置即可

Linux網絡配置

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網絡配置

            二、每三行定義一條路由

                  ADDRESS#=TARGET

                  NETMASK#=mask

                  GATEWAY#=GW

Linux網絡配置

        重新開機網絡服務後配置檔案生效  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狀态的連接配接

                 -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

            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網絡配置
Linux網絡配置

        2、建立實體網卡配置檔案

Linux網絡配置
Linux網絡配置

        3、重新開機網絡服務

Linux網絡配置

          注意:centos6在重新開機網絡服務之前需關閉NetworkManager

           檢視bond狀态

          cat /proc/net/bonding/bond0

Linux網絡配置

           1、禁用bond0接口,解除安裝bond驅動

Linux網絡配置

           2、删除配置檔案

Linux網絡配置

      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網絡配置

   實體網卡:

Linux網絡配置
Linux網絡配置