配置网络接口

使用 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起可用)

您可以通过在或中添加和阵列键,或为特定的和键来配置prepost网络配置命令以在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设备,但是可能缺少其他供应商。如果您需要添加这些内容,请提出问题。

作者:Jeebiz  创建时间:2019-10-31 00:08
 更新时间:2024-08-02 14:28