【发布时间】:2022-06-17 23:59:25
【问题描述】:
我在 AWS EC2 中有一个 Ubuntu 18.04 服务器,运行 Docker。
我想为每个 Docker 容器使用单独的网卡,因为其中的应用程序需要使用相同的端口 (5003)。
我通过 EC2 控制台向服务器添加了一些私有 IP,并将每个 IP 连接到一个弹性 IP(即公共 IP)。所有人都使用相同的安全组(端口配置)。
然后我使用 SHH 为一些 VLAN 创建了一个 yaml 配置文件:
network:
version: 2
renderer: networkd
vlans:
vlan10:
id: 10
link: eth0
addresses: [ "172.31.40.22/16" ]
vlan20:
id: 20
link: eth0
addresses: [ "172.31.40.23/16" ]
vlan30:
id: 30
link: eth0
addresses: [ "172.31.40.24/16" ]
...并运行 sudo netplan --debug apply 将其与接口 (eth0) 的配置文件合并:
# 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:
ethernets:
eth0:
dhcp4: true
dhcp6: false
match:
macaddress: 0a:c5:f8:3a:a4:28
set-name: eth0
version: 2
制作:
DEBUG:Merged config:
network:
ethernets:
eth0:
dhcp4: true
dhcp6: false
match:
macaddress: 0a:c5:f8:3a:a4:28
set-name: eth0
renderer: networkd
version: 2
vlans:
vlan10:
addresses:
- 172.31.40.22/16
id: 10
link: eth0
vlan20:
addresses:
- 172.31.40.23/16
id: 20
link: eth0
vlan30:
addresses:
- 172.31.40.24/16
id: 30
link: eth0
当我运行 IP add 时,所有 VLAN 都会显示出来
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 9001 qdisc mq state UP group default qlen 1000
link/ether 0a:c5:f8:3a:a4:28 brd ff:ff:ff:ff:ff:ff
inet 172.31.40.21/20 brd 172.31.47.255 scope global dynamic eth0
valid_lft 2317sec preferred_lft 2317sec
inet6 fe80::8c5:f8ff:fe3a:a428/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:5d:6a:d5:15 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
4: vlan20@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 0a:c5:f8:3a:a4:28 brd ff:ff:ff:ff:ff:ff
inet 172.31.40.23/20 brd 172.31.47.255 scope global vlan20
valid_lft forever preferred_lft forever
inet6 fe80::8c5:f8ff:fe3a:a428/64 scope link
valid_lft forever preferred_lft forever
5: vlan30@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 0a:c5:f8:3a:a4:28 brd ff:ff:ff:ff:ff:ff
inet 172.31.40.24/20 brd 172.31.47.255 scope global vlan30
valid_lft forever preferred_lft forever
inet6 fe80::8c5:f8ff:fe3a:a428/64 scope link
valid_lft forever preferred_lft forever
6: vlan10@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 0a:c5:f8:3a:a4:28 brd ff:ff:ff:ff:ff:ff
inet 172.31.40.22/20 brd 172.31.47.255 scope global vlan10
valid_lft forever preferred_lft forever
inet6 fe80::8c5:f8ff:fe3a:a428/64 scope link
valid_lft forever preferred_lft forever
我的问题是 eth0 可以愉快地 ping 一个互联网地址,但 VLAN 不能 ping 任何东西(不是互联网地址,不是 eth0,也不是彼此)。
谁能帮我解决我错过的问题?我需要指定默认值吗 网关?我是否严重误解了 VLAN?
【问题讨论】:
标签: amazon-web-services amazon-ec2 ubuntu-18.04 vlan netplan