一、netplan介紹
- ubuntu從17.10開始,已放棄在/etc/network/interfaces裏固定IP的配置,而是改成netplan方式。Netplan 使用 YAML 描述文件來配置網絡接口,然後,通過這些描述爲任何給定的呈現工具生成必要的配置選項。
- 工作原理:Netplan 從 /etc/netplan/*.yaml 讀取配置,配置可以是管理員或者系統安裝人員配置; 也可以是雲鏡像或者其他操作系統部署設施自動生成。 在系統啓動階段早期, Netplan 在 /run 目錄生成好配置文件並將設備控制權交給相關後臺程序。
二、netplan配置參數解析
network:
Version: 2
Renderer: networkd
ethernets:
DEVICE_NAME:
Dhcp4: yes/no
Addresses: [IP/NETMASK]
Gateway: GATEWAY
Nameservers:
Addresses: [NAMESERVER, NAMESERVER]
- DEVICE_NAME 是需要配置設備的實際名稱。
- Dhcp4: yes / no 代表IPv4是否啓用 dhcp 對應的IPv6 就是Dhcp6:yes / no
- Addresses 是設備的 IP 地址。
- NETMASK 是 IP 地址的掩碼。
- GATEWAY 是網關的地址。
- NAMESERVER 是由逗號分開的 DNS 服務器列表。
三、生成netplan配置和查看網絡配置
sudo netplan generate
ip a
ifconfig -a
四、網卡添加私有ip地址
- aws後臺網卡分配私有ip地址
- 配置50-cloud-init.yaml,添加私有ip地址
- 執行netplan命令,讓配置生效
sudo netplan try # 如果沒問題,可以繼續往下應用
sudo netplan apply
五、配置網絡接口
- aws後臺添加網卡
- 查看網絡配置,服務器已識別到新建網絡接口,未綁定ip地址
- ens6網卡增加cat /etc/netplan/51-ens6.ymal配置
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
version: 2
ethernets:
ens6:
dhcp4: no
addresses:
- 172.31.12.14/20
- 172.31.14.255/20
match:
macaddress: 06:6f:a4:b6:8d:58
set-name: ens6
routes:
- to: 0.0.0.0/0
via: 172.31.0.1
table: 1000
- to: 172.31.12.14
via: 0.0.0.0
scope: link
table: 1000
- to: 172.31.14.255
via: 0.0.0.0
scope: link
table: 1000
routing-policy:
- from: 172.31.12.14
table: 1000
- from: 172.31.14.255
- 執行netplan命令更新網絡配置
sudo netplan try # 如果沒問題,可以繼續往下應用
sudo netplan apply
六、檢查網卡
- 網卡增加aws彈性ip地址
- 查看ip規則和ip table
- 測試使用網卡ping,彈性ip可以拼得通,但是內網ip拼不同(奇怪)
七、參考
- 如何讓我的輔助網絡接口在我的 Ubuntu EC2 實例中工作?
- How can I make my secondary network interface work in my Ubuntu EC2 instance? YouTube視頻
- AWS Private IP’s on Ubuntu 18.04 with Netplan
- Set up your Secondary Network Interface for Ubuntu 18.04
- https://askubuntu.com/questions/1047671/ami-based-on-ubuntu-18-04-aws-image-does-not-have-network-interface
- http://fixyacloud.com/adding-second-network-interface-to-ubuntu-18-04-on-aws-ec2/
- How to set up two default routes in linux
- Ubuntu18.04下雙網卡內外網設置
- https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html#Route_Replacing_Main_Table
- netplan工作原理