PORTCHANNEL_INTERFACE テーブル¶
概要¶
PORTCHANNEL を L3 IF として扱うときの設定(VRF binding、IP アサイン、MAC、loopback action 等)を保持する1。同一 PORTCHANNEL 名で PORTCHANNEL_INTERFACE_LIST (属性ロウ) と PORTCHANNEL_INTERFACE_IPPREFIX_LIST (IP プレフィクス) の二系統に分かれる。
データフロー (自動生成)¶
flowchart LR
CDB[("CONFIG_DB<br/>PORTCHANNEL_INTERFACE")]
DM["intfmgrd"]
CDB --> DM
APPDB[("APP_DB<br/>APP_INTF_TABLE")]
DM --> APPDB
SYNCD["syncd"]
APPDB --> SYNCD
SAI["SAI<br/>sai_router_intf_api"]
SYNCD --> SAI
凡例
CONFIG_DB から SAI までの典型経路を docs/reference/config-db-orch-map.md から機械生成したミニ図。詳細・例外は本ページ本文と対応表を参照。
key 構造¶
<name> は PORTCHANNEL.name への leafref。
属性ロウのフィールド一覧¶
| フィールド | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
name (key) |
leafref PORTCHANNEL.name |
✅ | - | LAG 名 |
vrf_name |
leafref VRF.name |
- | - | バインドする VRF |
loopback_action |
loopback_action (drop/forward) |
- | - | 同一 IF へ ingress→routed のパケット動作 |
nat_zone |
uint8 (0..3) | - | 0 |
NAT zone |
mpls |
enum enable/disable |
- | - | MPLS routing |
ipv6_use_link_local_only |
mode-status |
- | disable |
IPv6 link-local のみ |
mac_addr |
mac-address | - | - | 管理者指定 MAC |
IP プレフィクスロウ¶
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
name (key) |
leafref PORTCHANNEL.name |
✅ | LAG 名 |
ip_prefix (key) |
sonic-ip-prefix (v4/v6 union) |
✅ | IP/プレフィクス |
購読者¶
intfmgrd:vrf_name/mac_addr/mpls/ipv6_use_link_local_onlyを Linux カーネルに反映orchagentIntfsOrch: SAI ルータインタフェースを生成nat_zone:natmgrdが利用
関連 CONFIG_DB / YANG / CLI¶
- 関連 CONFIG_DB:
PORTCHANNEL、VRF、PORTCHANNEL_MEMBER - 関連 CLI:
config interface ip add/remove(PortChannel に対しても適用) - 関連 YANG:
sonic-portchannel
値依存挙動マトリクス¶
PORTCHANNEL_INTERFACE.loopback_action¶
| 値 | 挙動 |
|---|---|
drop |
同一 IF に ingress-routed されたパケットを破棄 |
forward |
同一 IF に ingress-routed されたパケットを通過 |
PORTCHANNEL_INTERFACE.mpls¶
| 値 | intfmgrd 挙動 |
|---|---|
enable |
Linux netdev に MPLS routing を有効化 |
disable |
MPLS routing を無効化 |
| 未設定 | MPLS 設定を変更しない |
PORTCHANNEL_INTERFACE.ipv6_use_link_local_only¶
| 値 | 挙動 |
|---|---|
enable |
IPv6 グローバルアドレスなしで link-local アドレスのみ設定 |
disable (デフォルト) |
通常の IPv6 動作 |
PORTCHANNEL_INTERFACE.nat_zone¶
| 値 | natmgrd 挙動 |
|---|---|
0 (デフォルト) |
NAT ゾーン 0 (未設定相当) |
1..3 |
対応 NAT ゾーンに所属 |
| 範囲外 (> 3) | YANG range 違反: Invalid nat zone for the portchannel interface. |
vrf_name は VRF.name への leafref — 存在しない VRF は YANG validate で reject。
例外条件・特殊挙動¶
YANG スキーマ検証¶
PORTCHANNEL_INTERFACEのnat_zoneは range 0..3:error-message "Invalid nat zone for the portchannel interface."。
consumer 例外動作¶
- PORTCHANNEL が存在しない場合の IP アドレス追加: orchagent は PORTCHANNEL 存在確認後に IP 付与。存在しなければタスクを保留 (依存関係による遅延処理)。
- VLAN に所属している LAG への操作:
Failed to remove LAG %s, it is still in VLAN→ SWSS_LOG_ERROR。 - TPID 設定失敗:
Failed to set LAG %s TPID 0x%x→ SWSS_LOG_ERROR。
関連リファレンス¶
引用元¶
関連 Topics¶
運用ヒント¶
典型値¶
- key 形式:
PORTCHANNEL_INTERFACE|PortChannel0001とPORTCHANNEL_INTERFACE|PortChannel0001|<ip/prefix>。 vrf_name:Vrfdefault等。
よくある誤設定¶
- メンバが 1 本も up していない LAG に IP を載せても route がアクティブにならない。
確認コマンド¶
-
YANG 定義:
sonic-portchannel.yang内PORTCHANNEL_INTERFACE。https://github.com/sonic-net/sonic-buildimage/blob/9ea932ec2e18f35e58268ec2e4456b1d4afd65cd/src/sonic-yang-models/yang-models/sonic-portchannel.yang#L158 ↩