天天看點

Linux 網絡管理介紹

  • centos6傳統命名規則:
    • 以太網:ethX, [0,oo),例如eth0, eth1, .....數字預設從0開始,1表示第二塊網卡
    • PPP網絡:pppX, [0,...], 例如,ppp0, ppp1, ...
  • centos7可預測命名:
    1. 如果Firmware或BIOS為主機闆上內建的裝置提供的索引資訊可用,則根據此索引進行命名,如eno1, eno2, ...
    2. 如果Firmware或BIOS為PCI-E擴充槽所提供的索引資訊可用,且可預測,則根據此索引進行命名,如ens1, ens2, ...
    3. 如果硬體接口的實體位置資訊可用,則根據此資訊命名,如enp2s0, ...
    4. 如果使用者顯式定義,也可根據MAC位址命名,例如enx122161ab2e10, ...
      • 命名格式的組成:
      • en:ethernet 以太網
      • wl:wlan 無線區域網路
      • ww:wwan 無線廣域網
      • 名稱類型:
      • o:內建裝置的裝置索引号;
      • s:擴充槽的索引号;
      • x s:基于MAC位址的命名;
      • p s:PCI擴充總線;

ifconfig系列介紹

ifconfig是linux中用于顯示或配置網絡裝置(網絡接口卡)的指令,英文全稱是network interfaces configuring。

參數說明:

add<位址> 設定網絡裝置IPv6的IP位址。

del<位址> 删除網絡裝置IPv6的IP位址。

down 關閉指定的網絡裝置。

<hw<網絡裝置類型><硬體位址> 設定網絡裝置的類型與硬體位址。

io_addr<I/O位址> 設定網絡裝置的I/O位址。

irq<IRQ位址> 設定網絡裝置的IRQ。

media<網絡媒介類型> 設定網絡裝置的媒介類型。

mem_start<記憶體位址> 設定網絡裝置在主記憶體所占用的起始位址。

metric<數目> 指定在計算資料包的轉送次數時,所要加上的數目。

mtu<位元組> 設定網絡裝置的MTU。

netmask<子網路遮罩> 設定網絡裝置的子網路遮罩。

tunnel<位址> 建立IPv4與IPv6之間的隧道通信位址。

up 啟動指定的網絡裝置。

-broadcast<位址> 将要送往指定位址的資料包當成廣播資料包來處理。

-pointopoint<位址> 與指定位址的網絡裝置建立直接連線,此模式具有保密功能。

-promisc 關閉或啟動指定網絡裝置的promiscuous模式。

[IP位址] 指定網絡裝置的IP位址。

[網絡裝置] 指定網絡裝置的名稱。

1、擷取幫助

[root@localhost ~]# man ifconfig           

2、顯示配置資訊

[root@localhost ~]# ifconfig -a
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500       
                   開啟,支援廣播,運作,多點傳播多點傳播,每幀最大1500位元組
        inet 192.168.1.102  netmask 255.255.255.0  broadcast 192.168.1.255
                    ip       子網路遮罩                        廣播位址
        inet6 fe80::f1e9:399f:8eb3:d324  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:58:d6:d7  txqueuelen 1000  (Ethernet)
                       mac位址       穿出隊列長度
        RX packets 247849  bytes 87577060 (83.5 MiB)
        這次網卡激活後接收到的封包數量   大小
        RX errors 0  dropped 0  overruns 0  frame 0
        錯誤數量      丢包         溢出     
        TX packets 83818  bytes 22088307 (21.0 MiB)
        穿出   包個數            大小
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        穿出錯誤        丢包

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 220  bytes 16382 (15.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 220  bytes 16382 (15.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0           

3、配置

啟用

[root@localhost ~]# ifconfig ens33 192.168.1.103/24 up
[root@localhost ~]# ifconfig ens34 192.168.1.103 netmask 255.255.255.0  up
           

停用

[root@localhost ~]# ifconfig ens33 192.168.1.103/24 down
[root@localhost ~]# ifconfig ens34 192.168.1.103 netmask 255.255.255.0  down

[root@node1 ~]# ifconfig ens34 0  #删除ip資訊           

4、 特性開始關閉 以混雜模式為例

#開啟
[root@localhost ~]# ifconfig ens33 promisc
#關閉
[root@localhost ~]# ifconfig ens33 -promisc
           

route配置

1、檢視  -n  以數字方式顯示,預設會反解路由,顯示主機名等   

[root@localhost network-scripts]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags       Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG          100    0        0 ens33
到達任意位址用192.168.1.1這個網關轉發 

192.168.1.0     0.0.0.0         255.255.255.0   U         100    0        0 ens33
到達192.168.1.0這個段的網絡,用ip與255.255.255.0子網路遮罩做運算              

參數說明

Destination:目标網絡或者目标主機
Gateway:網關或者*不設定
Genmask:Destination的子網路遮罩,主機用255.255.255.255 ,預設路由0.0.0.0
Flags:
    U:路由啟用
    H:主機路由
    G:用網關
    R:回複動态路由
    D:守護程序或者重定向 動态加載
    M: 守護程序或者重定向 修改
    A:installed by addrconf
    C:緩存
    !:拒絕路由
Metric:與目标的距離(通常以跳數計算)
Ref:非核心引用這條路由次數
Use:路由查詢計數
Iface:發送接口           

2、添加路由

[root@localhost ~]# route add -net 172.16.86.0/24 gw 192.168.1.101 dev ens33
[root@localhost ~]# route add -net 0.0.0.0/0  gw 192.168.1.1 dev ens33
[root@localhost ~]# route add -net default  gw 192.168.1.1 dev ens33           

3、删除  centos7 預設網關,無法添加回來,需要重新開機網絡,centos6則可以添加回來

[root@localhost ~]# route del -net 0.0.0.0/0           

netstat網絡狀态工具

常用參數說明

-a或--all 顯示所有連線中的Socket。

-A<網絡類型>或--<網絡類型> 列出該網絡類型連線中的相關位址。

-c或--continuous 持續列出網絡狀态。

-C或--cache 顯示路由器配置的快取資訊。

-e或--extend 顯示網絡其他相關資訊。

-F或--fib 顯示FIB。

-g或--groups 顯示多重廣播功能群組組員名單。

-h或--help 線上幫助。

-i或--interfaces 顯示網絡界面資訊表單。

-l或--listening 顯示監控中的伺服器的Socket。

-M或--masquerade 顯示僞裝的網絡連線。

-n或--numeric 直接使用IP位址,而不通過域名伺服器。

-N或--netlink或--symbolic 顯示網絡硬體外圍裝置的符号連接配接名稱。

-o或--timers 顯示計時器。

-p或--programs 顯示正在使用Socket的程式識别碼和程式名稱。

-r或--route 顯示Routing Table。

-s或--statistice 顯示網絡工作資訊統計表。

-t或--tcp 顯示TCP傳輸協定的連線狀況。

-u或--udp 顯示UDP傳輸協定的連線狀況。

-v或--verbose 顯示指令執行過程。

-V或--version 顯示版本資訊。

-w或--raw 顯示RAW傳輸協定的連線狀況。

-x或--unix 此參數的效果和指定"-A unix"參數相同。

--ip或--inet 此參數的效果和指定"-A inet"參數相同。

常用組合

[root@node1 network-scripts]# netstat -antup
Active Internet connections (servers and established)
Proto(協定)  Recv-Q(接收隊列)  Send-Q(發送隊列)  Local Address(表示本地IP位址)               Foreign Address (遠端IP位址)            State(狀态)       PID/Program name(程序号/名稱)
tcp              0                               0                           0.0.0.0:22                                                       0.0.0.0:*                                                   LISTEN                 1060/sshd
           

上述狀态說明

LISTEN:監聽

ESTABLISEHD:建立的連接配接

FIN_WAIT_1: 用戶端斷開

FIN_WAIT_2:服務端斷開

SYN_SENT:同步發送信号

SYN_RECV:同步接收信号

CLOSED:結束

ip系列網絡配置

link(裝置屬性管理)

1、顯示裝置資訊

[root@node1 ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
            廣播       多點傳播                             隊列  先進先出                           隊列長度
    link/ether 00:0c:29:58:d6:d7 brd ff:ff:ff:ff:ff:ff           

2、開啟關閉【裝置|屬性】

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,用于将接口移動到指定的網絡名稱空間;

[root@node1 ~]# ip link set  dev ens34 up   #down           

命名空間選項

#命名空間
[root@node1 ~]# ip netns help
Usage: ip netns list
       ip netns add NAME
       ip netns set NAME NETNSID
       ip [-all] netns delete [NAME]
       ip netns identify [PID]
       ip netns pids NAME
       ip [-all] netns exec [NAME] cmd ...
       ip netns monitor
       ip netns list-id

#添加命名空間
[root@node1 ~]# ip netns add mynet
[root@node1 ~]# ip netns list
mynet

#把ens34 裝置移動到mynet的空間下
[root@node1 ~]# ip link set ens34 netns mynet

[root@node1 ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:58:d6:d7 brd ff:ff:ff:ff:ff:ff

#在mynet空間下檢視
[root@node1 ~]# ip netns exec mynet ip link show
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN mode DEFAULT qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
3: ens34: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
    link/ether 00:0c:29:58:d6:e1 brd ff:ff:ff:ff:ff:ff

#删除命名空間,裡面的裝置釋放到最外層
[root@node1 ~]# ip netns del mynet
[root@node1 ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:58:d6:d7 brd ff:ff:ff:ff:ff:ff
3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:58:d6:e1 brd ff:ff:ff:ff:ff:ff           

addr(協定位址管理)

1、顯示

[root@node1 ~]# ip addr show  #list           

2、添加

[root@node1 ~]# ifconfig ens34 0
[root@node1 ~]# ip addr add 172.16.86.131/24 dev ens34
[root@node1 ~]# ip addr show ens34
3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:58:d6:e1 brd ff:ff:ff:ff:ff:ff
    inet 172.16.86.131/24 scope global ens34
       valid_lft forever preferred_lft forever
    inet6 fe80::f6c5:56ff:bace:e204/64 scope link
       valid_lft forever preferred_lft forever

#在添加一個
[root@node1 ~]# ip addr add 172.16.86.132/24 dev ens34
[root@node1 ~]# ip addr show ens34
3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:58:d6:e1 brd ff:ff:ff:ff:ff:ff
    inet 172.16.86.131/24 scope global ens34
       valid_lft forever preferred_lft forever
    inet 172.16.86.132/24 scope global secondary ens34
       valid_lft forever preferred_lft forever
    inet6 fe80::f6c5:56ff:bace:e204/64 scope link
       valid_lft forever preferred_lft forever

#以上2個添加用ifconfig顯示隻能看到第一個  添加label可以讓ifconfig也顯示
[root@node1 ~]# ip addr  add 172.16.86.133/24 dev ens34 label ens34:1
[root@node1 ~]# ifconfig
ens34:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.86.133  netmask 255.255.255.0  broadcast 0.0.0.0
        ether 00:0c:29:58:d6:e1  txqueuelen 1000  (Ethernet)
......           

3、删除

[root@node1 ~]# ip addr  del  172.16.86.133/24 dev ens34           

4、清空

[root@node1 ~]# ip addr flush dev ens34

3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:58:d6:e1 brd ff:ff:ff:ff:ff:ff           

ip route配置

1、路由添加

ip route add - add new route
ip route change - change route
ip route replace - change or add new one

[root@node1 ~]# ip route add  172.16.86.0/24 via 172.16.86.132 dev ens34

[root@node1 ~]# ip route add  172.16.86.0/24 via 172.16.86.132  dev ens34 src 172.16.86.133
[root@node1 ~]# ip route list
172.16.86.0/24 via 172.16.86.132 dev ens34 src 172.16.86.133
到達172.16.86.0/24這個網段的位址 是由本機ens34上面的172.16.86.133這個網卡出去 下一跳是172.16.86.132

[root@node1 ~]# ip route add  172.16.86.0/24 via 192.168.1.103  dev ens33 src 192.168.1.102           

2、删除

[root@node1 ~]# ip route delete  172.16.86.0/24

[root@node1 ~]# ip route delete  172.16.86.0/24 dev ens34

#清空
[root@node1 ~]# ip route flush dev ens34           

3、展示

[root@node1 ~]# ip route show
default via 192.168.1.1 dev ens33 proto static metric 100
default via 172.16.86.2 dev ens34 proto static metric 101
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.102 metric 100

[root@node1 ~]# ip route get 192.168.1.0/24
broadcast 192.168.1.0 dev ens33 src 192.168.1.102
    cache <local,brd>           

ss網絡狀态工具

-h:顯示幫助資訊;

-V:顯示指令版本資訊;

-n:不解析服務名稱,以數字方式顯示;

-a:顯示所有的套接字;

-l:顯示處于監聽狀态的套接字;

-o:顯示計時器資訊;

-m:顯示套接字的記憶體使用情況;

-p:顯示使用套接字的程序資訊;

-i:顯示内部的TCP資訊;

-4:隻顯示ipv4的套接字;

-6:隻顯示ipv6的套接字;

-t:隻顯示tcp套接字;

-u:隻顯示udp套接字;

-d:隻顯示DCCP套接字;

-w:僅顯示RAW套接字;

-x:僅顯示UNIX域套接字。

相比netstat強大之處,多了條件過濾功能

[root@node1 network-scripts]# ss   -tuanp    '(  dport = :22 or sport = :22  )'           

以上均屬于臨時配置

網卡的配置檔案:/etc/sysconfig/network-scripts/ifcfg-ethX。設定ip位址、子網路遮罩、預設網關等。

TYPE=Ethernet    #接口類型,常見的有Ethernet, Bridge;
BOOTPROTO=static   #激活此接口時使用什麼協定來配置接口屬性,常用的有dhcp、bootp、static、none;
IPADDR=192.168.1.102 
DNS1=8.8.8.8     #最多指定3個,防止主機跟dns服務連接配接不上時候備用
DNS2=114.114.114.114
GATEWAY=192.168.1.1  #網關
NETMASK=255.255.255.0  #子網路遮罩;CentOS 7支援使用PREFIX以長度方式指明子網路遮罩; PREFIX=24
IPV4_FAILURE_FATAL=no
IPV6INIT=no  #是否初始化IPv6;
NAME=ens33
UUID=c17bccf7-ae71-4e7c-8022-5196ebbf771e   #裝置唯一碼
DEVICE=ens33    #跟檔案名ifcfg-ens33必須保持一緻
ONBOOT=no       #在系統引導過程中,是否激活此接口;           

dns指定配置檔案

[root@node1 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain zander.com
nameserver 172.16.86.2
nameserver 8.8.8.8
nameserver 114.114.114.114           

配置附加網絡 /etc/sysconfig/network-scripts/ifcfg-ensX:Y

[root@node1 network-scripts]# cat ifcfg-ens33:0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.1.106
NETMASK=255.255.255.0
NAME=ens33:0
DEVICE=ens33:0
ONBOOT=yes

[root@node1 network-scripts]# ifconfig
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.106  netmask 255.255.255.0  broadcast 192.168.1.255
        ether 00:0c:29:58:d6:d7  txqueuelen 1000  (Ethernet)           
[root@node1 network-scripts]# cat /etc/sysconfig/network-scripts/route-ens33
172.16.86.0/24 via 192.168.1.103 
# 到達172.16.86.0這個網絡段 由dev ens33這個網卡出去  下一跳是192.168.1.103           

繼續閱讀