網絡管理之配置文件及一些命令的應用

IP配置、信息、相關命令

   IP地址

    它們可唯一標識 IP 網絡中的每臺設備

    每臺主機(計算機、網絡設備、外圍設備)必須具有唯一的地址

    IP 地址由兩部分組成:

        ? 網絡ID:

            ? 標識網絡

            ? 每個網段分配一個網絡ID

        ? 主機 ID:

            ? 標識單個主機

            ? 由組織分配給各設備

IPv4地址格式:點分十進制記法

blob.png

IP地址分類

    A 類:

         0 000 0000 – 0 111 1111: 1-127

         網絡數:126, 127

         每個網絡中的主機數:2^24-2

         默認子網掩碼:255.0.0.0

         私網地址:10.0.0.0

    B 類:

         10 00 0000 – 10 11 1111 :128-191

         網絡數:2^14

         每個網絡中的主機數:2^16-2

         默認子網掩碼:255.255.0.0

         私網地址: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

         私網地址:192.168.0.0-192.168.255.0

    D 類:組播

         1110 0000 – 1110 1111: 224-239

    E 類:

         240-255

公共IP地址

blob.png

私有IP地址

blob.png

特殊地址

0.0.0.0

0.0.0.0 不是一個真正意義上的IP 地址。它表示一個集合:所有不清楚的主機和目的網絡。

255.255.255.255

限制廣播地址。對本機來說,這個地址指本網段內( 同一廣播域) 的所有主機

127.0.0.1 ~127.255.255.254

本機回環地址,主要用于測試。在傳輸介質上永遠不應該出現目的地址為“127.0.0.1”的數據包

224.0.0.0 到239.255.255.255

組播地址,224.0.0.1特指所有主機,224.0.0.2特指所有路由器。224.0.0.5指OSPF路由器,地址多用于一些特定的程序以及多媒體程序

169.254.x.x

如果Windows 主機使用了DHCP自動分配IP 地址,而又無法從DHCP 服務器獲取地址,系統會為主機分配這樣地址。

有子網的子網掩碼

blob.png

子網掩碼的八位

blob.png

可變長度的子網掩碼

blob.png

劃分子網

    公式1

        主機數=2^主機位數(掩碼中0個數=32-網絡位數)-2

    公式2

        劃分子網:網絡ID位向主機ID位M借位,借N位,劃分子網2^N個,每個子網主機數2^(M-N)-2

    公式3

        網絡ID=IP地址^子網掩碼

跨網絡通信

    跨網絡通信:路由

    路由分類:

        主機路由

        網絡路由

        默認路由

動態主機配置協議DHCP

blob.png

基本網絡配置

    將Linux 主機接入到網絡,需要配置網絡相關設置。

    一般包括如下內容:

        主機名

        IP/mask  必須是唯一的

        路由:默認網關

        DNS服務器:

            主DNS 服務器

            次DNS 服務器

            第三DNS服務器

網絡配置方式

    靜態指定:

        ifcfg: ifconfig, route, netstat

        ip: object {link, addr, route}, ss, tc

        system-config-network-tui (setup)  centos6的字符工具

blob.png

        配置文件

        CentOS 7: 網絡配置工具

            nmcli, nmtui(字符工具)

blob.png

nm-connection-editor(圖形工具)  如下: 

blob.png

    動態分配

        DHCP: Dynamic Host Configuration Protocol



小實驗:更改網卡名 

1.找出更改網卡名的文件

blob.png

紅框內的文件是用來命名網卡的文

2.然后用vim編輯器改一下名字

blob.png

紅框內原來的名字是eth0,改完之后重啟下虛擬機  原網卡名和現網卡名圖:

blob.png

blob.png

但是只更改這個文件  網卡是不能用的 還要改網卡的配置文件

blob.png

而我們需要修改的文件就是紅框內的文件 vim打開它

blob.png

修改了這兩處文件  修改完之后 存盤退出  網卡就可以正常使用了

blob.png

圖形界面看一下網卡名改了  這里的名字就是由網卡配置文件里 NAME那一行來決定的

x修改網卡地址:  在vim /etc/sysconfig/network-scripts/ifcfg-eth0里修改文件  具體如下:

blob.png

添加了圖中紅方框內的五行文件   然后啟動服務:

blob.png

就完成了

而如果我們要更改mac地址需要:

blob.png

把原來的HWADDR改成MACADDR然后啟動服務后  新mac地址生效

        配置網卡必須要寫的有以下幾個參數:     其他的可有可無

blob.png

當然了  上述是靜態配置網卡

   自動分配IP地址:  只需要寫兩行

DEVICE=eth0
BOOTPROTO=dhcp

這些配置寫完 要重啟下虛擬機才能生效

靜態配置網卡 需要的參數

DEVICE=eth0

IPADDR=192.168.0.1

PREFIX=24(NETMASK=255.255.255.0)

GATEWAY=192.168.1.254

DNS1=8.8.8.8

DNS2=8.8.4.4

后面的這些地址 可以自己指定

自動分配IP地址 需要的參數

DEVICE=eth0

BOOTPROTO=dhcp



 如果你的電腦需要在靜態、自動獲取IP之間轉換的話 可以再網絡里設置

blob.png

在IPv4屬性里備用配置設置一下用戶配置

blob.png



設備別名

    為每個設備別名生成獨立的接口配置文件

        ? 關閉NetworkManager 服務 service NetworkManager stop(臨時關閉,下次開機自動啟動);chkconfig NetworkManager off(永久關閉 開機不啟動)

        ? ifcfg-ethX:xxx

        ? 必須使用靜態聯網

            DEVICE=eth0:0

            IPADDR=10.10.10.10

            NETMASK=255.0.0.0

            ONPARENT=yes

    注意:service network restart 生效

    參考/usr/share/doc/initscripts-*/sysconfig.txt

網絡接口配置-bonding

    Bonding

        就是將多塊網卡綁定同一IP 地址對外提供服務,可以實現高可用或者負載均衡。當然,直接給兩塊網卡設置同一IP 地址是不可能的。通過bonding ,虛擬一塊網卡對外提供連接,物理網卡的被修改為相同的MAC地址

bonding的工作模式

    ·Mode 0 (balance-rr)

        輪轉(Round-robin)策略:從頭到尾順序的在每一個slave接口上面發送數據包。本模式提供負載均衡和容錯的能力

    ·Mode 1 (active-backup)

        活動- 備份(主備)策略:在綁定中,只有一個slave 被激活。當且僅當活動的slave 接口失敗時才會激活其他slave 。為了避免交換機發生混亂此時綁定的MAC 地址只有一個外部端口上可見

    ·Mode 3 (broadcast)

        廣播策略:在所有的slave 接口上傳送所有的報文。本模式提供容錯能力

bonding的配置

    創建bonding 設備的配置文件

        /etc/sysconfig/network-scripts/ifcfg-bond0

            DEVICE=bond0

            BOOTPROTO=none

            BONDING_OPTS= “miimon=100(ms) mode=0”

blob.png

        /etc/sysconfig/network-scripts/ifcfg-eth0

            DEVICE=eth0

            BOOTPROTO=none

            MASTER=bond0

            SLAVE=yes

            USERCTL=no網絡管理之配置文件及一些命令的應用

                               blob.png

    miimon 是用來進行鏈路監測的。如果miimon=100 ,那么系統每100ms 監測一次鏈路連接狀態,如果有一條線路不通就轉入另一條線路

    ? 查看bond0 狀態:/proc/net/bonding/bond

blob.png

            當前活動的網卡為eth0 為mode1模式

    ? 關于bonding 的詳細配置請參照

        /usr/share/doc/kernel-doc-

        version/Documentation/networking/bonding.txt

配置bond服務的一些命令

cd /etc/sysconfig/network-scripts
vi ifcfg-bond0
DEVICE=bond0
IPADDR=10.100.100.100
PREFIX=16
BONDING_OPTS="miimon=100 mode=1"
vi ifcfg-eth0
DEVICE=eth0
MASTER=bond0
SLAVE=yes
vi ifcfg-eth1
DEVICE=eth1
MASTER=bond0
SLAVE=yes



網卡名稱

     網絡接口識別并命名相關的udev 配置文件:

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

    查看網卡:

        dmesg |grep –i eth

        ethtool -i eth0

blob.png

    卸載網卡驅動:

        modprobe -r e1000

        rmmod e1000

    裝載網卡驅動:

        modprobe e1000

網卡別名

    對虛擬主機有用

    將多個IP 地址綁定到一個NIC上

        eth0:1 、eth0:2、 、 eth0:3

    ifconfig 命令:

        ifconfig eth0:0 192.168.1.100/24 up

             定義了一個網卡別名  如圖:

blob.png

如果把命令中的“:”去掉  會暫時把網卡地址更改

        ifconfig eth0:0 down刪除網卡

    ip 命令

       配置Linux的網絡屬性

        ip addr add 172.16.1.2/16 dev eth0

        ip addr add 172.16.1.1/16 dev eth0 label eth0:0

        ip addr add 172.16.1.2/16 dev eth0 label eth0:0

        ip addr del 172.16.1.1/16 dev eth0 label eth0:0

        ip addr flush dev eth0 label eth0:0


        ip – show / manipulate routing, devices, policy routingand tunnels

        ip [ OPTIONS ] OBJECT { COMMAND | help }OBJECT := { link | addr | route }

        ip link – network device configuration  查看網卡屬性

blob.png

            set dev IFACE

              可設置屬性:

                up and down :激活或禁用指定接口

                ifup/ifdown

            show [dev IFACE] :指定接口

                 [up]僅顯示處于激活狀態的接口

        ip addr { add | del } IFADDR dev STRING  添加/刪除IP地址  可以添加多個地址

blob.png

                [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 – 使用格式同show

        ip addr add 172.16.100.100/16 dev eth0 label eth0:0  在eth0上添加IP地址 名字為eth0:0

        ip addr del 172.16.100.100/16 dev eth0 label eth0:0  刪除eth0:0的IP地址

        ip addr flush dev eth0 label eth0:0  把eth0上的IP地址全部清空

blob.png

網絡配置文件

    IP 、MASK 、GW 、DNS 相關配置文件:

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

    路由相關的配置文件:

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

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

        說明參考/usr/share/doc/initscripts-9.49.30/sysconfig.txt

            DEVICE :此配置文件應用到的設備

            HWADDR :對應的設備的MAC 地址

            BOOTPROTO :激活此設備時使用的地址配置協議,常用的dhcp, static, none, bootp

            NM_CONTROLLED :NM 是NetworkManager 的簡寫,此網卡是否接受NM 控制;建議CentOS6 為“no”

    ONBOOT :在系統引導時是否激活此設備

    TYPE :接口類型;常見有的Ethernet, Bridge

    UUID :設備的惟一標識

    IPADDR :指明IP 地址

    NETMASK :子網掩碼

    GATEWAY: 默認網關

    DNS1 :第一個DNS 服務器指向

    DNS2 :第二個DNS 服務器指向

    USERCTL :普通用戶是否可控制此設備

    PEERDNS :如果BOOTPROTO 的值為“dhcp” ,是否允許dhcp server 分配的dns 服務器指向信息直接覆蓋至/etc/resolv.conf

dns名字解析

    /etc/resolv.conf

        nameserver DNS_SERVER_IP1

        nameserver DNS_SERVER_IP2

        nameserver DNS_SERVER_IP3

blob.png

    /etc/nsswitch.conf

        與/etc/hosts 相比優先于DNS

    正解:FQDN–>IP

          # dig -t A FQDN

          # host -t A FQDN

    反解:IP–>FQDN

          # dig -x IP

          # host -t PTR IP

  netstat命令和ss命令的用法和區別

netstat命令 ss命令

  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

    顯示路由表:

        netstat {–route|-r} [–numeric|-n]

            -r: 顯示內核路由表

            -n: 數字格式

    顯示接口統計數據:

        netstat {–interfaces|-I|-i} [iface] [–all|-a] [–extend|-e] [–program|-p] [–numeric|-n]

            # netstat -i

            # netstat –I=IFACE

            # ifconfig -s eno16777736

這個命令是比較早的命令  現在用的很少

格式:ss [OPTION]… [FILTER]

netstat 通過遍歷proc 來獲取socket 信息, ,ss 使用netlink 與內核tcp_diag模塊通信獲取socket 信息。

選項:

    -t: tcp 協議相關

    -u: udp 協議相關

    -w: 裸套接字相關

    -x :unix sock 相關

    -l: listen 狀態的連接

    -a: 所有

    -n: 數字格式

    -p: 相關的程序及PID

    -e: 擴展的信息

    -m :內存用量

    -o :計時器信息

常用組合:

      -tan, -tanl, -tanlp, -uan

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 )’

常見用法:

     ss -l 顯示本地打開的所有端口

     ss -pl 顯示每個進程具體打開的socket

     ss -t -a 顯示所有tcp socket

     ss -u -a 顯示所有的UDP Socekt

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

     ss -o state established '( dport = :http or sport =:http)' 顯示所有已建立的HTTP 連接

     ss -s 列出當前socket詳細信息

route命令:路由管理命令

    查看:route -n

    添加:route add

          route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]

    目標:192.168.1.3 網關:172.16.0.1

        # route add -host 192.168.1.3 gw 172.16.0.1 dev eth0

    目標:192.168.0.0 網關:172.16.0.1

        # route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0

        # route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0

    默認路由,網關:172.16.0.1

        # route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1

        # route add default gw 172.16.0.1

    刪除:route del

        route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]

    目標:192.168.1.3 網關:172.16.0.1

        # route del -host 192.168.1.3

    目標:192.168.0.0 網關:172.16.0.1

        # route del -net 192.168.0.0 netmask 255.255.255.0

    默認路由,網關:172.16.0.1

        # route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1

        # route add default gw 172.16.0.1

    刪除:route del

        route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]

    目標:192.168.1.3 網關:172.16.0.1

        # route del -host 192.168.1.3

    目標:192.168.0.0 網關:172.16.0.1

        # route del -net 192.168.0.0 netmask 255.255.255.0

  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 192.168.0.0/24 via 172.16.0.1

            ip route add 192.168.1.13 via 172.16.0.1

        添加網關:ip route add default via GW dev IFACE

           ip route add default via 172.16.0.1

     刪除路由:ip route delete

               ip route del TARGET

     顯示路由:ip route show|list

     清空路由表:ip route flush [dev IFACE] [via PREFIX]

                 ip route flush dev eth0

原創文章,作者:舊城以西,如若轉載,請注明出處:http://www.www58058.com/44492

(0)
舊城以西舊城以西
上一篇 2016-09-22
下一篇 2016-09-22

相關推薦

  • 初學Linux之程序進程管理工具匯總

    pstree, ps, pidof, pgrep, top, htop, glances, pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup ?

    2017-12-16
  • LVM: Logical Volume Manager 邏輯卷管理

      一、LVM介紹         LVM: Logical Volume Manager, Version: 2             …

    Linux干貨 2016-09-19
  • tcp通訊的服務器和客戶端解析

    服務器端編程步驟, 1.創建Socket對象,下文中的socket都表示一個socket對象 2.綁定IP地址和端口,服務器的IP和端口 3.開始監聽,將在指定的端口上監聽,listen() 如果對方申請連接這個IP和端口,將被聽到,這個過程 4.獲取用于傳輸數據的Socket對象 socket.accept() ->(socket object,ad…

    Linux干貨 2018-01-01
  • mysql主從架構/模式

    MySQL Replication: Master/Slave Master: write/read Slaves: read 為什么? 冗余:promte(提升為主),異地災備 人工 工具程序 負載均衡:轉移一部分“讀”請求; 支援安全的備份操作: … 主/從架構: 異步復制:master只需要完成自己的數據庫操作即可。至于slaves是否收到…

    2016-11-27
  • LNAMP Shell 部署腳本

    LNAMP Shell 部署腳本 學習總結: 這個腳本,早期是出于對個人學習Shell的總結而寫,應該有些年頭了,目前也在一邊學馬哥視頻的基礎上陸續完善,10月初才完成LNAMP環境的分離式部署,并減少整個Shell腳本各部分的依賴關系。 我是網絡班13期高級班的學員,因個人做了幾年Linux運維,所以目前整個高級班的課程,我是跳著看了集群(LVS + Ke…

    Linux干貨 2015-10-27
  • 第三周作業

    1. 列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次則顯示一次即可。 who | cut -d' ' -f1 | sort -u 2. 取出最后登錄當前系統的用戶的相關信息 grep  "$(who …

    Linux干貨 2016-12-19
欧美性久久久久