配置网络接口
使用 ros config
,您可以配置特定的接口。支持通配符,因此eth*将与eth1和匹配eth2。您可以配置的可用选项为 address,gateway,mtu,和dhcp。
$ sudo ros config set rancher.network.interfaces.eth1.address 172.68.1.100/24
$ sudo ros config set rancher.network.interfaces.eth1.gateway 172.68.1.1
$ sudo ros config set rancher.network.interfaces.eth1.mtu 1500
$ sudo ros config set rancher.network.interfaces.eth1.dhcp false
如果要通过云配置文件配置接口,则需要将接口配置放在rancher密钥中。
#cloud-config
rancher:
network:
interfaces:
eth1:
address: 172.68.1.100/24
gateway: 172.68.1.1
mtu: 1500
dhcp: false
注意:该address项目应为CIDR格式。
多个网卡
如果要配置多个网络接口之一,则可以指定要配置的接口的MAC地址。
使用 ros config
,您可以指定要配置的NIC的MAC地址,如下所示:
$ sudo ros config set rancher.network.interfaces.”mac=ea:34:71:66:90:12:01”.dhcp true
或者,您可以将MAC地址选择放置在您的云配置文件中,如下所示:
#cloud-config
rancher:
network:
interfaces:
"mac=ea:34:71:66:90:12:01":
dhcp: true
NIC绑定
您可以将多个网络链接聚合到一个虚拟链接中,以实现冗余并提高吞吐量。例如:
#cloud-config
rancher:
network:
interfaces:
bond0:
addresses:
- 192.168.101.33/31
- 10.88.23.129/31
gateway: 192.168.101.32
bond_opts:
downdelay: "200"
lacp_rate: "1"
miimon: "100"
mode: "4"
updelay: "200"
xmit_hash_policy: layer3+4
post_up:
- ip route add 10.0.0.0/8 via 10.88.23.128
mac=0c:c4:d7:b2:14:d2:
bond: bond0
mac=0c:c4:d7:b2:14:d3:
bond: bond0
在此示例中,两个物理NIC(带有MAC 0c:c4:d7:b2:14:d2和0c:c4:d7:b2:14:d3)被聚合为一个虚拟NIC bond0
在启动过程中,RancherOS运行cloud-init。它会自动检测cloud-init的数据源,但有时数据源需要网络连接。默认情况下,在cloud-init中,我们打开rancher.network.interfaces.eth.dhcp=true,这可能会影响绑定NIC。如果您不需要数据源的网络连接,请rancher.network.interfaces.eth.dhcp=false在内核cmdline中使用来禁用所有NIC的DHCP。
虚拟局域网
在此示例中,您可以创建一个eth0.100与VLAN 100绑定的接口以及一个foobar将与VLAN 200绑定的接口。
#cloud-config
rancher:
network:
interfaces:
eth0:
vlans: 100,200:foobar
桥接
在此示例中,您可以创建桥接口。
#cloud-config
rancher:
network:
interfaces:
br0:
bridge: true
dhcp: true
eth0:
bridge: br0
运行自定义网络配置命令(自v1.1起可用)
您可以通过在或中添加和阵列键,或为特定的和键来配置pre
和post
网络配置命令以在network
服务容器中运行。pre_cmds
post_cmds
rancher.network
pre_up
post_up
rancher.network.interfaces
例如:
#cloud-config
write_files:
- container: network
path: /var/lib/iptables/rules.sh
permissions: "0755"
owner: root:root
content: |
#!/bin/bash
set -ex
echo $@ >> /var/log/net.log
# the last line of the file needs to be a blank line or a comment
rancher:
network:
dns:
nameservers:
- 8.8.4.4
- 4.2.2.3
pre_cmds:
- /var/lib/iptables/rules.sh pre_cmds
post_cmds:
- /var/lib/iptables/rules.sh post_cmds
interfaces:
lo:
pre_up:
- /var/lib/iptables/rules.sh pre_up lo
post_up:
- /var/lib/iptables/rules.sh post_up lo
eth0:
pre_up:
- /var/lib/iptables/rules.sh pre_up eth0
post_up:
- /var/lib/iptables/rules.sh post_up eth0
eth1:
dhcp: true
pre_up:
- /var/lib/iptables/rules.sh pre_up eth1
post_up:
- /var/lib/iptables/rules.sh post_up eth1
eth2:
address: 192.168.3.13/16
mtu: 1450
pre_up:
- /var/lib/iptables/rules.sh pre_up eth2
post_up:
- /var/lib/iptables/rules.sh post_up eth2
无线上网(从v1.5开始可用)
为了启用WiFi访问,请cloud-config使用WiFi网络信息更新。您可以使用DHCP或STATIC模式。
使用DHCP的无线适配器的示例
#cloud-config
rancher:
network:
interfaces:
wlan0:
wifi_network: network1
wifi_networks:
network1:
ssid: "Your wifi ssid"
psk: "Your wifi password"
scan_ssid: 1
使用STATIC的无线适配器的示例
rancher:
network:
dns:
nameservers:
- 8.8.8.8
- 8.8.4.4
interfaces:
wlan0:
wifi_network: network1
wifi_networks:
network1:
ssid: "Your wifi ssid"
psk: "Your wifi password"
scan_ssid: 1
address: 192.168.1.78/24
gateway: 192.168.1.1
将两个无线适配器与DHCP一起使用的示例
rancher:
network:
interfaces:
wlan0:
wifi_network: network1
wlan1:
wifi_network: network2
wifi_networks:
network1:
ssid: "Your wifi ssid"
psk: "Your wifi password"
scan_ssid: 1
network2:
ssid: "Your wifi ssid"
psk: "Your wifi password"
scan_ssid: 1
在添加WiFi访问时,不需要重新启动系统,只需network在System Docker中重新启动服务。
$ sudo system-docker restart network
注意:
对于Intel无线适配器,有一些内置的固件和模块,可以防止安装任何新的模块或固件。对于其他适配器,您可能需要安装其他 os kernel-extras。
4G-LTE(从v1.5开始可用)
为了支持4G-LTE,需要将4G-LTE模块连接至母板并获得良好的信号,需要添加外部天线。您可以组装这样的设备,该设备支持USB接口和SIM卡插槽:
为了使用RancherOS,您将需要使用为4G-LTE支持而构建的ISO。该ISO具有内置modem-manager
服务,并且在每个发行版中都可用。
引导ISO之后,将有一个4G NIC,例如wwan0
。使用以下cloud-config
命令设置APN参数。
rancher:
network:
modem_networks:
wwan0:
apn: xxx
完成任何配置更改后,重新启动modem-manager服务以应用这些更改。
$ sudo system-docker restart modem-manager
注意:
当前,RancherOS在规则中具有一些内置规则,udev以允许RancherOS识别特定的4G设备,但是可能缺少其他供应商。如果您需要添加这些内容,请提出问题。
更新时间:2024-08-02 14:28