天天看點

Ubuntu18.04 網絡配置介紹和Ubuntu16.04版本相比的變化:netplan是什麼?netplan的工作方式如何使用netplan

從Ubuntu 18.04.2版本開始,系統的網絡配置改成了新的 netplan.io 方式,棄用了之前使用的 ifupdown 方式。是以網絡配置檔案和配置方式和之前不同,本文介紹新的配置方式如何使用及與之前的差別。

注:ifupdown 就是用這個腳本 /etc/init.d/networking、systemctl start networking.service 啟動網絡服務的方式。           

和Ubuntu16.04版本相比的變化:

  • DNS解析設定改成了  systemd-resolved,不是在原先的配置檔案 /etc/resolv.conf 設定了。
  • Ubuntu 18.04預設情況下不再安裝ifupdown,是以指令ifup和ifdown也不可用。可以使用ip指令來實作類似的功能,ip link set$device up 和 ip link set$device down。
  • 之前Ubuntu16.04版本裡的網卡配置檔案 /etc/network/interfaces  不起作用了,改成了netplan方式。
  • 如果新的 netplan 目前不能滿足使用者的網絡使用需求,ifupdown 軟體包仍然可以在Ubuntu 中使用和支援。

    ifupdown安裝指令:apt install ifupdown 

netplan是什麼?

netplan官網說它是一個在Linux系統中簡單友善配置網絡的程式,使用YAML格式的檔案進行配置。

YAML是什麼?傳送門

https://www.runoob.com/w3cnote/yaml-intro.html

netplan的工作方式

netplan 從配置檔案 /etc/netplan/*.yaml 讀取網絡配置,啟動後netplan在 /run 目錄中生成特定網卡名稱字尾的配置檔案,然後将網卡裝置的控制權移交給特定的網絡守護程式。

netplan 目前支援以下兩種服務

NetworkManager

Systemd-networkd

Ubuntu18.04 網絡配置介紹和Ubuntu16.04版本相比的變化:netplan是什麼?netplan的工作方式如何使用netplan

ubuntu18.04系統裡檢視網卡用netplan配置的資訊

root@ubuntu18:~# networkctl status eth0
● 2: eth0
       Link File: /lib/systemd/network/99-default.link
    Network File: /run/systemd/network/10-netplan-eth0.network
            Type: ether
           State: routable (configuring)
            Path: pci-0000:00:05.0
          Driver: virtio_net
          Vendor: Red Hat, Inc.
           Model: Virtio network device
      HW Address: 00:16:3e:2c:b5:e7 (Xensource, Inc.)
         Address: 172.17.161.4
         Gateway: 172.17.175.253
             DNS: 100.100.2.136
                  100.100.2.138           

如何使用netplan

配置檔案:/etc/netplan/*.yaml

指令:netplan apply

每個網卡都需要在 /etc/netplan 目錄中設定配置檔案,在配置中指定網卡ip資訊,使用DHCP或者靜态ip方式。

/etc/netplan/ 目錄下的配置檔案,擴充名為.yaml(例如 /etc/netplan/config.yaml),然後運作 netplan apply 此指令分析配置資訊并将其應用生效。

配置檔案示例:

#網卡eth0使用dhcp方式配置ip網絡,配置如下。yaml配置是用空格作為縮進對齊,不能使用tab鍵。
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: yes
      dhcp6: no

#網卡eth0使用靜态ip方式,用關鍵字addresses指定ip位址和子網路遮罩(支援ipv4和ivp6),gateway4指定網關ip,nameservers 指定DNS。
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses:
        - 10.10.10.2/24
      gateway4: 10.10.10.1
      nameservers:
          search: [mydomain, otherdomain]
          addresses: [10.10.10.1, 1.1.1.1]           

配置檔案裡的關鍵字說明:

renderer:指定後端網絡服務,支援networkd(Systemd-networkd) 和 NetworkManager兩種,預設是networkd。

ethernets:指定是以太網配置,其他的還包括 wifis 或者 bridges

eth0:以太網網卡名稱

dhcp4:開啟使用ipv4的DHCP,預設是關閉。

dhcp6:開啟使用ipv6的DHCP,預設是關閉。

addresses:對應網卡配置的靜态ip位址,是ip/掩碼的格式,支援ipv6位址,例如 addresses: [192.168.14.2/24, "2001:1::1/64"]

gateway4, gateway6:指定IPv4/6預設網關,使用靜态ip配置時使用。例如IPv4: gateway4: 172.16.0.1 例如IPv6: gateway6: "2001:4::1"

nameservers:設定DNS伺服器和搜尋域。有兩個受支援的字段:addresses:是DNS位址清單,search:是搜尋域清單,沒有特殊需要可以不配置search這項。

更多配置項可以參考netplan.io文檔

https://netplan.io/reference#properties-for-device-type-ethernets

後續文章:

為ECS Ubuntu 18.04執行個體配置輔助私網IP位址

參考資料:

https://wiki.ubuntu.com/BionicBeaver/ReleaseNotes?_ga=2.95559772.1903006392.1581236894-1245037056.1581236894 https://netplan.io

繼續閱讀