7.9.5. インターフェイス固有の安全な sysctls リストの更新


openshift-multus namespace の cni-sysctl-allowlist を更新することで、安全なインターフェイス固有の sysctls のデフォルトリストを変更できます。

重要

インターフェイス固有の安全な sysctl リストの更新のサポートは、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

たとえば、以下の手順では、定義済みの安全な sysctls のリストを変更して、ユーザーが IPv4 のより厳格な逆方向パス転送を強制できるようにする sysctl を追加します。リバースパスフォワーディングの詳細は、Reverse Path Forwarding を参照してください。

手順

  1. 次のコマンドを実行して、既存の定義済みリストを表示します。

    $ oc get cm -n openshift-multus cni-sysctl-allowlist -oyaml

    予想される出力

    apiVersion: v1
    data:
      allowlist.conf: |-
        ^net.ipv4.conf.IFNAME.accept_redirects$
        ^net.ipv4.conf.IFNAME.accept_source_route$
        ^net.ipv4.conf.IFNAME.arp_accept$
        ^net.ipv4.conf.IFNAME.arp_notify$
        ^net.ipv4.conf.IFNAME.disable_policy$
        ^net.ipv4.conf.IFNAME.secure_redirects$
        ^net.ipv4.conf.IFNAME.send_redirects$
        ^net.ipv6.conf.IFNAME.accept_ra$
        ^net.ipv6.conf.IFNAME.accept_redirects$
        ^net.ipv6.conf.IFNAME.accept_source_route$
        ^net.ipv6.conf.IFNAME.arp_accept$
        ^net.ipv6.conf.IFNAME.arp_notify$
        ^net.ipv6.neigh.IFNAME.base_reachable_time_ms$
        ^net.ipv6.neigh.IFNAME.retrans_time_ms$
    kind: ConfigMap
    metadata:
      annotations:
        kubernetes.io/description: |
          Sysctl allowlist for nodes.
        release.openshift.io/version: 4.16.0-0.nightly-2022-11-16-003434
      creationTimestamp: "2022-11-17T14:09:27Z"
      name: cni-sysctl-allowlist
      namespace: openshift-multus
      resourceVersion: "2422"
      uid: 96d138a3-160e-4943-90ff-6108fa7c50c3

  2. 次のコマンドを使用してリストを編集します。

    $ oc edit cm -n openshift-multus cni-sysctl-allowlist -oyaml
  3. ユーザーがより厳密な逆方向パス転送を実装できるように、^net.ipv4.conf.IFNAME.rp_filter$ フィールドと ^net.ipv6.conf.IFNAME.rp_filter$ フィールドをパラメーターのリストに追加します。

    # Please edit the object below. Lines beginning with a '#' will be ignored,
    # and an empty file will abort the edit. If an error occurs while saving this file will be
    # reopened with the relevant failures.
    #
    apiVersion: v1
    data:
      allowlist.conf: |-
        ^net.ipv4.conf.IFNAME.accept_redirects$
        ^net.ipv4.conf.IFNAME.accept_source_route$
        ^net.ipv4.conf.IFNAME.arp_accept$
        ^net.ipv4.conf.IFNAME.arp_notify$
        ^net.ipv4.conf.IFNAME.disable_policy$
        ^net.ipv4.conf.IFNAME.secure_redirects$
        ^net.ipv4.conf.IFNAME.send_redirects$
        ^net.ipv4.conf.IFNAME.rp_filter$
        ^net.ipv6.conf.IFNAME.accept_ra$
        ^net.ipv6.conf.IFNAME.accept_redirects$
        ^net.ipv6.conf.IFNAME.accept_source_route$
        ^net.ipv6.conf.IFNAME.arp_accept$
        ^net.ipv6.conf.IFNAME.arp_notify$
        ^net.ipv6.neigh.IFNAME.base_reachable_time_ms$
        ^net.ipv6.neigh.IFNAME.retrans_time_ms$
        ^net.ipv6.conf.IFNAME.rp_filter$
  4. 変更をファイルに保存して終了します。

    注記

    sysctl の削除もサポートされています。ファイルを編集し、sysctl または sysctls を削除してから、変更を保存して終了します。

検証

  1. 次の内容で、reverse-path-fwd-example.yaml などのネットワーク接続定義を作成します。

    apiVersion: "k8s.cni.cncf.io/v1"
    kind: NetworkAttachmentDefinition
    metadata:
      name: tuningnad
      namespace: default
    spec:
      config: '{
        "cniVersion": "0.4.0",
        "name": "tuningnad",
        "plugins": [{
          "type": "bridge"
          },
          {
          "type": "tuning",
          "sysctl": {
             "net.ipv4.conf.IFNAME.rp_filter": "1"
            }
        }
      ]
    }'
  2. 以下のコマンドを実行して yaml を適用します。

    $ oc apply -f reverse-path-fwd-example.yaml

    出力例

    networkattachmentdefinition.k8.cni.cncf.io/tuningnad created

  3. 次の YAML を使用して、examplepod.yaml などの Pod を作成します。

    apiVersion: v1
    kind: Pod
    metadata:
      name: example
      labels:
        app: httpd
      namespace: default
      annotations:
        k8s.v1.cni.cncf.io/networks: tuningnad
    spec:
      securityContext:
        runAsNonRoot: true
        seccompProfile:
          type: RuntimeDefault
      containers:
        - name: httpd
          image: 'image-registry.openshift-image-registry.svc:5000/openshift/httpd:latest'
          ports:
            - containerPort: 8080
          securityContext:
            allowPrivilegeEscalation: false
            capabilities:
              drop:
                - ALL

    各項目の説明:

    metadata.annotations
    設定された NetworkAttachmentDefinition の名前を指定します。
  4. 以下のコマンドを実行して YAML を適用します。

    $ oc apply -f examplepod.yaml
  5. 次のコマンドを実行して、Pod が作成されていることを確認します。

    $ oc get pod

    出力例

    NAME      READY   STATUS    RESTARTS   AGE
    example   1/1     Running   0          47s

  6. 次のコマンドを実行して、Pod にログインします。

    $ oc rsh example
  7. 設定された sysctl フラグの値を確認します。たとえば、次のコマンドを実行して値 net.ipv4.conf.net1.rp_filter を見つけます。

    sh-4.4# sysctl net.ipv4.conf.net1.rp_filter

    予想される出力

    net.ipv4.conf.net1.rp_filter = 1

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る