Linux的: /proc/sys/net/ipv6/conf/
/proc/sys/net/ipv6/conf/
是 Linux 系統中用于 動態配置 IPv6 網絡接口參數 的核心目錄。它允許針對不同網絡接口(如 eth0
、wlan0
)或全局設置(all
)調整 IPv6 協議棧的行為。
它通過虛擬文件系統(procfs
)(不在磁盤在內存), 動態暴露內核參數,允許用戶或管理員實時調整 IPv6 的網絡行為。通過 /proc/sys/net/ipv6/conf/
,管理員可精細控制 IPv6 網絡的方方面面,從地址分配到安全策略,成為網絡調優和故障排查的利器。
🌟 核心功能
- 接口級精細控制
- 每個接口(如
eth0
)的配置獨立管理,支持差異化策略。
- 每個接口(如
- 動態生效
- 修改參數后立即生效,無需重啟服務或系統。
- 臨時與持久化配置
- 直接修改
/proc
下的文件為臨時生效,持久化需通過sysctl
配置文件。
- 直接修改
以下是詳細的講解:
📂 目錄結構
/proc/sys/net/ipv6/conf/
├── all/ # 全局配置(覆蓋所有接口)
├── default/ # 新增接口的默認配置模板
├── eth0/ # 針對 eth0 的配置
├── lo/ # 環回接口配置
└── wlan0/ # 針對 wlan0 的配置
???????? 子目錄說明
子目錄 | 作用 |
---|---|
all/ | 修改此目錄下的參數會應用到所有網絡接口(優先級高于單個接口的配置)。 |
default/ | 定義新創建的網絡接口的默認參數(例如新增的虛擬接口或動態加載的網卡)。 |
<接口名>/ | 如 eth0/ 、wlan0/ ,用于配置特定接口的獨立參數。 |
🔧 常見參數分類
???????? 基礎配置
參數文件 | 功能與取值 |
---|---|
disable_ipv6 | - 0 :啟用 IPv6(默認)- 1 :禁用 IPv6(接口不再處理 IPv6 流量)。 |
accept_ra | 控制是否接受路由器廣播(Router Advertisements, RA): - 0 :拒絕 RA(禁用 SLAAC 自動配置)- 1 :接受 RA(默認)- 2 :接受 RA 但不設置默認路由。 |
accept_ra_defrtr | 在接受路由器廣播(Router Advertisements, RA)(accept_ra=1 )后:是否將RA中的路由信息用于默認路由 - 0 :拒絕 RA 中的默認路由(需手動配置路由)。- 1 :接受 RA 中的默認路由(默認值,自動配置路由)。 |
ra_defrtr_metric | 設置通過 RA 添加的默認路由的優先級(metric)。需accept_ra_defrtr=1 是否將RA中的路由信息用于默認路由 默認 1024 ,可調整以優化路由選擇。 |
autoconf | - 1 :啟用 SLAAC(需 accept_ra=1 )- 0 :禁用自動配置(需手動配置 IPv6 地址)。 |
forwarding | 啟用 IPv6 數據包轉發(路由器模式,默認 0 ,禁用)。 |
hop_limit | 默認跳數限制(類似 IPv4 的 TTL,默認 64 )。 |
mtu | 接口的 MTU 值(如 1500 )。 |
use_tempaddr | 是否生成臨時隱私地址:0 =禁用,1 =啟用,但優先使用穩定地址, 2 =優先使用臨時地址 |
查看
sudo sysctl -a | grep -E 'disable_ipv6|autoconf|accept_ra|accept_ra_defrtr|ra_defrtr_metric|forwarding|hop_limit|mtu|use_tempaddr'
???????? 配置分類
???? ???? ???? 1. 地址自動配置
參數名 | 作用 |
---|---|
autoconf | 是否通過 SLAAC 自動生成 IPv6 地址(默認 1 ,啟用)。 |
use_tempaddr | 是否生成臨時隱私地址:0 =禁用,1 =啟用,但優先使用穩定地址,2 =優先使用臨時地址。 |
???? ???? ???? 2. 路由通告(RA)
參數名 | 作用 |
---|---|
accept_ra | 是否接受路由通告(RA)消息(默認 1 ,啟用)。 |
accept_ra_defrtr | 是否通過 RA 設置默認路由(默認 1 ,啟用)。 |
accept_ra_rt_info_max_plen | 接受 RA 路由信息的最大前綴長度。 |
ra_defrtr_metric | 設置通過 RA 添加的默認路由的優先級(metric)。需accept_ra_defrtr=1 是否將RA中的路由信息用于默認路由 默認 1024 ,可調整以優化路由選擇。 |
???? ???? ???? 3. 鄰居發現(NDP)
參數名 | 作用 |
---|---|
ndisc_notify | 是否發送鄰居發現通知(默認 1 ,啟用)。 |
proxy_ndp | 是否啟用 NDP 代理(默認 0 ,禁用)。 |
???? ???? ???? 4. 安全與策略
參數名 | 作用 |
---|---|
disable_ipv6 | 完全禁用接口的 IPv6 協議棧(默認 0 ,啟用)。 |
disable_policy | 禁用 IPv6 安全策略(如 IPsec,默認 0 ,啟用策略)。 |
suppress_frag_ndisc | 抑制分片的鄰居發現報文(防攻擊,默認 1 ,啟用)。 |
???? ???? ???? 5. 轉發與路由
參數名 | 作用 |
---|---|
forwarding | 啟用 IPv6 數據包轉發(路由器模式,默認 0 ,禁用)。 |
hop_limit | 默認跳數限制(類似 IPv4 的 TTL,默認 64 )。 |
mtu | 接口的 MTU 值(如 1500 )。 |
sudo sysctl -a | grep -E 'forwarding|hop_limit|mtu'
???? ???? ???? 6. 啟用臨時地址
參數 | 功能 | 默認值 | 依賴關系 |
---|---|---|---|
use_tempaddr | 控制是否生成臨時 IPv6 地址,并決定其優先級: ? 0 :禁用? 1 :啟用,但優先使用穩定地址? 2 :啟用且優先使用臨時地址 | 0 (禁用) | 需接口啟用 SLAAC(autoconf=1 ) |
temp_valid_lft | 定義臨時地址的 總有效期(從生成到失效的時間) | 604800 秒(7 天) | 需 use_tempaddr≥1 生效 |
temp_prefered_lft | 定義臨時地址的 優先使用期(在此期間地址為首選,之后生成新地址) | 86400 秒(1 天) | 需 use_tempaddr≥1 生效 |
sudo sysctl -a | grep -E 'use_tempaddr|temp_valid_lft|temp_prefered_lft'
🛠? 配置方法,操作示例 及 🌐 典型場景
???????? ** 臨時修改的寫法用例**
直接向 /proc
寫入值(重啟失效):
禁用 eth0 的 IPv6
# 禁用 eth0 的 IPv6
echo 1 | sudo tee /proc/sys/net/ipv6/conf/eth0/disable_ipv6
或
sudo sysctl -w net.ipv6.conf.eth0.disable_ipv6=1
為所有接口啟用隱私擴展
# 為所有接口啟用隱私擴展
echo 2 | sudo tee /proc/sys/net/ipv6/conf/all/use_tempaddr
或
sudo sysctl -w net.ipv6.conf.all.use_tempaddr=2
???????? ** 永久生效, 持久化配置,的寫法用例**
# 永久生效:編輯 /etc/sysctl.conf 或 /etc/sysctl.d/*.conf
echo "net.ipv6.conf.eth0.accept_ra = 0" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p # 重新加載配置
# 將配置寫入文件(如 /etc/sysctl.d/99-ipv6.conf)
echo "net.ipv6.conf.eth0.forwarding = 0" >> /etc/sysctl.d/99-ipv6.conf
echo "net.ipv6.conf.eth0.autoconf = 1" >> /etc/sysctl.d/99-ipv6.conf# 加載配置
sudo sysctl -p /etc/sysctl.d/99-ipv6.conf
???????? 查看接口的配置
# 查看 eth0 的 IPv6 轉發狀態
cat /proc/sys/net/ipv6/conf/eth0/forwarding
sysctl net.ipv6.conf.eth0.forwarding# 查看全局的 RA 接受狀態
cat /proc/sys/net/ipv6/conf/all/accept_ra
sysctl net.ipv6.conf.all.accept_ra# 查看default的 RA 接受狀態
cat /proc/sys/net/ipv6/conf/default/accept_ra
sysctl net.ipv6.conf.default.accept_ra
???????? 禁用某個接口的 IPv6
# 臨時禁用 eth1 的 IPv6
echo 1 > /proc/sys/net/ipv6/conf/eth1/disable_ipv6# 臨時禁用 eth0 的 IPv6 方法2
echo 1 | sudo tee /proc/sys/net/ipv6/conf/eth0/disable_ipv6# 臨時禁用 eth0 的 IPv6 方法3
sudo sysctl -w net.ipv6.conf.eth0.disable_ipv6# 永久禁用(需重啟或 sysctl -p)
echo "net.ipv6.conf.eth0.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
sysctl -p# 永久禁用 (需重啟或 sysctl -p)寫法2
echo "net.ipv6.conf.eth1.disable_ipv6 = 1" >> /etc/sysctl.conf
sysctl -p/etc/sysctl.d/99-ipv6.conf
# 永久禁用 (需重啟或 sysctl -p)推薦寫到 /etc/sysctl.d/99-ipv6.conf
echo "net.ipv6.conf.eth1.disable_ipv6 = 1" >> /etc/sysctl.d/99-ipv6.conf
sysctl -p
???????? 配置 IPv6 路由器
# 啟用 eth0 的 IPv6 轉發
echo 1 > /proc/sys/net/ipv6/conf/eth0/forwarding# 允許接收 RA(需手動覆蓋默認行為)
echo 2 > /proc/sys/net/ipv6/conf/eth0/accept_ra
# 啟用 IPv6 轉發
echo 1 | sudo tee /proc/sys/net/ipv6/conf/all/forwarding# 允許接受 RA(某些路由場景需要)
echo 1 | sudo tee /proc/sys/net/ipv6/conf/eth0/accept_ra
???????? 使用臨時地址,優化隱私地址
# 優先使用臨時地址
echo 2 > /proc/sys/net/ipv6/conf/eth0/use_tempaddr# 永久設置臨時地址生命周期
echo "net.ipv6.conf.eth0.temp_valid_lft = 604800" >> /etc/sysctl.conf
sysctl -p
?? 注意事項
-
參數優先級
- 接口級配置(如
eth0
)優先級高于全局配置(all
)。 default/
目錄中的配置僅對新創建的網絡接口生效。
- 接口級配置(如
-
優先級規則:
all/
的配置會覆蓋單個接口的設置。default/
僅影響新創建的接口。
-
安全建議:
- 禁用
accept_redirects
(可能引發路由欺騙)。 - 限制
accept_ra
僅在需要自動配置時開啟。
- 禁用
-
網絡重啟影響:
- 修改
/proc
的參數會立即生效,但重啟網絡服務可能重置某些配置。
- 修改
-
內核兼容性:
- 不同內核版本可能支持不同的參數,建議通過
man proc
或內核文檔查詢。
- 不同內核版本可能支持不同的參數,建議通過
-
與
sysctl
的關系/proc/sys/net/ipv6/conf/
中的參數名需轉換為sysctl
格式:# /proc/sys/net/ipv6/conf/eth0/forwarding → sysctl net.ipv6.conf.eth0.forwarding
2?? sysctl -a | grep ipv6
可以列出所有 IPv6 相關內核參數
sudo sysctl -a | grep ipv6
sudo sysctl -a | grep accept_ra
sudo sysctl -a | grep -E 'accept_ra|accept_ra_defrtr|ra_defrtr_metric'
sudo sysctl -a | grep -E 'accept_ra|accept_ra_defrtr|ra_defrtr_metric|autoconf|forwarding|hop_limit|mtu'
sudo sysctl -a | grep -E 'accept_ra|accept_ra_defrtr|ra_defrtr_metric|autoconf|forwarding|hop_limit|mtu|use_tempaddr'
sudo sysctl -a | grep -E 'accept_ra|accept_ra_defrtr|ra_defrtr_metric|autoconf|forwarding|hop_limit|mtu'
sudo sysctl -a | grep -E 'disable_ipv6|autoconf|accept_ra|accept_ra_defrtr|ra_defrtr_metric|forwarding|hop_limit|mtu|use_tempaddr'
sudo sysctl -a | grep -E 'disable_ipv6|autoconf|accept_ra|accept_ra_defrtr|ra_defrtr_metric|forwarding|hop_limit|mtu|use_tempaddr|temp_valid_lft|temp_prefered_lft'
2?? /proc/sys/net/ipv6/conf/all/accept_ra
和 /proc/sys/net/ipv6/conf/default/accept_ra
和 /proc/sys/net/ipv6/conf/ens33/accept_ra
-
/proc/sys/net/ipv6/conf/all/accept_ra
-
/proc/sys/net/ipv6/conf/default/accept_ra
-
/proc/sys/net/ipv6/conf/ens33/accept_ra
以下是三個 IPv6 相關參數的區別與作用的詳細對比:
???????? 關于 /proc/sys/net/ipv6/conf/
中不同位置 accept_ra
參數的詳細講解
???? ???? ???? 1. accept_ra
參數的作用
accept_ra
(Accept Router Advertisements)用于控制網絡接口是否接受 IPv6 路由器通告(Router Advertisement, RA)。路由器通告包含網絡配置信息(如 IPv6 前綴、DNS 服務器地址等),接受 RA 可使設備自動配置 IPv6 地址和路由。
- 取值含義:
0
:不接受路由器通告。1
:當 IPv6 轉發(forwarding)禁用時接受路由器通告。2
(部分內核支持):無論轉發是否啟用,均接受路由器通告。
???? ???? ???? 2. 不同位置 accept_ra
的區別與配置方法
???? ???? ???? ???? (1)/proc/sys/net/ipv6/conf/all/accept_ra
- 作用:全局配置,影響所有網絡接口。
- 配置示例:
# 臨時啟用(重啟后失效) echo "1" > /proc/sys/net/ipv6/conf/all/accept_ra# 永久生效(需重啟或執行 sysctl -p) echo "net.ipv6.conf.all.accept_ra=1" >> /etc/sysctl.conf sysctl -p
???? ???? ???? ???? (2)/proc/sys/net/ipv6/conf/default/accept_ra
- 作用:默認配置模板,新創建的網絡接口自動繼承此設置。
- 配置示例:
# 臨時設置(重啟后失效) echo "1" > /proc/sys/net/ipv6/conf/default/accept_ra# 永久設置(需重啟或執行 sysctl -p) echo "net.ipv6.conf.default.accept_ra=1" >> /etc/sysctl.conf sysctl -p
???? ???? ???? ???? (3)/proc/sys/net/ipv6/conf/ens33/accept_ra
- 作用:針對特定接口(如
ens33
)的個性化配置,覆蓋全局和默認設置。 - 配置示例:
# 臨時設置(重啟后失效) echo "1" > /proc/sys/net/ipv6/conf/ens33/accept_ra# 永久設置(需重啟或執行 sysctl -p) echo "net.ipv6.conf.ens33.accept_ra=1" >> /etc/sysctl.conf sysctl -p
???? ???? ???? 3. 配置優先級
- 特定接口 >
all
>default
。
例如,若ens33
接口單獨設置了accept_ra=1
,則優先使用該值,忽略all
和default
的配置。
有道dpsk說: 特定接口 > all > default。
元寶dpsk說: ??接口級參數 > all/ > default/
參數 | eth0/ 設置 | all/ 設置 | default/ 設置 | 實際生效值 |
---|---|---|---|---|
disable_ipv6 | 0 | 1 | 1 | 0(接口級優先) |
accept_ra | 未設置 | 0 | 1 | 0(all/ 覆蓋 default/ ) |
use_tempaddr | 未設置 | 2 | 1 | 2(all/ 生效) |
元寶Hunyuan說: 特定接口** > all
> **default
配置層級 | 作用范圍 | 覆蓋規則 |
---|---|---|
接口特定配置 | 單個網絡接口(如 eth0/ ) | 最高優先級,僅影響該接口 |
全局配置 (all/ ) | 所有網絡接口 | 覆蓋所有接口,但低于接口特定配置 |
默認配置 (default/ ) | 新創建的接口 | 僅影響新增接口,不影響已有接口 |
豆包說: 配置參數的優先級為:具體網絡接口目錄的配置 > all 目錄的配置 > default 目錄的配置。也就是說,如果在具體網絡接口目錄下對某個參數進行了設置,該設置會覆蓋 all 和 default 目錄中的相同參數設置。
Kimi說: 優先級:接口特定設置的優先級最高,全局設置次之,默認設置優先級最低。
C知道dpsk說: 優先級規則:具體接口的配置 > all > default。
dpsk說all
優先級最高
參數路徑 | 作用范圍 | 優先級 | 持久性影響 | 典型用途 |
---|---|---|---|---|
/proc/sys/net/ipv6/conf/all/accept_ra | 所有接口(包括現有接口和未來新接口) | 最高 | 修改后立即影響所有接口 | 全局強制設置(如安全策略要求所有接口禁用 RA)。 |
/proc/sys/net/ipv6/conf/default/accept_ra | 新創建的接口(已存在的接口不受影響) | 最低 | 僅對新接口生效 | 定義新接口的默認行為(如新虛擬接口默認不自動配置地址)。 |
/proc/sys/net/ipv6/conf/ens33/accept_ra | 僅 ens33 接口(特定物理/虛擬接口) | 中等 | 僅影響該接口 | 針對單個接口的精細控制(如允許 ens33 接受 RA,但其他接口拒絕)。 |
文心X1說: all/
> interfaceName/
> default/
目錄 | 作用范圍 | 優先級 | 典型用途 |
---|---|---|---|
all/ | 覆蓋所有接口(包括已存在和新創建的) | 最高 | 強制執行全局策略(如禁用所有接口的路由器通告) |
default/ | 僅影響新創建的接口 | 中等 | 設置新建接口的默認配置(如默認拒絕路由器通告) |
interfaceName/ | 僅控制特定接口(如eth0) | 最低 | 對特定接口進行個性化配置(如允許eth0接受路由器通告) |
文心4.5說: 最高優先級:具體網絡接口配置(interfaceName)。中等優先級:默認配置(default),適用于未單獨配置的接口。最低優先級:全局配置(all),通常用于全局性設置,但可能被具體接口設置覆蓋。
文心dpsk說: 具體接口配置 > all 全局配置 > default 默認配置?
debian10 下親測 具體接口名的 優先級大于 all
???? ???? ???? 4. 應用場景
- 全局禁用 RA:在
/proc/sys/net/ipv6/conf/all/accept_ra
設為0
,禁止所有接口接受 RA,適用于需要靜態配置 IPv6 的環境。 - 接口級控制:為特定接口(如
ens33
)啟用 RA,其他接口保持默認,適用于多接口設備需差異化配置的場景。 - 新接口默認配置:修改
/proc/sys/net/ipv6/conf/default/accept_ra
,確保新創建的接口自動接受 RA,簡化網絡管理。
???? ???? ???? 5. 注意事項
- 內核版本:部分舊內核可能不支持
accept_ra=2
,需確認內核文檔或升級內核。 - 持久化配置:修改
/etc/sysctl.conf
后執行sysctl -p
,確保重啟后配置生效。 - 依賴關系:
accept_ra
與autoconf
(自動配置 IPv6 地址)參數通常配合使用,需根據需求同步調整。
???? ???? ???? 6. 故障排查
-
檢查 RA 接受狀態:
cat /proc/sys/net/ipv6/conf/all/accept_ra # 全局狀態 cat /proc/sys/net/ipv6/conf/default/accept_ra # 默認模板 cat /proc/sys/net/ipv6/conf/ens33/accept_ra # 特定接口狀態
sudo sysctl -a | grep ipv6
sudo sysctl -a | grep -E 'accept_ra|accept_ra_defrtr|ra_defrtr_metric'
-
驗證 IPv6 配置:
ip -6 addr show dev ens33 # 查看接口 IPv6 地址 ip -6 route show # 檢查默認路由
🧠🌐 Linux的/proc/sys/net/ipv6/conf/(all,default,interfaceName具體網絡接口名稱)/ 筆記250405
2?? SLAAC 是什么?
SLAAC(Stateless Address Autoconfiguration,無狀態地址自動配置)是 IPv6 協議的核心特性之一,它允許設備無需依賴 DHCP 服務器(如 IPv4 中的 DHCP),直接通過本地網絡的路由器通告(Router Advertisement, RA)自動生成全球唯一的 IPv6 地址。
🔍 核心原理
-
路由器通告(RA)
網絡中的 IPv6 路由器會周期性廣播 RA 消息,包含以下關鍵信息:- 網絡前綴(如
2001:db8::/64
) - 默認路由(網關)
- 地址有效期(生存時間)
- 是否支持 DHCPv6(補充配置其他參數,如 DNS)。
- 網絡前綴(如
-
地址生成
設備收到 RA 后,結合以下兩部分生成 IPv6 地址:- 網絡前綴(來自 RA)
- 接口標識符(通常基于 MAC 地址或隨機生成)。
示例:
網絡前綴: 2001:db8::/64 MAC地址: 00:1a:2b:3c:4d:5e 接口標識符: 021a:2bff:fe3c:4d5e (通過 EUI-64 算法生成) IPv6地址: 2001:db8::021a:2bff:fe3c:4d5e
? 特點
特性 | 說明 |
---|---|
無狀態 | 無需服務器記錄地址分配狀態,降低網絡復雜度。 |
即插即用 | 設備接入網絡后自動完成地址配置。 |
隱私保護 | 支持生成臨時隨機地址(如 fd12:3456::1a2b:3c4d ),防止設備追蹤。 |
依賴 RA 消息 | 需路由器啟用 RA 廣播(對應 /proc/sys/net/ipv6/conf/eth0/accept_ra=1 )。 |
🆚 與 DHCPv6 的區別
SLAAC | DHCPv6 | |
---|---|---|
地址分配 | 設備自主生成 | 服務器分配 |
狀態管理 | 無狀態(無需服務器) | 有狀態(服務器記錄) |
配置內容 | 僅地址 + 網關 + 前綴 | 地址 + DNS + 其他參數 |
適用場景 | 簡單網絡(家庭/小型辦公) | 需集中管理(企業/數據中心) |
🔧 相關配置(Linux)
在 /proc/sys/net/ipv6/conf/
中,以下參數控制 SLAAC 行為:
accept_ra
- 設置為
1
時,允許設備接收 RA 消息(啟用 SLAAC 的前提)。
- 設置為
autoconf
- 設置為
1
時,允許設備根據 RA 生成地址(需同時啟用accept_ra=1
)。
- 設置為
use_tempaddr
- 控制是否生成臨時隱私地址(如
2
表示優先使用臨時地址)。
- 控制是否生成臨時隱私地址(如
示例命令:
# 查看 eth0 是否啟用 SLAAC
sysctl net.ipv6.conf.eth0.autoconf# 臨時禁用 SLAAC
echo 0 > /proc/sys/net/ipv6/conf/eth0/autoconf
🌐 實際應用
- 家庭網絡
路由器廣播 RA,手機/電腦自動獲取 IPv6 地址(如2408:8207:1234:5678::1a2b
)。 - 服務器網絡
可能禁用 SLAAC(autoconf=0
),手動配置靜態 IPv6 地址以保證穩定性。 - 隱私保護
啟用use_tempaddr=2
,避免設備 IPv6 地址暴露 MAC 信息。
💡 擴展知識
- EUI-64 算法:將 48 位 MAC 地址轉換為 64 位接口標識符(插入
FFFE
并反轉 U/L 位)。 - 臨時地址:格式為
隨機數::臨時后綴
,周期性變化(可通過ip -6 addr show
查看)。 - DHCPv6:DHCPv6(Dynamic Host Configuration Protocol for IPv6)是 IPv6 網絡中用于 動態分配地址和配置網絡參數 的協議,相較于 IPv4 的 DHCP,它在設計上更適應 IPv6 的特性(如無狀態地址自動配置 SLAAC)。
- DHCPv6 筆記250405
- 無狀態版的DHCPv6是不是SLAAC? 筆記250405
🧠🌐 SLAAC 是什么? 筆記250404
2?? SLAAC 與 DHCPv6
SLAAC(無狀態地址自動配置)和 DHCPv6 是 IPv6 網絡中兩種主要的地址配置機制,分別適用于不同的場景和需求。以下是它們的核心區別、協作方式及實際應用指南:
📜 核心區別對比
特性 | SLAAC | DHCPv6(有狀態) | DHCPv6(無狀態) |
---|---|---|---|
地址生成方式 | 客戶端基于 RA 前綴自行生成地址 | 服務器分配完整地址 | 地址由 SLAAC 生成,服務器提供參數 |
依賴服務器 | 無需服務器(僅需路由器 RA) | 必須部署 DHCPv6 服務器 | 需要 DHCPv6 服務器 |
配置參數 | 地址 + 默認路由(通過 RA) | 地址 + DNS/NTP/域名等完整配置 | DNS/NTP/域名等(不分配地址) |
管理復雜度 | 低 | 高 | 中 |
適用場景 | 簡單網絡、物聯網設備 | 企業網絡、需集中管理地址的環境 | 需額外參數但無需地址管理的環境 |
🌐 協作機制
IPv6 網絡可結合 SLAAC 和 DHCPv6 實現靈活配置,具體通過 RA(路由通告)的標志位 控制:
- M標志(Managed Address Configuration):
M=1
:客戶端必須使用 有狀態 DHCPv6 獲取地址。M=0
:客戶端使用 SLAAC 或無狀態 DHCPv6。
- O標志(Other Configuration):
O=1
:客戶端通過 無狀態 DHCPv6 獲取 DNS 等參數。O=0
:僅使用 SLAAC 配置。
🛠? 配置示例
???????? 1. 純 SLAAC 網絡
- 路由器配置(Linux,使用
radvd
):# /etc/radvd.conf interface eth0 {AdvSendAdvert on;prefix 2001:db8:abcd::/64 {AdvOnLink on;AdvAutonomous on; # 啟用 SLAAC}; };
- 客戶端行為:
根據 RA 前綴生成地址,不獲取 DNS 等參數。
???????? 2. SLAAC + 無狀態 DHCPv6
- 路由器 RA 配置:
interface eth0 {AdvSendAdvert on;AdvManagedFlag off; # M=0AdvOtherConfigFlag on; # O=1prefix 2001:db8:abcd::/64 {AdvAutonomous on;}; };
- DHCPv6 服務器配置(ISC DHCPv6):
# /etc/dhcp/dhcpd6.conf option dhcp6.name-servers 2001:db8::53; option dhcp6.domain-search "example.com";
- 客戶端行為:
通過 SLAAC 生成地址,通過 DHCPv6 獲取 DNS。
???????? 3. 有狀態 DHCPv6
- 路由器 RA 配置:
interface eth0 {AdvSendAdvert on;AdvManagedFlag on; # M=1AdvOtherConfigFlag off; };
- DHCPv6 服務器配置:
subnet6 2001:db8:abcd::/64 {range6 2001:db8:abcd::100 2001:db8:abcd::200;option dhcp6.name-servers 2001:db8::53; };
- 客戶端行為:
完全依賴 DHCPv6 獲取地址和參數。
🔍 協議選擇指南
???????? 1. 何時使用 SLAAC?
- 場景:家庭網絡、物聯網設備、臨時網絡(如會議 Wi-Fi)。
- 優勢:無需服務器,部署簡單,適合設備自主生成地址。
???????? 2. 何時使用無狀態 DHCPv6?
- 場景:需要分發 DNS、NTP 等參數,但地址管理無嚴格要求。
- 示例:學校網絡、咖啡館 Wi-Fi(用戶設備自行生成地址,但需統一 DNS)。
???????? 3. 何時使用有狀態 DHCPv6?
- 場景:企業網絡、數據中心、需精確控制地址分配的環境。
- 示例:虛擬機集群、需審計 IP 使用記錄的網絡。
?? 安全與優化
???????? 1. SLAAC 安全風險
- RA 欺騙攻擊:偽造路由器通告錯誤前綴。
防護:部署 RA Guard(交換機配置過濾非法 RA)。
???????? 2. DHCPv6 安全風險
- 偽造服務器攻擊:惡意 DHCPv6 服務器分配錯誤參數。
防護:啟用 DHCPv6 Snooping(交換機記錄合法服務器)。
???????? 3. 隱私優化
- 臨時地址:在 SLAAC 中啟用
use_tempaddr=2
,避免 EUI-64 地址暴露 MAC 地址。sysctl -w net.ipv6.conf.eth0.use_tempaddr=2
📊 協議工作流程對比
步驟 | SLAAC | 有狀態 DHCPv6 |
---|---|---|
1. 地址/參數來源 | 客戶端自行生成地址(基于 RA 前綴) | 服務器分配地址和參數 |
2. 服務器依賴 | 無需服務器 | 必須部署 DHCPv6 服務器 |
3. 配置靈活性 | 僅地址 + 路由 | 地址 + 路由 + DNS/NTP/域名等 |
4. 適用規模 | 小到中型網絡 | 中到大型企業網絡 |
🧠🌐 SLAAC 與 DHCPv6 筆記250405
2?? accept_ra
accept_ra
是 Linux 系統中控制 IPv6 路由通告(Router Advertisement, RA)接收行為 的核心參數,位于 /proc/sys/net/ipv6/conf/<接口名>/
目錄下。它直接影響設備是否通過 SLAAC(無狀態地址自動配置)獲取 IPv6 地址和網絡信息。
📜 參數取值及含義
值 | 行為描述 |
---|---|
0 | 禁用 RA 接收:不處理任何路由通告,需手動配置 IPv6 地址和網關。 |
1 | 啟用 RA 接收(默認):根據 RA 自動配置地址、網關和網絡參數。 |
2 | 接受 RA 但忽略躍點數:接收 RA 但不更新默認路由的優先級(特殊場景)。 |
某些系統可能支持擴展值(如 3
),用于兼容性場景(需參考內核文檔)。
🔧 配置方法
???????? 臨時修改(重啟失效)
# 禁用 eth0 的 RA 接收
echo 0 > /proc/sys/net/ipv6/conf/eth0/accept_ra# 或使用 sysctl
sysctl -w net.ipv6.conf.eth0.accept_ra=0
???????? 永久生效
修改配置文件(如 /etc/sysctl.d/99-ipv6.conf
):
# 全局禁用所有接口的 RA 接收
net.ipv6.conf.all.accept_ra = 0# 僅對 eth0 生效
net.ipv6.conf.eth0.accept_ra = 1
執行 sysctl -p
加載配置。
🌐 典型場景
???????? 1. 服務器環境
- 禁用 RA(
accept_ra=0
):防止自動分配地址,確保手動配置靜態 IPv6。 - 示例:
sysctl net.ipv6.conf.eth0.accept_ra=0 sysctl net.ipv6.conf.eth0.autoconf=0 # 同時關閉自動配置
???????? 2. 客戶端設備
- 啟用 RA(
accept_ra=1
):自動獲取地址(如家庭網絡中的手機/電腦)。 - 依賴條件:
- 路由器需發送 RA(通過
radvd
或dnsmasq
等工具)。 autoconf=1
(默認啟用)。
- 路由器需發送 RA(通過
???????? 3. 網絡調試
- 臨時關閉 RA:排查地址沖突或異常自動配置問題。
- 命令:
ip -6 addr flush dev eth0 # 清空現有地址 echo 0 > /proc/sys/net/ipv6/conf/eth0/accept_ra
?? 注意事項
-
與
forwarding
的沖突
若啟用 IPv6 轉發(net.ipv6.conf.all.forwarding=1
),內核默認會自動禁用 RA 接收(accept_ra=0
),需手動覆蓋此行為。 -
接口優先級
- 具體接口(如
eth0
)的配置優先級高于all
和default
。 - 示例:
net.ipv6.conf.all.accept_ra=0 # 全局禁用 net.ipv6.conf.eth0.accept_ra=1 # eth0 例外啟用
- 具體接口(如
-
RA 內容依賴
RA 中需包含A
標志(Autonomous Address Configuration
)才會觸發 SLAAC 地址生成。可通過tcpdump
驗證:tcpdump -i eth0 -vn ip6 and icmp6 and "router advertisement"
🔍 擴展知識
- RA 消息內容:
包含前綴、MTU、默認路由、DNS 服務器(RDNSS)等(需路由器支持 ND 擴展)。 - 隱私地址:
若啟用use_tempaddr=2
,即使通過 RA 獲取地址,也會生成臨時隨機后綴。 - DHCPv6 共存:
RA 中的M
標志(Managed)和O
標志(Other)決定是否使用 DHCPv6 補充配置。
通過合理配置 accept_ra
,可以靈活平衡網絡自動化與可控性,適應不同場景需求。
🌐 accept_ra詳解 筆記 250404
2?? autoconf
autoconf
是 Linux 系統中控制 IPv6 無狀態地址自動配置(SLAAC) 的關鍵參數,位于 /proc/sys/net/ipv6/conf/<接口>/
目錄下。它決定接口是否根據接收到的 路由通告(Router Advertisement, RA) 自動生成 IPv6 地址。
📜 參數取值及含義
值 | 行為描述 |
---|---|
0 | 禁用自動配置:不通過 RA 生成 IPv6 地址(需手動或 DHCPv6 配置)。 |
1 | 啟用自動配置(默認):根據 RA 中的前綴和接口標識符生成 IPv6 地址。 |
🔧 配置方法
???????? 臨時修改(重啟失效)
# 禁用 eth0 的自動配置
echo 0 > /proc/sys/net/ipv6/conf/eth0/autoconf# 或使用 sysctl
sysctl -w net.ipv6.conf.eth0.autoconf=0
???????? 永久生效
在配置文件(如 /etc/sysctl.d/99-ipv6.conf
)中添加:
# 全局禁用所有接口的自動配置
net.ipv6.conf.all.autoconf = 0# 僅對 eth0 生效
net.ipv6.conf.eth0.autoconf = 1
執行 sysctl -p
加載配置。
🌐 核心機制
-
依賴 RA 消息
autoconf=1
需配合accept_ra=1
(允許接收 RA)。- RA 中必須包含
A
標志(Autonomous Address Configuration)。
-
地址生成規則
- 組合 RA 提供的 網絡前綴(如
2001:db8::/64
)和 接口標識符(基于 MAC 地址或隨機生成)。 - 若啟用
use_tempaddr=2
,優先生成臨時隱私地址(如2001:db8::d3ad:b33f
)。
- 組合 RA 提供的 網絡前綴(如
-
典型地址類型
# 永久地址(基于 EUI-64) 2001:db8::1a2b:3cff:fe4d:5e6f# 臨時隱私地址(隨機后綴) 2001:db8::d3ad:b33f
?? 注意事項
-
與
accept_ra
的關聯- 若
accept_ra=0
,即使autoconf=1
也不會觸發自動配置。 - 調試命令:
# 檢查是否收到 RA tcpdump -i eth0 -vn ip6 and icmp6 and "router advertisement"
- 若
-
與
forwarding
的沖突
啟用 IPv6 轉發(net.ipv6.conf.all.forwarding=1
)時,內核默認禁用autoconf
,需手動覆蓋:sysctl -w net.ipv6.conf.eth0.autoconf=1
-
接口優先級
- 具體接口(如
eth0
)的配置優先級高于all
和default
。 - 示例:
net.ipv6.conf.all.autoconf=0 # 全局禁用 net.ipv6.conf.eth0.autoconf=1 # eth0 例外啟用
- 具體接口(如
🛠? 典型場景
???????? 1. 服務器靜態地址配置
# 禁用自動配置,手動設置 IPv6
sysctl net.ipv6.conf.eth0.autoconf=0
ip addr add 2001:db8::1/64 dev eth0
???????? 2. 客戶端自動獲取地址
# 啟用自動配置(默認)
sysctl net.ipv6.conf.eth0.autoconf=1
ip -6 addr show dev eth0 # 查看生成的地址
???????? 3. 隱私保護
# 啟用臨時地址(需內核支持)
sysctl net.ipv6.conf.eth0.use_tempaddr=2
🔍 驗證工具
- 查看地址:
ip -6 addr show dev eth0
- 檢查內核參數:
sysctl net.ipv6.conf.eth0.autoconf
- 抓包分析 RA:
tcpdump -i eth0 -vvv icmp6
🌐 autoconf 筆記250404
2?? forwarding
forwarding
是 Linux 系統中控制 IPv6 數據包轉發功能 的核心參數,位于 /proc/sys/net/ipv6/conf/<接口>/
目錄下。它決定了系統是否充當路由器角色,將接收到的 IPv6 數據包轉發到其他網絡接口。
是 Linux 系統中控制網絡接口是否啟用 路由轉發功能 的參數。
決定內核是否允許本機作為路由器,轉發不同接口之間的數據包。
啟用此參數后,系統可充當路由器,在不同接口間轉發 IPv6 流量。
forwarding 參數決定了系統是否會對收到的 IPv6 數據包進行轉發操作。當系統充當路由器或者網關的角色時,就需要開啟數據包轉發功能,使得不同網絡之間的設備能夠相互通信;若系統只是普通的主機,通常不需要開啟此功能。
forwarding 參數決定了設備是否將收到的 IPv6 數據包轉發到其他網絡接口。啟用轉發功能后,設備可以作為路由器,將數據包從一個接口轉發到另一個接口。
forwarding 參數用于啟用或禁用 IP 數據包的轉發功能。當啟用時,設備可以作為路由器,將接收到的數據包從一個接口轉發到另一個接口。
forwarding 是 Linux 系統中控制是否允許設備在不同網絡接口之間轉發 IP 數據包的內核參數。
若啟用(forwarding=1),設備可作為路由器,在不同接口間轉發流量。
若禁用(forwarding=0),設備僅處理目標為本機的流量(默認行為)。
控制是否允許系統作為路由器轉發 IPv6 數據包。
??0(默認)??:禁用轉發,系統僅處理本機流量(主機模式)。
??1??:啟用轉發,允許在不同網絡接口間轉發數據包(路由器模式)。
forwarding 的作用: 啟用或禁用 IPv6 轉發:
當 forwarding 啟用(值為 1)時,系統可以作為路由器,轉發來自不同網絡接口的 IPv6 數據包。
當禁用(值為 0)時,系統僅處理本機的網絡流量,不會轉發數據包到其他網絡。
與 IPv4 的區別:
IPv4 的轉發控制在 /proc/sys/net/ipv4/ip_forward。
IPv6 的轉發控制在 /proc/sys/net/ipv6/conf/all/forwarding(全局設置)。
📜 參數取值及含義
值 | 行為描述 |
---|---|
0 | 禁用轉發(默認):系統作為終端主機,僅處理目標為本機的數據包。 |
1 | 啟用轉發:系統作為路由器,轉發目標非本機的 IPv6 數據包。 |
IPv6 是 forwarding
; IPv4 是 ip_forward
與 IPv4 的區別:
- IPv4 的轉發控制在
/proc/sys/net/ipv4/ip_forward
。 - IPv6 的轉發控制在
/proc/sys/net/ipv6/conf/all/forwarding
(全局設置)。
???????? ** 檢查 IPv4 轉發狀態**
cat /proc/sys/net/ipv4/ip_forward # 輸出 1 表示啟用
sysctl net.ipv4.ip_forward # 輸出 net.ipv4.ip_forward = 1
???????? ** 檢查 IPv6 轉發狀態**
cat /proc/sys/net/ipv6/conf/all/forwarding # 輸出 1 表示啟用
sysctl net.ipv6.conf.all.forwarding # 輸出 net.ipv6.conf.all.forwarding = 1
🔧 配置方法
???????? 臨時修改(重啟失效)
# 啟用 eth0 的 IPv6 轉發
echo 1 > /proc/sys/net/ipv6/conf/eth0/forwarding# 或使用 sysctl 命令
sysctl -w net.ipv6.conf.eth0.forwarding=1
???????? 永久生效
修改配置文件(如 /etc/sysctl.d/99-ipv6.conf
):
# 全局啟用所有接口的 IPv6 轉發
net.ipv6.conf.all.forwarding = 1# 僅對 eth0 生效
net.ipv6.conf.eth0.forwarding = 0
執行 sysctl -p
加載配置。
🌐 典型場景
???????? 1. IPv6 路由器部署
# 啟用轉發并配置防火墻(示例)
sysctl net.ipv6.conf.all.forwarding=1
ip6tables -A FORWARD -i eth0 -o eth1 -j ACCEPT
ip6tables -A FORWARD -i eth1 -o eth0 -j ACCEPT
???????? 2. 容器/虛擬化網絡
# 為 Docker 虛擬網橋啟用轉發
sysctl net.ipv6.conf.docker0.forwarding=1
???????? 3. 禁用轉發提升安全性
# 服務器環境下關閉轉發
sysctl net.ipv6.conf.all.forwarding=0
?? 注意事項
-
與 RA 的沖突
啟用轉發時(forwarding=1
),內核默認會 禁用 RA 接收(accept_ra=0
)。若需同時使用轉發和 SLAAC,需手動覆蓋:sysctl -w net.ipv6.conf.eth0.accept_ra=2 # 特殊模式允許 RA
-
防火墻配置
啟用轉發后,需配置ip6tables
允許流量通過:# 允許 NAT 轉換(如需) ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
-
接口優先級
- 具體接口(如
eth0
)的配置優先級高于all
和default
。 - 示例:
net.ipv6.conf.all.forwarding=0 # 全局禁用 net.ipv6.conf.eth0.forwarding=1 # eth0 例外啟用
- 具體接口(如
🔍 驗證與調試
-
檢查轉發狀態
sysctl net.ipv6.conf.all.forwarding
-
測試連通性
# 從客戶端 ping 另一網絡段的 IPv6 地址 ping6 2001:db8:cafe::1
-
抓包分析
tcpdump -i eth0 ip6 -vvv
📊 IPv4 vs IPv6 轉發對比
IPv4 | IPv6 | |
---|---|---|
參數路徑 | /proc/sys/net/ipv4/conf/*/forwarding | /proc/sys/net/ipv6/conf/*/forwarding |
默認值 | 0 | 0 |
NAT 依賴 | 高(IPv4 地址稀缺) | 低(地址空間充足) |
🌐 forwarding 筆記250404
2?? accept_ra
和 autoconf
和 forwarding
的關系
在 Linux 的 IPv6 網絡配置中,accept_ra
、autoconf
和 forwarding
是三個密切相關的核心參數,它們的組合直接影響設備在網絡中的角色(主機或路由器)和地址配置行為。以下是它們的關系詳解:
📊 核心關系總結
參數 | 作用 | 依賴關系 |
---|---|---|
accept_ra | 控制是否接收路由通告(RA)消息。 | 是 autoconf 生效的前提條件(需 accept_ra=1 )。 |
autoconf | 控制是否根據 RA 自動生成 IPv6 地址(SLAAC)。 | 依賴 accept_ra=1 ,且 RA 中需包含 A 標志。 |
forwarding | 控制是否啟用 IPv6 數據包轉發(路由器模式)。 | 啟用后(=1 ),內核默認禁用 accept_ra (需手動覆蓋)。 |
🌐 典型場景分析
???????? 1. 普通主機模式(默認)
- 目標:自動獲取 IPv6 地址,不轉發數據包。
- 配置:
forwarding=0 # 禁用轉發 accept_ra=1 # 接收 RA autoconf=1 # 自動配置地址
- 行為:
- 根據 RA 生成 SLAAC 地址(如
2001:db8::1a2b:3c4d
)。 - 僅處理目標為本機的數據包。
- 根據 RA 生成 SLAAC 地址(如
???????? 2. 純路由器模式
- 目標:轉發數據包,手動配置靜態地址。
- 配置:
forwarding=1 # 啟用轉發 accept_ra=0 # 禁用 RA 接收 autoconf=0 # 禁用自動配置
- 行為:
- 不接收 RA,需手動設置 IPv6 地址和路由。
- 轉發跨網段的數據包(需配合
ip6tables
規則)。
???????? 3. 混合模式(路由器 + SLAAC)
- 目標:作為路由器,但同時通過 RA 獲取地址。
- 配置:
forwarding=1 # 啟用轉發 accept_ra=2 # 特殊模式接受 RA(忽略默認路由優先級) autoconf=1 # 啟用自動配置
- 行為:
- 允許接收 RA 并生成地址,但轉發數據包。
- 需手動解決沖突(如確保防火墻允許 RA 消息)。
?? 關鍵沖突與解決
???????? 1. forwarding=1
自動禁用 accept_ra
- 問題:啟用轉發后,內核默認設置
accept_ra=0
,導致無法接收 RA。 - 解決方案:手動覆蓋配置:
sysctl -w net.ipv6.conf.eth0.forwarding=1 sysctl -w net.ipv6.conf.eth0.accept_ra=2 # 特殊模式允許 RA
???????? 2. RA 與防火墻沖突
- 問題:啟用轉發后,防火墻可能阻止 RA 消息。
- 解決方案:添加
ip6tables
規則:ip6tables -A INPUT -i eth0 -p icmpv6 --icmpv6-type router-advertisement -j ACCEPT ip6tables -A FORWARD -i eth0 -p icmpv6 --icmpv6-type router-advertisement -j ACCEPT
🔧 配置驗證方法
-
檢查參數值:
sysctl net.ipv6.conf.eth0.{accept_ra,autoconf,forwarding}
-
查看生成的 IPv6 地址:
ip -6 addr show dev eth0
-
測試轉發功能:
# 在客戶端 ping 另一網段的地址 ping6 2001:db8:cafe::1
-
抓包分析 RA:
tcpdump -i eth0 -vn icmp6 and "router advertisement"
📝 總結
accept_ra
是入口:決定是否處理 RA 消息,直接影響自動配置的可能性。autoconf
是執行者:在 RA 有效的前提下,觸發地址生成。forwarding
是角色開關:啟用后需謹慎協調前兩者,避免功能沖突。
通過合理配置這三個參數,可以靈活實現從智能家居設備到企業級路由器的全場景 IPv6 網絡架構。
🌐 accept_ra
和 autoconf
和 forwarding
的關系 筆記250404
2?? accept_ra_defrtr
accept_ra_defrtr
是 Linux 系統中控制 是否通過 IPv6 路由通告(RA)自動設置默認路由 的關鍵參數。以下是其詳細說明:
📜 參數定義
- 路徑:
/proc/sys/net/ipv6/conf/<接口>/accept_ra_defrtr
- 默認值:
1
(啟用,大多數系統的默認行為)。 - 作用:
當接口接收到包含默認路由信息的 RA 消息時,決定是否自動將 RA 中的默認路由添加到內核路由表。
🌐 工作原理
- 啟用狀態(
=1
):- 如果接收到的 RA 消息中包含默認路由(即
Router Lifetime
字段非零),系統會自動添加一條默認 IPv6 路由。 - 示例路由表項:
default via fe80::1 dev eth0 proto ra # RA 生成的默認路由
- 如果接收到的 RA 消息中包含默認路由(即
- 禁用狀態(
=0
):- 忽略 RA 中的默認路由信息,即使收到 RA 也不更新默認路由。
🛠? 配置方法
???????? 臨時修改(重啟失效)
# 禁用 eth0 的默認路由自動設置
sysctl -w net.ipv6.conf.eth0.accept_ra_defrtr=0# 啟用(恢復默認)
sysctl -w net.ipv6.conf.eth0.accept_ra_defrtr=1
???????? 永久生效
在配置文件(如 /etc/sysctl.d/99-ipv6.conf
)中添加:
# 禁用 eth0 的默認路由自動設置
net.ipv6.conf.eth0.accept_ra_defrtr = 0
執行 sysctl -p
加載配置。
🔍 驗證操作
- 查看當前參數值:
sysctl net.ipv6.conf.eth0.accept_ra_defrtr
- 檢查路由表:
ip -6 route show | grep "default" # 輸出示例(啟用時): # default via fe80::1 dev eth0 proto ra metric 1024 expires 1800sec
?? 依賴與沖突
accept_ra
必須啟用:
只有net.ipv6.conf.eth0.accept_ra=1
時,accept_ra_defrtr
才會生效。- 與
forwarding
的沖突:
若啟用 IPv6 轉發(net.ipv6.conf.eth0.forwarding=1
),內核默認禁用 RA 處理(需手動設置accept_ra=2
)。
🌟 典型場景
???????? 1. 家庭/辦公網絡
- 默認行為:保持
accept_ra_defrtr=1
,設備自動通過 RA 獲取默認網關(如家用路由器)。
???????? 2. 服務器/數據中心
- 禁用場景:若需手動配置靜態默認路由(避免不可控的 RA 干擾),設置
accept_ra_defrtr=0
。# 手動添加默認路由 ip -6 route add default via 2001:db8::1 dev eth0
???????? 3. 多宿主主機(多默認路由)
- 選擇性啟用:為特定接口啟用/禁用,控制不同網絡的默認路由優先級。
sysctl net.ipv6.conf.eth0.accept_ra_defrtr=1 # 主接口啟用 sysctl net.ipv6.conf.eth1.accept_ra_defrtr=0 # 備用接口禁用
📊 參數關系圖
通過合理配置 accept_ra_defrtr
,可以靈活控制 IPv6 默認路由的自動化與手動管理平衡。
accept_ra_defrtr 筆記250404
2?? accept_ra
和 accept_ra_defrtr
accept_ra
和 accept_ra_defrtr
是 Linux 系統中與 IPv6 路由通告(Router Advertisement, RA)密切相關的兩個參數,它們在功能上既有關聯又有分工。以下是它們的核心區別與協作關系:
📜 參數對比
參數 | 作用 | 默認值 | 依賴關系 |
---|---|---|---|
accept_ra | 控制接口是否處理路由通告(RA)消息。 | 1 (啟用) | 所有 RA 相關功能的前提條件。 |
accept_ra_defrtr | 控制是否通過 RA 消息設置默認路由(即網關)。 | 1 (啟用) | 僅在 accept_ra=1 時生效。 |
參數 | 作用 | 默認值 |
---|---|---|
accept_ra | 總開關:控制接口是否接受 RA 消息(影響所有 RA 相關功能)。 | 1 (啟用) |
accept_ra_defrtr | 子功能:在 RA 接受的基礎上,決定是否通過 RA 自動添加默認路由(默認網關)。 | 1 (啟用) |
🌐 協作機制
-
accept_ra=1
時:- 接口會接收并處理 RA 消息,但具體行為由子參數(如
accept_ra_defrtr
)進一步控制。 - 若
accept_ra_defrtr=1
:- 根據 RA 中的
Router Lifetime
字段添加默認路由。 - 示例路由表:
default via fe80::1 dev eth0 proto ra # RA 生成的默認路由
- 根據 RA 中的
- 若
accept_ra_defrtr=0
:- 忽略 RA 中的默認路由信息,但其他 RA 功能(如地址自動配置)仍生效。
- 接口會接收并處理 RA 消息,但具體行為由子參數(如
-
accept_ra=0
時:- 接口完全忽略 RA 消息,所有 RA 子參數(包括
accept_ra_defrtr
)失效。 - 此時需手動配置 IPv6 地址和路由。
- 接口完全忽略 RA 消息,所有 RA 子參數(包括
🛠? 典型場景
???????? 1. 家用網絡(自動配置)
# 啟用 RA 處理,并自動設置默認路由
sysctl net.ipv6.conf.eth0.accept_ra=1
sysctl net.ipv6.conf.eth0.accept_ra_defrtr=1
- 效果:設備自動獲取 IPv6 地址和默認網關。
???????? 2. 服務器環境(手動路由)
# 接收 RA 生成地址,但禁用默認路由自動設置
sysctl net.ipv6.conf.eth0.accept_ra=1
sysctl net.ipv6.conf.eth0.accept_ra_defrtr=0
- 效果:通過 SLAAC 生成地址,但手動指定默認路由:
ip -6 route add default via 2001:db8::1
???????? 3. 路由器設備(禁用 RA 處理)
# 完全禁用 RA 處理
sysctl net.ipv6.conf.eth0.accept_ra=0
- 效果:需手動配置所有 IPv6 參數。
🔍 驗證方法
-
檢查參數值:
sysctl net.ipv6.conf.eth0.{accept_ra,accept_ra_defrtr}
-
查看默認路由:
ip -6 route show | grep "default"
-
抓包分析 RA:
tcpdump -i eth0 -vvv icmp6 and "router advertisement"
?? 注意事項
-
與
forwarding
的沖突:
若啟用 IPv6 轉發(net.ipv6.conf.eth0.forwarding=1
),內核默認設置accept_ra=0
,需手動覆蓋:sysctl -w net.ipv6.conf.eth0.accept_ra=2 # 允許接收 RA
-
多接口優先級:
在多網卡設備中,可為不同接口設置不同策略:# eth0 作為 WAN 口,自動獲取默認路由 sysctl net.ipv6.conf.eth0.accept_ra_defrtr=1# eth1 作為 LAN 口,不設置默認路由 sysctl net.ipv6.conf.eth1.accept_ra_defrtr=0
🌐 accept_ra
和 accept_ra_defrtr
筆記250404
2?? Linux的 sysctl
命令
sysctl
是 Linux 系統中用于 動態查看和修改內核運行時參數 的核心工具。它通過 /proc/sys/
目錄的虛擬文件系統接口,允許用戶在不重啟系統的前提下調整內核行為,涵蓋網絡、內存、文件系統等關鍵功能。
📜 核心功能
- 實時查看內核參數
- 臨時修改內核配置
- 永久保存配置變更
🔧 基本語法
sysctl [選項] [參數=值]
常用選項 | 說明 |
---|---|
-a | 顯示所有可用參數 |
-w | 臨時修改參數(如 sysctl -w param=value ) |
-p | 從配置文件加載參數 |
-e | 忽略未知參數的錯誤 |
🌰 典型用法
???????? 查看參數
# 查看所有參數(按分類展開)
sysctl -a# 查看特定參數(如 IPv6 轉發)
sysctl net.ipv6.conf.all.forwarding
???????? 臨時修改參數
# 啟用 IPv4 轉發
sysctl -w net.ipv4.ip_forward=1# 禁用 IPv6 RA 接收(針對 eth0)
sysctl -w net.ipv6.conf.eth0.accept_ra=0
???????? 永久修改參數
- 編輯配置文件(通常為
/etc/sysctl.conf
或/etc/sysctl.d/*.conf
):# 示例:優化 TCP 擁塞控制 net.core.rmem_max = 16777216 net.ipv4.tcp_congestion_control = bbr
- 加載配置:
sysctl -p /etc/sysctl.conf # 加載指定文件 sysctl -p # 加載所有配置文件(包括 /etc/sysctl.d/)
功能 | 命令示例 | 說明 |
---|---|---|
查看單個參數 | sysctl kernel.hostname | 顯示當前主機名。 |
查看所有參數 | sysctl -a | 列出所有可調整的內核參數。 |
臨時修改參數 | sysctl -w net.ipv4.ip_forward=1 | 立即生效,但重啟后失效。 |
從文件加載配置 | sysctl -p /etc/sysctl.conf | 加載配置文件中的參數。 |
隱藏敏感信息 | sysctl -q kernel.randomize_va_space | 靜默模式(不顯示錯誤)。 |
???????? 網絡優化
參數 | 作用 | 推薦值 |
---|---|---|
net.ipv4.tcp_syncookies | 防御 SYN 洪水攻擊 | 1 |
net.ipv4.tcp_tw_reuse | 允許復用 TIME-WAIT 狀態的端口 | 1 |
net.core.somaxconn | 調整最大連接隊列長度 | 4096 |
net.ipv6.conf.all.accept_ra | 控制 IPv6 路由器廣播接受(見前文) | 1 或 0 |
???????? 內存與文件系統
參數 | 作用 | 推薦值 |
---|---|---|
vm.swappiness | 控制交換分區使用傾向(0-100) | 10 |
vm.overcommit_memory | 內存分配策略(0=保守,1=總是允許,2=拒絕超限) | 0 或 2 |
fs.file-max | 系統最大文件句柄數 | 2097152 |
???????? 安全加固
參數 | 作用 | 推薦值 |
---|---|---|
kernel.exec-shield | 防御緩沖區溢出攻擊(僅 x86) | 1 |
kernel.randomize_va_space | 啟用地址空間隨機化(ASLR) | 2 |
net.ipv4.conf.all.accept_redirects | 禁止接受 ICMP 重定向(防攻擊) | 0 |
📂 配置文件優先級 (多種說法待驗證)
/etc/sysctl.conf
- 傳統主配置文件(建議僅用于全局基礎設置)。
/etc/sysctl.d/*.conf
- 模塊化配置文件(優先級高于
sysctl.conf
,按文件名排序加載)。
- 模塊化配置文件(優先級高于
/run/sysctl.d/*.conf
- 臨時運行時配置(重啟后失效)。
系統按以下順序加載配置(后加載的覆蓋前者的沖突項):
/etc/sysctl.d/*.conf
(按文件名升序)/run/sysctl.d/*.conf
/usr/lib/sysctl.d/*.conf
/etc/sysctl.conf
?? 注意事項
-
參數路徑轉換
sysctl
參數名與/proc/sys/
路徑的對應關系:# 例如: sysctl net.ipv4.ip_forward → /proc/sys/net/ipv4/ip_forward sysctl kernel.hostname → /proc/sys/kernel/hostname
-
參數作用范圍
- 全局參數(如
net.ipv4.ip_forward
)影響整個系統。 - 接口級參數(如
net.ipv6.conf.eth0.accept_ra
)僅針對特定接口。
- 全局參數(如
-
安全操作
- 測試變更:生產環境中建議先臨時修改 (
sysctl -w
),驗證后再持久化。 - 備份配置:修改前備份文件:
cp /etc/sysctl.conf /etc/sysctl.conf.bak
- 測試變更:生產環境中建議先臨時修改 (
🛠? 實際場景示例
???????? 1. 優化網絡性能
# 臨時增大 TCP 接收緩沖區
sysctl -w net.core.rmem_max=16777216# 永久啟用 TCP BBR 擁塞控制
echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.d/99-network.conf
sysctl -p
???????? 2. 增強系統安全
# 禁用 ICMP 重定向
sysctl -w net.ipv4.conf.all.accept_redirects=0# 阻止 SYN 洪水攻擊
sysctl -w net.ipv4.tcp_syncookies=1
???????? 3. 調試內核行為
# 啟用內核 panic 后自動重啟(60 秒后)
sysctl -w kernel.panic=60# 查看當前 PID 最大值
sysctl kernel.pid_max
🔍 擴展知識
- 內核參數文檔:可通過
man sysctl
和man sysctl.d
查看手冊。 - 動態參數:部分參數為只讀(如
kernel.osrelease
),無法修改。 - 系統限制:某些參數受硬件或內核版本限制(如
vm.max_map_count
)。
通過 sysctl
,管理員可以精細調控 Linux 系統的行為,從網絡優化到安全加固,成為系統調優不可或缺的工具。
🌐 Linux的 sysctl
命令 筆記250404
2?? accept_ra
和 accept_ra_defrtr
和 ra_defrtr_metric
以下是 Linux 系統中與 IPv6 路由通告(RA)相關的三個關鍵參數 accept_ra
、accept_ra_defrtr
和 ra_defrtr_metric
的詳細說明及協作關系:
📜 參數定義與功能
參數 | 作用 | 默認值 | 依賴關系 |
---|---|---|---|
accept_ra | 控制接口是否處理路由通告(RA)消息。 | 1 (啟用) | 所有 RA 相關功能的前提條件。 |
accept_ra_defrtr | 是否通過 RA 消息設置默認路由(網關)。 | 1 (啟用) | 僅在 accept_ra=1 時生效。 |
ra_defrtr_metric | 設置 RA 生成的默認路由的度量值(優先級,metric 值越低優先級越高)。 | 1024 或 0 | 僅在 accept_ra_defrtr=1 時生效。 |
參數 | 作用 | 默認值 | 依賴關系 |
---|---|---|---|
accept_ra | 總開關:控制接口是否接受 RA 消息(影響所有 RA 相關功能)。 | 1 (啟用) | 無 |
accept_ra_defrtr | 子功能:在 RA 接受的基礎上,決定是否自動添加默認路由(默認網關)。 | 1 (啟用) | 需 accept_ra=1 |
ra_defrtr_metric | 設置通過 RA 添加的默認路由的優先級(metric 值,數值越小優先級越高)。 | 1024 有的說是 0 | 需 accept_ra_defrtr=1 |
🌐 協作機制
-
基礎流程:
- 若
accept_ra=1
→ 接口接收并處理 RA 消息。 - 若
accept_ra_defrtr=1
→ 根據 RA 中的默認路由信息生成路由條目。 - 若
ra_defrtr_metric=自定義值
→ 設置該路由的優先級。
- 若
-
典型配置示例:
# 啟用 RA 處理 sysctl net.ipv6.conf.eth0.accept_ra=1# 允許通過 RA 設置默認路由 sysctl net.ipv6.conf.eth0.accept_ra_defrtr=1# 設置默認路由的優先級為 100(低于默認的 1024) sysctl net.ipv6.conf.eth0.ra_defrtr_metric=100
-
路由表示例:
default via fe80::1 dev eth0 proto ra metric 100 # 優先級高于默認的 1024
🔧 典型場景
???????? 1. 多宿主網絡(多默認路由)
- 需求:設備通過兩個接口(
eth0
和eth1
)連接不同網絡,需指定主備路由。 - 配置:
# eth0(主鏈路,高優先級) sysctl net.ipv6.conf.eth0.ra_defrtr_metric=100# eth1(備用鏈路,低優先級) sysctl net.ipv6.conf.eth1.ra_defrtr_metric=200
- 效果:流量優先通過
eth0
,當其斷開時自動切換到eth1
。
???????? 2. 禁用默認路由自動設置
- 需求:允許 RA 生成地址,但禁止設置默認路由。
- 配置:
sysctl net.ipv6.conf.eth0.accept_ra=1 sysctl net.ipv6.conf.eth0.accept_ra_defrtr=0
- 效果:接口通過 SLAAC 生成 IPv6 地址,但需手動添加默認路由。
???????? 3. 調整路由優先級
- 需求:確保靜態路由優先于 RA 生成的默認路由。
- 配置:
sysctl -w net.ipv6.conf.eth0.accept_ra=1 sysctl -w net.ipv6.conf.eth0.accept_ra_defrtr=1 # 設置 RA 默認路由的優先級為 500(高于靜態路由的默認值 100) sysctl net.ipv6.conf.eth0.ra_defrtr_metric=500# 添加靜態路由(優先級 100) ip -6 route add default via 2001:db8::1 metric 100
- 效果:靜態路由(metric=100)優先級高于 RA 路由(metric=500)。
???????? 4. 持久化配置
- 通過
/etc/sysctl.conf
或/etc/sysctl.d/
目錄保存配置:# 創建自定義配置文件 echo "net.ipv6.conf.eth0.accept_ra = 1" >> /etc/sysctl.d/99-ipv6.conf echo "net.ipv6.conf.eth0.accept_ra_defrtr = 1" >> /etc/sysctl.d/99-ipv6.conf echo "net.ipv6.conf.eth0.ra_defrtr_metric = 500" >> /etc/sysctl.d/99-ipv6.conf# 加載配置 sysctl -p /etc/sysctl.d/99-ipv6.conf
🔍 驗證與調試
-
查看參數值:
sysctl net.ipv6.conf.eth0.{accept_ra,accept_ra_defrtr,ra_defrtr_metric}
sudo sysctl -a | grep -E 'accept_ra|accept_ra_defrtr|ra_defrtr_metric'
-
檢查路由表:
ip -6 route show | grep "default"
-
抓包分析 RA:
tcpdump -i eth0 -vvv icmp6 and "router advertisement"
?? 注意事項
-
參數優先級:
- 接口級配置(如
eth0
)優先級高于全局配置(all
或default
)。
- 接口級配置(如
-
與
forwarding
的沖突:- 若啟用 IPv6 轉發(
net.ipv6.conf.eth0.forwarding=1
),內核默認禁用 RA 處理(需手動設置accept_ra=2
)。
- 若啟用 IPv6 轉發(
-
持久化配置:
# 將配置寫入文件(如 /etc/sysctl.d/99-ipv6.conf) echo "net.ipv6.conf.eth0.ra_defrtr_metric = 100" >> /etc/sysctl.d/99-ipv6.conf sysctl -p
🧠🌐 accept_ra
和 accept_ra_defrtr
和 ra_defrtr_metric
筆記250405
2?? ra_defrtr_metric
ra_defrtr_metric
是 Linux 系統中用于控制 通過 IPv6 路由通告(RA)生成的默認路由的優先級(Metric) 的關鍵參數。以下是其詳細說明:
📜 參數定義
- 路徑:
/proc/sys/net/ipv6/conf/<接口>/ra_defrtr_metric
- 默認值:
1024
(大多數系統的默認值)。 - 作用:
設置通過 RA 消息生成的默認路由的 度量值(Metric),值越低優先級越高。
🌐 工作原理
-
Metric 的作用:
- Metric 表示路由的優先級,范圍通常為
0
(最高優先級)到4294967295
(最低優先級)。 - 系統會選擇 Metric 值最小的路由作為首選路由。
- Metric 表示路由的優先級,范圍通常為
-
與 RA 的關系:
- 僅當以下條件滿足時,
ra_defrtr_metric
才會生效:accept_ra=1
(啟用 RA 處理)。accept_ra_defrtr=1
(允許通過 RA 設置默認路由)。
- 僅當以下條件滿足時,
🛠? 配置方法
???????? 臨時修改(重啟失效)
# 設置 eth0 的 RA 默認路由優先級為 100(比默認的 1024 更高優先級)
sysctl -w net.ipv6.conf.eth0.ra_defrtr_metric=100
???????? 永久生效
在配置文件(如 /etc/sysctl.d/99-ipv6.conf
)中添加:
net.ipv6.conf.eth0.ra_defrtr_metric = 100
執行 sysctl -p
加載配置。
🔍 驗證操作
-
查看參數值:
sysctl net.ipv6.conf.eth0.ra_defrtr_metric
-
檢查路由表:
ip -6 route show | grep "default" # 輸出示例: # default via fe80::1 dev eth0 proto ra metric 100
🌟 典型場景
???????? 1. 多宿主網絡(主備鏈路)
- 需求:設備通過
eth0
(主鏈路)和eth1
(備用鏈路)連接不同網絡。 - 配置:
# 主鏈路(高優先級) sysctl net.ipv6.conf.eth0.ra_defrtr_metric=100# 備用鏈路(低優先級) sysctl net.ipv6.conf.eth1.ra_defrtr_metric=200
- 效果:流量優先通過
eth0
,當eth0
斷開時自動切換到eth1
。
???????? 2. 優先靜態路由
- 需求:確保手動配置的靜態路由優先級高于 RA 生成的默認路由。
- 配置:
# 設置 RA 默認路由的優先級為 500 sysctl net.ipv6.conf.eth0.ra_defrtr_metric=500# 添加靜態路由(優先級 100) ip -6 route add default via 2001:db8::1 metric 100
- 效果:靜態路由(metric=100)優先于 RA 路由(metric=500)。
?? 注意事項
-
依賴參數:
ra_defrtr_metric
僅在accept_ra=1
且accept_ra_defrtr=1
時生效。 -
與
forwarding
的沖突:
若啟用 IPv6 轉發(forwarding=1
),需手動設置accept_ra=2
以允許接收 RA。 -
接口優先級:
不同接口的ra_defrtr_metric
可獨立設置,實現靈活的路由策略。
🧠🌐 ra_defrtr_metric 筆記250405
2?? Metric 的作用:
Metric(度量值) 是網絡路由中用于 判斷路由路徑優先級的核心指標。其作用可概括為以下三點:
1. 路由優先級決策
- 定義:Metric 值表示到達目標網絡的路徑“成本”,值越低表示路徑越優。
- 選擇邏輯:當存在多條通往同一目標網絡的路由時,系統優先選擇 Metric 值最小 的路由。
- 示例:
# 路由表中有兩條默認路由: default via 2001:db8::1 dev eth0 metric 100 # 優先級高(Metric=100) default via 2001:db8::2 dev eth1 metric 200 # 優先級低(Metric=200)
- 系統會優先通過
eth0
發送流量。
- 系統會優先通過
2. 路由協議差異化
不同路由協議使用不同的 Metric 計算方式,反映路徑的“成本”維度:
路由協議 | Metric 計算依據 | 適用場景 |
---|---|---|
RIP | 跳數(經過的路由器數量) | 小型網絡,簡單優先級判斷 |
OSPF | 帶寬、延遲、鏈路成本 | 企業級網絡,動態路徑優化 |
BGP | AS 路徑長度、策略規則 | 互聯網骨干網,跨自治系統路由 |
靜態路由 | 手動指定(如 ra_defrtr_metric ) | 精準控制特定接口或路徑優先級 |
3. 網絡容災與負載均衡
-
主備鏈路切換:
通過為不同接口設置差異化的 Metric 值,實現自動故障轉移。
示例:# 主鏈路(eth0)優先級更高 net.ipv6.conf.eth0.ra_defrtr_metric = 100# 備用鏈路(eth1)優先級更低 net.ipv6.conf.eth1.ra_defrtr_metric = 200
- 當
eth0
斷開時,流量自動切換到eth1
。
- 當
-
負載均衡:
為多條路徑設置相同 Metric 值,系統將均衡分配流量(需協議支持)。
🔧 Metric 的實際調整場景
???????? 場景 1:優先有線網絡
# 有線接口(eth0)高優先級
net.ipv6.conf.eth0.ra_defrtr_metric = 100# 無線接口(wlan0)低優先級
net.ipv6.conf.wlan0.ra_defrtr_metric = 200
???????? 場景 2:靜態路由優先于動態路由
# 動態路由(RA 生成)的優先級較低
net.ipv6.conf.eth0.ra_defrtr_metric = 500# 添加靜態路由(更高優先級)
ip -6 route add default via 2001:db8::1 metric 100
📊 Metric 值范圍
系統/協議 | 典型 Metric 范圍 |
---|---|
Linux 靜態路由 | 0-4294967295(默認 1024) |
Windows | 0-9999 |
Cisco 路由器 | 0-255(依協議不同) |
?? 注意事項
- 協議兼容性:不同設備或系統對 Metric 的解釋可能不同,需確保跨設備一致性。
- 動態路由協議:OSPF/BGP 等協議會自動計算 Metric,手動干預需謹慎。
- IPv6 特殊性:IPv6 的
ra_defrtr_metric
僅影響 RA 生成的默認路由,不影響其他路由條目。
通過合理配置 Metric,可實現網絡流量的智能調度,提升性能與可靠性。
🧠🌐 metric 筆記250405
2?? use_tempaddr 使用臨時地址
use_tempaddr
是 Linux 系統中用于控制 IPv6 臨時隱私地址生成策略 的關鍵參數。以下是其詳細說明:
📜 參數定義
- 路徑:
/proc/sys/net/ipv6/conf/<接口>/use_tempaddr
- 默認值:
1
(大多數系統的默認行為)。 - 作用:
決定是否為接口生成 IPv6 臨時隱私地址,以增強網絡通信的匿名性。
🌐 參數取值與行為
值 | 行為 |
---|---|
0 | 禁用臨時地址:僅生成基于 EUI-64 的穩定 IPv6 地址。 |
1 | 啟用臨時地址:生成臨時地址,但優先使用穩定地址進行通信。 |
2 | 優先使用臨時地址:生成臨時地址,并優先使用臨時地址進行通信(隱私最優)。 |
🛠? 配置方法
???????? 1. 臨時修改
# 為 eth0 啟用臨時地址并優先使用(值=2)
sysctl -w net.ipv6.conf.eth0.use_tempaddr=2# 或直接寫入 /proc
echo 2 > /proc/sys/net/ipv6/conf/eth0/use_tempaddr
???????? 2. 永久生效
在配置文件(如 /etc/sysctl.d/99-ipv6.conf
)中添加:
net.ipv6.conf.eth0.use_tempaddr = 2
執行以下命令加載配置:
sysctl -p /etc/sysctl.d/99-ipv6.conf
🔍 驗證操作
-
查看參數值:
sysctl net.ipv6.conf.eth0.use_tempaddr
-
檢查臨時地址:
ip -6 addr show dev eth0 # 輸出示例: # inet6 2001:db8::1234:5678:9012:3456/64 scope global temporary dynamic # valid_lft 604800sec preferred_lft 86400sec
🌟 典型場景
???????? 1. 移動設備(高隱私需求)
# 優先使用臨時地址
sysctl net.ipv6.conf.wlan0.use_tempaddr=2# 縮短生命周期以加快輪換
sysctl net.ipv6.conf.wlan0.temp_valid_lft=86400 # 有效期為 1 天
sysctl net.ipv6.conf.wlan0.temp_prefered_lft=43200 # 首選周期為 12 小時
???????? 2. 服務器(兼容性優先)
# 禁用臨時地址
sysctl net.ipv6.conf.eth0.use_tempaddr=0
???????? 3. 家庭網絡(平衡隱私與便利)
# 啟用臨時地址但不優先使用
sysctl net.ipv6.conf.eth0.use_tempaddr=1
?? 注意事項
-
依賴參數:
- 需啟用
autoconf=1
(通過 SLAAC 自動配置地址)。 - 臨時地址的生命周期由
temp_valid_lft
和temp_prefered_lft
控制。
- 需啟用
-
兼容性問題:
- 某些服務(如 IP 白名單)依賴固定地址,需謹慎啟用
use_tempaddr=2
。
- 某些服務(如 IP 白名單)依賴固定地址,需謹慎啟用
-
日志與監控:
- 臨時地址頻繁變更會增加網絡日志分析的復雜度。
📊 臨時地址 vs 穩定地址
特性 | 臨時地址 | 穩定地址(EUI-64) |
---|---|---|
隱私性 | 高(隨機后綴) | 低(基于 MAC 地址) |
可追溯性 | 難 | 易 |
適用場景 | 終端設備(如手機、筆記本) | 服務器、網絡設備 |
🧠🌐 use_tempaddr 筆記250405
2?? use_tempaddr
和 temp_valid_lft
和 temp_prefered_lft
以下是 Linux 系統中與 IPv6 臨時隱私地址相關的三個關鍵參數 use_tempaddr
、temp_valid_lft
和 temp_prefered_lft
的詳細說明及協作關系:
📜 參數定義與功能
參數 | 作用 | 默認值 | 依賴關系 |
---|---|---|---|
use_tempaddr | 控制是否生成 IPv6 臨時隱私地址,并指定其使用優先級。 | 1 (啟用) | 需 autoconf=1 (啟用地址自動配置)。 |
temp_valid_lft | 定義臨時地址的 總有效時間(從生成到失效)。 | 604800 (7天) | 僅在 use_tempaddr=1 或 2 時生效。 |
temp_prefered_lft | 定義臨時地址的 首選時間(在此期間地址處于“首選”狀態,之后進入“廢棄”狀態)。 | 86400 (1天) | 必須 ≤ temp_valid_lft 。 |
🌐 協作機制
-
地址生成流程:
- 步驟 1:
use_tempaddr=1
或2
→ 系統生成臨時地址。 - 步驟 2:
temp_prefered_lft
定義地址的“首選有效期”(在此期間地址優先用于新連接)。 - 步驟 3:
temp_valid_lft
定義地址的“總有效期”(超時后地址被刪除)。
- 步驟 1:
-
生命周期示例:
# 假設配置: use_tempaddr=2 temp_prefered_lft=43200 # 12 小時 temp_valid_lft=86400 # 24 小時
- 前 12 小時:地址為首選狀態,用于所有新連接。
- 12-24 小時:地址為廢棄狀態,僅處理現有連接,不用于新連接。
- 24 小時后:地址被移除。
🛠? 配置方法
???????? 1. 臨時地址全配置示例
# 啟用臨時地址并優先使用
sysctl -w net.ipv6.conf.eth0.use_tempaddr=2# 設置總有效期為 2 天(172800 秒)
sysctl -w net.ipv6.conf.eth0.temp_valid_lft=172800# 設置首選時間為 6 小時(21600 秒)
sysctl -w net.ipv6.conf.eth0.temp_prefered_lft=21600
???????? 2. 永久生效
在配置文件(如 /etc/sysctl.d/99-ipv6.conf
)中添加:
net.ipv6.conf.eth0.use_tempaddr = 2
net.ipv6.conf.eth0.temp_valid_lft = 172800
net.ipv6.conf.eth0.temp_prefered_lft = 21600
執行 sysctl -p
加載配置。
🔍 驗證操作
-
查看參數值:
sysctl net.ipv6.conf.eth0.{use_tempaddr,temp_valid_lft,temp_prefered_lft}
-
檢查地址狀態:
ip -6 addr show dev eth0 # 輸出示例: # inet6 2001:db8::1234:5678:9012:3456/64 scope global temporary dynamic # valid_lft 172800sec preferred_lft 21600sec
🌟 典型場景
???????? 1. 移動設備(高隱私保護)
# 優先使用臨時地址,快速輪換
sysctl net.ipv6.conf.wlan0.use_tempaddr=2
sysctl net.ipv6.conf.wlan0.temp_prefered_lft=21600 # 6 小時
sysctl net.ipv6.conf.wlan0.temp_valid_lft=86400 # 24 小時
???????? 2. 服務器(禁用臨時地址)
# 完全禁用臨時地址
sysctl net.ipv6.conf.eth0.use_tempaddr=0
???????? 3. 平衡隱私與穩定性
# 啟用臨時地址但不優先使用
sysctl net.ipv6.conf.eth0.use_tempaddr=1
sysctl net.ipv6.conf.eth0.temp_prefered_lft=604800 # 7 天
sysctl net.ipv6.conf.eth0.temp_valid_lft=1209600 # 14 天
?? 注意事項
-
參數邏輯約束:
temp_prefered_lft
必須 ≤temp_valid_lft
,否則地址可能提前失效。
-
依賴服務:
- 臨時地址的生成需滿足以下條件:
autoconf=1
(啟用 SLAAC 地址自動配置)。accept_ra=1
(接受路由通告)。
- 臨時地址的生成需滿足以下條件:
-
網絡轉發沖突:
- 若啟用 IPv6 轉發(
forwarding=1
),需設置accept_ra=2
以允許接收 RA。
- 若啟用 IPv6 轉發(
📊 生命周期狀態圖
🧠🌐 use_tempaddr
和 temp_valid_lft
和 temp_prefered_lft
筆記250405
2?? Linux的 /proc
目錄
/proc
是 Linux 系統中一個特殊的 虛擬文件系統 (procfs),它并非存儲在磁盤上,而是由內核動態生成,用于提供 內核與進程的實時運行時信息。它像一條紐帶連接著用戶空間與內核空間,提供系統運行時內核和進程的實時信息。
虛擬性:不占用磁盤空間,所有文件僅存于內存中。
動態性:文件內容實時生成,反映系統當前狀態。
📂 核心目錄結構
/proc/
├── <PID>/ # 每個進程的詳細信息(如 `/proc/1/` 對應 init 進程)
├── sys/ # 內核參數動態控制接口(對應 `sysctl` 命令)
├── net/ # 網絡協議棧狀態(如 ARP 表、連接統計)
├── cpuinfo # CPU 硬件規格(型號、核心數、頻率)
├── meminfo # 內存使用詳情(總量、空閑、緩存)
├── interrupts # 硬件中斷分配情況
├── modules # 已加載內核模塊列表
├── version # 內核版本信息
└── ...
/proc/
├── [PID]/ # 每個進程的獨立目錄(PID 為進程號)
│ ├── cmdline # 進程啟動命令
│ ├── status # 進程狀態(內存、用戶、線程等)
│ ├── fd/ # 進程打開的文件描述符
│ └── ...
├── cpuinfo # CPU 型號、核心數、頻率等
├── meminfo # 內存總量、使用情況
├── modules # 已加載的內核模塊
├── mounts # 已掛載的文件系統
├── partitions # 磁盤分區信息
├── version # 內核版本和編譯信息
├── sys/ # 內核參數配置
└── ...
🔍 核心功能
-
內核與進程監控
- 查看進程資源:通過
/proc/<PID>/
目錄中的文件(如status
、io
、smaps
)可獲取進程的 CPU、內存、文件 I/O 等使用情況。 - 示例命令:
cat /proc/1/status # 查看 init 進程狀態
- 查看進程資源:通過
-
硬件信息查詢
- CPU 詳情:
cat /proc/cpuinfo | grep "model name"
- 內存統計:
grep -i "MemTotal\|MemFree" /proc/meminfo
- CPU 詳情:
-
動態內核調優
- 網絡參數(如 IPv6 配置):
# 查看 eth0 的 IPv6 轉發狀態 cat /proc/sys/net/ipv6/conf/eth0/forwarding
- 系統級限制(如最大文件打開數):
cat /proc/sys/fs/file-max
- 網絡參數(如 IPv6 配置):
🛠? 典型應用場景
???????? 1. 調試進程行為
# 查看進程 1234 打開的文件句柄
ls -l /proc/1234/fd# 分析進程內存映射
cat /proc/1234/maps
???????? 2. 網絡性能優化
# 調整 TCP 緩沖區大小(臨時生效)
echo 16777216 > /proc/sys/net/core/rmem_max
???????? 3. 硬件中斷均衡
# 查看 IRQ 分配情況
cat /proc/interrupts | grep eth0
???????? 4. 內核模塊管理
# 確認模塊是否加載
grep nvidia /proc/modules
?? 注意事項
-
文件讀寫性質
- 只讀文件(如
/proc/cpuinfo
):僅用于信息展示。 - 可寫文件(如
/proc/sys/
下的參數):可直接修改(需 root 權限),但重啟后失效。
- 只讀文件(如
-
持久化配置
- 通過
sysctl -w
或修改/etc/sysctl.conf
永久保存內核參數變更,而非直接寫入/proc/sys/
。
- 通過
-
實時性
/proc
中的內容 動態生成,每次讀取均反映系統最新狀態(如/proc/meminfo
)。
📊 與 sysctl
的關系
/proc/sys/
目錄是sysctl
命令的底層實現。# 以下命令等效 sysctl net.ipv4.ip_forward cat /proc/sys/net/ipv4/ip_forward
通過 /proc
,Linux 將內核與用戶空間的交互透明化,成為系統管理員和開發者進行性能分析、故障排查及實時調優的必備工具。
🧠🌐 Linux的 /proc
目錄 筆記250404
2?? Linux的 /etc/sysctl.conf
/etc/sysctl.conf
是 Linux 系統中用于 永久修改內核運行時參數 的核心配置文件。它通過 sysctl
工具實現參數的持久化存儲,確保系統重啟后配置依然生效。以下是其詳細說明:
📂 備份/etc/sysctl.conf
tempPathUriA1=/etc/sysctl.conf ; sudo cp -a ${tempPathUriA1} ${tempPathUriA1}.$(date +%0y%0m%0d_%0H%0M%0S_ns%0N).bak
📂 文件作用與位置
- 路徑:
/etc/sysctl.conf
- 功能:定義需持久化的內核參數鍵值對(如網絡、內存、文件系統等配置)。
- 擴展配置:現代系統通常推薦將自定義配置放在
/etc/sysctl.d/*.conf
文件中,以模塊化管理。
📜 配置文件語法
-
基本格式:
# 注釋行(以 # 開頭) 參數名 = 值
- 示例:
# 啟用 IPv4 轉發 net.ipv4.ip_forward = 1 # 禁用 IPv6 RA 接收(針對 eth0) net.ipv6.conf.eth0.accept_ra = 0
- 示例:
-
參數路徑規則:
- 參數名對應
/proc/sys/
的路徑,將點(.
)替換為斜杠(/
)。# sysctl.conf 中的參數: net.ipv4.ip_forward = 1 # 對應路徑: /proc/sys/net/ipv4/ip_forward
- 參數名對應
🔄 配置加載順序
系統啟動時按以下順序加載配置(后加載的配置覆蓋前者的沖突項):
/etc/sysctl.conf
/etc/sysctl.d/*.conf
(按文件名字母順序加載)。
🛠? 操作指南
???????? 1. 修改配置文件
# 編輯主配置文件
sudo nano /etc/sysctl.conf# 或創建自定義配置文件(推薦)
sudo nano /etc/sysctl.d/99-custom.conf
???????? 2. 手動加載配置
# 加載所有配置文件(包括 /etc/sysctl.d/)
sudo sysctl --system# 加載所有配置文件(包括 sysctl.d/)
sudo sysctl -p# 加載指定文件
sudo sysctl -p /etc/sysctl.d/99-custom.conf
???????? 3. 驗證參數
# 檢查參數是否生效
sysctl 參數名
# 示例:
sysctl net.ipv4.ip_forward
🌟 典型配置示例
???????? 1. 網絡優化
# 啟用 IPv4/IPv6 轉發
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1# 增大 TCP 緩沖區
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
???????? 2. 安全加固
# 禁用 ICMP 重定向
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0# 阻止 SYN 洪水攻擊
net.ipv4.tcp_syncookies = 1
???????? 3. IPv6 配置
# 禁用 eth0 的 RA 接收
net.ipv6.conf.eth0.accept_ra = 0# 啟用臨時隱私地址
net.ipv6.conf.all.use_tempaddr = 2
???????? 4. 網絡優化
參數 | 作用 | 推薦值 | 適用場景 |
---|---|---|---|
net.ipv4.ip_forward | 啟用 IPv4 數據包轉發 | 0 | 主機設為 0 ,路由器設為 1 |
net.core.somaxconn | 最大連接隊列長度(預防 SYN 洪水攻擊) | 4096 | 高并發服務器 |
net.ipv4.tcp_tw_reuse | 允許復用 TIME-WAIT 狀態的端口 | 1 | Web 服務器 |
net.ipv6.conf.all.accept_ra | 控制 IPv6 路由器廣播接受(見前文) | 1 或 0 | 根據網絡安全策略調整 |
???????? 5. 內存與交換分區
參數 | 作用 | 推薦值 | 說明 |
---|---|---|---|
vm.swappiness | 控制交換分區使用傾向(0-100) | 10 | 物理內存充足時降低此值 |
vm.overcommit_memory | 內存分配策略(0=保守,1=總是允許,2=拒絕超限) | 0 或 2 | 數據庫服務器建議設為 2 |
vm.dirty_ratio | 內存臟數據達到總內存的百分比時強制寫盤 | 20 | 減少 I/O 突增 |
???????? 6. 安全加固
參數 | 作用 | 推薦值 | 說明 |
---|---|---|---|
kernel.exec-shield | 防御緩沖區溢出攻擊(僅 x86) | 1 | 需內核支持 |
net.ipv4.conf.all.accept_redirects | 禁止接受 ICMP 重定向(防中間人攻擊) | 0 | 所有接口生效 |
fs.protected_hardlinks | 禁止普通用戶修改系統硬鏈接 | 1 | 提升文件系統安全 |
???????? 網絡優化
- 連接隊列:
net.core.somaxconn = 65535 # 全連接隊列最大值 net.ipv4.tcp_max_syn_backlog = 65535 # 半連接隊列長度
- TIME-WAIT 回收:
net.ipv4.tcp_tw_reuse = 1 # 允許重用 TIME-WAIT 套接字 net.ipv4.tcp_fin_timeout = 30 # FIN 超時時間(秒)
- 端口與擁塞控制:
net.ipv4.ip_local_port_range = 1024 65535 # 端口范圍 net.ipv4.tcp_congestion_control = bbr # 擁塞算法
???????? 內存管理
- 交換分區:
vm.swappiness = 10 # 值越低越傾向物理內存(0-100) vm.vfs_cache_pressure = 50 # inode 緩存回收傾向
- 臟頁策略:
vm.dirty_background_ratio = 5 # 后臺刷臟頁閾值(百分比) vm.dirty_ratio = 10 # 同步刷臟頁閾值(百分比)
???????? 文件系統
- 文件句柄限制:
fs.file-max = 2097152 # 系統最大打開文件數 fs.inotify.max_user_watches = 1048576 # inotify 監控數上限
???????? 內核與安全
- 進程與崩潰:
kernel.pid_max = 4194304 # 最大 PID 數量 kernel.panic = 10 # 崩潰后重啟時間(秒)
- 網絡防護:
net.ipv4.conf.all.rp_filter = 1 # 反向路徑過濾(防 IP 欺騙) net.ipv4.icmp_echo_ignore_all = 1 # 忽略所有 ICMP 請求(防探測)
?? 注意事項
-
語法檢查:
使用sysctl -p
時,若配置文件有語法錯誤,加載會失敗并提示具體行號。 -
接口級參數:
若需針對特定接口(如eth0
)配置,需明確指定接口名:net.ipv6.conf.eth0.accept_ra = 0
-
生產環境測試:
修改關鍵參數(如vm.swappiness
或網絡轉發)前,建議在非生產環境驗證。 -
備份與回滾:
# 備份原配置 sudo cp /etc/sysctl.conf /etc/sysctl.conf.bak
通過 /etc/sysctl.conf
及其擴展配置目錄,管理員可以高效管理系統內核行為,從網絡性能調優到安全策略加固,均能實現靈活控制。
🧠🌐 Linux的 /etc/sysctl.conf 筆記250404
2?? /proc/sys/net/ipv6/conf/(all,default,interfaceName)/ 下更多的參數文件
以下是這些參數的簡要說明:
???? 1. accept_dad
- 作用:控制是否啟用重復地址檢測(DAD)。
- 取值:
0
:禁用 DAD。1
:啟用 DAD(默認值)。
???? 2. accept_ra
- 作用:控制是否接受 IPv6 路由器通告(RA)。
- 取值:
0
:不接受 RA 消息。1
:接受 RA 消息。2
:僅在沒有默認路由器時接受 RA 消息。
???? 3. accept_ra_defrtr
- 作用:控制是否接受 RA 中的默認路由器信息。
- 取值:
0
:不接受默認路由器信息。1
:接受默認路由器信息(默認值)。
???? 4. accept_ra_from_local
- 作用:控制是否接受來自本地接口的 RA 消息。
- 取值:
0
:不接受本地 RA 消息。1
:接受本地 RA 消息(默認值)。
???? 5. accept_ra_min_hop_limit
- 作用:設置接受的最小跳數限制。
- 取值:正整數。
???? 6. accept_ra_min_lft
- 作用:設置接受的最小生命周期。
- 取值:正整數。
???? 7. accept_ra_mtu
- 作用:控制是否接受 RA 中的 MTU 信息。
- 取值:
0
:不接受 MTU 信息。1
:接受 MTU 信息(默認值)。
???? 8. accept_ra_pinfo
- 作用:控制是否接受 RA 中的前綴信息。
- 取值:
0
:不接受前綴信息。1
:接受前綴信息(默認值)。
???? 9. accept_ra_rt_info_max_plen
- 作用:設置接受的路由信息的最大前綴長度。
- 取值:0 到 128 之間的整數。
???? 10. accept_ra_rt_info_min_plen
- 作用:設置接受的路由信息的最小前綴長度。
- 取值:0 到 128 之間的整數。
???? 11. accept_ra_rtr_pref
- 作用:控制是否接受 RA 中的路由器優先級信息。
- 取值:
0
:不接受路由器優先級信息。1
:接受路由器優先級信息(默認值)。
???? 12. accept_redirects
- 作用:控制是否接受 ICMPv6 重定向消息。
- 取值:
0
:不接受重定向消息。1
:接受重定向消息(默認值)。
???? 13. accept_source_route
- 作用:控制是否接受源路由選項。
- 取值:
0
:不接受源路由選項。1
:接受源路由選項(默認值)。
???? 14. accept_untracked_na
- 作用:控制是否接受未跟蹤的鄰居通告(NA)。
- 取值:
0
:不接受。1
:接受。
???? 15. addr_gen_mode
- 作用:控制地址生成模式。
- 取值:
0
:使用 EUI64 地址。1
:使用隱私擴展地址。2
:使用穩定隱私地址。
???? 16. autoconf
- 作用:控制是否啟用 SLAAC。
- 取值:
0
:禁用 SLAAC。1
:啟用 SLAAC(默認值)。
???? 17. dad_transmits
- 作用:設置 DAD 傳輸次數。
- 取值:正整數。
???? 18. disable_ipv6
- 作用:控制是否禁用 IPv6。
- 取值:
0
:啟用 IPv6(默認值)。1
:禁用 IPv6。
???? 19. disable_policy
- 作用:控制是否禁用策略路由。
- 取值:
0
:啟用策略路由。1
:禁用策略路由。
???? 20. drop_unicast_in_l2_multicast
- 作用:控制是否丟棄在 L2 多播中的單播數據包。
- 取值:
0
:不丟棄。1
:丟棄。
???? 21. drop_unsolicited_na
- 作用:控制是否丟棄未請求的鄰居通告(NA)。
- 取值:
0
:不丟棄。1
:丟棄。
???? 22. enhanced_dad
- 作用:控制是否啟用增強型 DAD。
- 取值:
0
:禁用。1
:啟用。
???? 23. force_mld_version
- 作用:強制使用特定的 MLD 版本。
- 取值:1 或 2。
???? 24. force_tllao
- 作用:控制是否強制使用目標鏈路層地址選項。
- 取值:
0
:不強制。1
:強制。
???? 25. forwarding
- 作用:控制是否啟用 IPv6 數據包轉發。
- 取值:
0
:禁用轉發。1
:啟用轉發。
???? 26. hop_limit
- 作用:設置默認的跳數限制。
- 取值:正整數。
???? 27. ignore_routes_with_linkdown
- 作用:控制是否忽略鏈路狀態為 down 的路由。
- 取值:
0
:不忽略。1
:忽略。
???? 28. ioam6_enabled
- 作用:控制是否啟用 IPv6 IOAM(In-situ Operations, Administration, and Maintenance)。
- 取值:
0
:禁用。1
:啟用。
???? 29. ioam6_id
- 作用:設置 IOAM 節點 ID。
- 取值:整數。
???? 30. ioam6_id_wide
- 作用:設置 IOAM 節點 ID 的寬度。
- 取值:整數。
???? 31. keep_addr_on_down
- 作用:控制是否在接口 down 時保留地址。
- 取值:
0
:不保留。1
:保留。
???? 32. max_addresses
- 作用:設置每個接口的最大地址數量。
- 取值:正整數。
???? 33. max_desync_factor
- 作用:設置隱私擴展地址的最大去同步因子。
- 取值:正整數。
???? 34. mc_forwarding
- 作用:控制是否啟用多播轉發。
- 取值:
0
:禁用。1
:啟用。
???? 35. mldv1_unsolicited_report_interval
- 作用:設置 MLDv1 未請求報告間隔。
- 取值:毫秒數。
???? 36. mldv2_unsolicited_report_interval
- 作用:設置 MLDv2 未請求報告間隔。
- 取值:毫秒數。
???? 37. mtu
- 作用:設置接口的 MTU。
- 取值:以字節為單位的 MTU 值。
???? 38. ndisc_evict_nocarrier
- 作用:控制是否在無載波時驅逐鄰居發現條目。
- 取值:
0
:不驅逐。1
:驅逐。
???? 39. ndisc_notify
- 作用:控制是否發送鄰居發現通知。
- 取值:
0
:不發送。1
:發送。
???? 40. ndisc_tclass
- 作用:設置鄰居發現的流量類別。
- 取值:整數。
???? 41. optimistic_dad
- 作用:控制是否啟用樂觀 DAD。
- 取值:
0
:禁用。1
:啟用。
???? 42. proxy_ndp
- 作用:控制是否啟用代理 NDP。
- 取值:
0
:禁用。1
:啟用。
???? 43. rpl_seg_enabled
- 作用:控制是否啟用 RPL 分段。
- 取值:
0
:禁用。1
:啟用。
???? 44. ra_defrtr_metric
- 作用:設置默認路由器的度量值。
- 取值:整數。
???? 45. ra_honor_pio_life
- 作用:控制是否尊重前綴信息選項中的生命周期。
- 取值:
0
:不尊重。1
:尊重。
???? 46. regen_max_retry
- 作用:設置隱私擴展地址的最大重試次數。
- 取值:正整數。
???? 47. router_probe_interval
- 作用:設置路由器探測間隔。
- 取值:秒數。
???? 48. router_solicitation_delay
- 作用:設置路由器請求延遲。
- 取值:秒數。
???? 49. router_solicitation_interval
- 作用:設置路由器請求間隔。
- 取值:秒數。
???? 50. router_solicitation_max_interval
- 作用:設置路由器請求最大間隔。
- 取值:秒數。
???? 51. router_solicitations
- 作用:設置路由器請求的最大次數。
- 取值:正整數。
???? 52. seg6_enabled
- 作用:控制是否啟用 Segment Routing IPv6(SRv6)。
- 取值:
0
:禁用。1
:啟用。
???? 53. seg6_require_hmac
- 作用:控制是否要求 SRv6 使用 HMAC 驗證。
- 取值:
0
:不要求。1
:要求。
???? 54. stable_secret
- 作用:設置穩定的隱私地址密鑰。
- 取值:十六進制字符串。
???? 55. suppress_frag_ndisc
- 作用:控制是否抑制分片的鄰居發現。
- 取值:
0
:不抑制。1
:抑制。
???? 56. temp_prefered_lft
- 作用:設置臨時地址的首選生命周期。
- 取值:秒數。
???? 57. temp_valid_lft
- 作用:設置臨時地址的有效生命周期。
- 取值:秒數。
???? 58. use_oif_addrs_only
- 作用:控制是否僅使用出接口地址。
- 取值:
0
:不使用。1
:使用。
???? 59. use_tempaddr
- 作用:控制是否生成臨時地址。
- 取值:
0
:不生成。1
:生成。2
:僅生成臨時地址。
這些參數提供了對 IPv6 協議棧行為的細粒度控制,允許用戶根據需求調整網絡配置。通過合理配置這些參數,可以優化網絡性能、增強安全性或滿足特定的網絡需求。
/proc/sys/net/ipv6/conf/(all,default,interfaceName)/ 下的參數文件, 五分類
這些參數都位于 /proc/sys/net/ipv6/conf
目錄下,用于控制 IPv6 網絡配置和行為。下面我為你詳細解釋這些參數:
???? 地址配置與重復地址檢測
accept_dad
:控制是否接受重復地址檢測(DAD)的結果。設為1
表示接受 DAD 結果,若為0
則忽略 DAD 檢測結果,可能導致地址沖突。addr_gen_mode
:指定 IPv6 地址的生成模式。例如,可選擇使用 EUI - 64 格式基于 MAC 地址生成,或者采用隨機生成方式,以增強隱私性。autoconf
:決定是否啟用無狀態地址自動配置(SLAAC)。當設置為1
時,設備會根據路由器通告(RA)自動配置 IPv6 地址;設為0
則禁用此功能。dad_transmits
:確定在 DAD 過程中發送鄰居請求消息的次數。默認值通常為1
,增加該值可提高 DAD 檢測的可靠性,但會延長地址配置時間。
???? 路由器通告相關
accept_ra
:控制設備是否接受路由器通告(RA)消息。1
表示接受,0
表示拒絕。只有接受 RA 消息,設備才能進行 SLAAC 配置。accept_ra_defrtr
:決定是否接受 RA 消息中指定的默認路由器。若設為1
,設備會將 RA 中指定的路由器作為默認網關;設為0
則忽略該信息。accept_ra_from_local
:是否接受來自本地接口的 RA 消息。這在某些特殊網絡場景中,如使用本地接口模擬路由器時可能會用到。accept_ra_min_hop_limit
:設置設備接受的 RA 消息中最小的跳數限制值。若 RA 中的跳數限制小于該值,設備可能會忽略該 RA 消息。accept_ra_min_lft
:指定接受的 RA 消息中前綴的最小有效生存期。accept_ra_mtu
:控制是否接受 RA 消息中指定的最大傳輸單元(MTU)值。若設為1
,設備會使用 RA 中的 MTU 值更新自身的配置。accept_ra_pinfo
:決定是否接受 RA 消息中的前綴信息,用于配置設備的 IPv6 地址前綴。accept_ra_rt_info_max_plen
和accept_ra_rt_info_min_plen
:分別設置接受的 RA 消息中路由信息的最大和最小前綴長度。accept_ra_rtr_pref
:是否接受 RA 消息中路由器的優先級信息,可用于在多個路由器之間選擇更優的路由。ra_defrtr_metric
:默認路由器的度量值,可用于在存在多個默認路由器時進行路由選擇。ra_honor_pio_life
:控制是否遵循 RA 消息中前綴信息選項(PIO)的生存期。
???? 安全與策略相關
accept_redirects
:控制設備是否接受 IPv6 重定向消息。重定向消息可用于優化路由,但也可能被惡意利用,因此在安全要求較高的環境中可禁用。accept_source_route
:是否接受源路由選項的 IPv6 數據包。源路由允許發送方指定數據包的路由路徑,可能存在安全風險,通常建議禁用。accept_untracked_na
:決定是否接受未跟蹤的鄰居通告(NA)消息。未跟蹤的 NA 可能是非法的,設置為0
可增強安全性。disable_ipv6
:禁用整個系統的 IPv6 功能。1
表示禁用,0
表示啟用。disable_policy
:是否禁用 IPv6 策略路由。策略路由可根據特定規則進行路由選擇,禁用后將使用默認路由規則。drop_unicast_in_l2_multicast
:控制是否丟棄發往二層組播地址的單播 IPv6 數據包,可防止一些異常流量。drop_unsolicited_na
:是否丟棄未經請求的鄰居通告(NA)消息,可減少潛在的地址欺騙攻擊。enhanced_dad
:是否啟用增強的 DAD 機制,增強機制可能提供更嚴格的地址唯一性檢查。force_mld_version
:強制使用指定版本的多播偵聽者發現(MLD)協議。force_tllao
:強制使用臨時鏈路本地地址選項。
???? 轉發與路由相關
forwarding
:控制是否開啟 IPv6 數據包轉發功能。當設備作為路由器或網關時,需將此參數設置為1
;作為普通主機時,通常設置為0
。hop_limit
:設置 IPv6 數據包的默認跳數限制。數據包每經過一個路由器,跳數減1
,當跳數減為0
時,數據包將被丟棄。ignore_routes_with_linkdown
:是否忽略與處于關閉狀態的鏈路相關的路由。若設為1
,當鏈路關閉時,相關路由將被自動忽略。mc_forwarding
:控制是否開啟 IPv6 組播數據包轉發功能。router_probe_interval
:對默認路由器進行探測的時間間隔。通過定期探測,可及時發現路由器故障并切換到備用路由器。router_solicitation_delay
:設備發送路由器請求(RS)消息前的延遲時間。router_solicitation_interval
:重復發送 RS 消息的時間間隔。router_solicitation_max_interval
:最大的 RS 消息發送間隔時間。router_solicitations
:發送 RS 消息的最大次數。若在規定次數內未收到 RA 消息,設備可能會采取其他配置方式。use_oif_addrs_only
:是否僅使用出接口的地址來進行路由選擇。
???? 其他參數
ioam6_enabled
:是否啟用 IPv6 網絡中的網絡遙測(IOAM6)功能。ioam6_id
和ioam6_id_wide
:與 IOAM6 功能相關的標識符。keep_addr_on_down
:當網絡接口關閉時,是否保留已分配的 IPv6 地址。設為1
可在接口重新開啟時快速恢復網絡連接。max_addresses
:限制每個網絡接口可分配的 IPv6 地址的最大數量。max_desync_factor
:設置時鐘同步的最大偏差因子。mldv1_unsolicited_report_interval
和mldv2_unsolicited_report_interval
:分別設置 MLDv1 和 MLDv2 協議中主動報告消息的發送間隔。mtu
:設置網絡接口的最大傳輸單元大小。ndisc_evict_nocarrier
:控制在鏈路失去載波時,是否清除鄰居發現(NDP)緩存中的條目。ndisc_notify
:控制是否在鄰居發現(NDP)狀態發生變化時通知用戶空間。ndisc_tclass
:設置 NDP 消息的流量類別。proxy_ndp
:是否啟用 IPv6 鄰居發現代理功能。啟用后,設備可代表其他設備響應鄰居請求,可用于隱藏內部網絡拓撲。regen_max_retry
:在生成地址時,若遇到沖突,最大的重試次數。rpl_seg_enabled
:是否啟用 RPL(低功耗和有損網絡路由協議)的段路由功能。seg6_enabled
:是否啟用 IPv6 段路由(SRv6)功能。seg6_require_hmac
:是否要求 SRv6 數據包使用 HMAC(哈希消息認證碼)進行驗證,以增強安全性。stable_secret
:用于生成臨時地址的穩定密鑰。suppress_frag_ndisc
:是否抑制分片相關的 NDP 消息。temp_prefered_lft
:臨時地址的首選生存期,即臨時地址在該時間段內是首選使用的。temp_valid_lft
:臨時地址的有效生存期,超過該時間后臨時地址不再有效。use_tempaddr
:控制是否使用臨時 IPv6 地址。臨時地址可增強隱私性,1
啟用,0
禁用。
/proc/sys/net/ipv6/conf/(all,default,interfaceName)/ 下的參數文件, 八分類
以下是 Linux /proc/sys/net/ipv6/conf/<接口>/
目錄下 IPv6 參數的詳細分類解析,涵蓋地址配置、鄰居發現、路由、安全等核心功能。部分參數需要高版本內核支持(如 ioam6_*
和 rpl_seg_enabled
),建議結合內核文檔使用。
???? 一、地址自動配置與 DAD(重復地址檢測)
參數 | 作用 | 推薦值 | 依賴關系 |
---|---|---|---|
accept_dad | 重復地址檢測(DAD)策略:0 =禁用1 =啟用(默認)2 =啟用并優化(快速失敗)。 | 1 或 2 | 需內核支持 |
dad_transmits | DAD 探測包的發送次數(若 accept_dad=1/2 )。 | 1 | 無 |
enhanced_dad | 增強型 DAD(減少地址沖突概率)。 | 1 | 需 accept_dad=1 |
addr_gen_mode | IPv6 地址生成模式:0 =EUI-641 =穩定隱私地址2 =隨機臨時地址。 | 2 | 需內核 ≥ 4.1 |
use_tempaddr | 臨時地址生成策略:0 =禁用1 =生成但優先公有地址2 =優先臨時地址(增強隱私)。 | 2 | 需 autoconf=1 |
max_addresses | 接口允許的最大 IPv6 地址數量(含臨時地址)。 | 16 | 無 |
???? 二、路由器廣播(RA)控制
參數 | 作用 | 推薦值 | 依賴關系 |
---|---|---|---|
accept_ra | 是否接受路由器廣播(RA),決定是否觸發 SLAAC。 | 1 | 需配合 autoconf=1 |
accept_ra_defrtr | 是否通過 RA 自動添加默認路由。 | 1 | 需 accept_ra=1 |
accept_ra_min_hop_limit | 接受 RA 的最小跳數限制(低于此值的 RA 被忽略)。 | 1 | 無 |
accept_ra_pinfo | 是否接受 RA 中的前綴信息(用于 SLAAC)。 | 1 | 需 accept_ra=1 |
accept_ra_rt_info_max_plen | 接受 RA 中路由信息選項的最大前綴長度。 | 64 | 無 |
accept_ra_rt_info_min_plen | 接受 RA 中路由信息選項的最小前綴長度。 | 0 | 無 |
accept_ra_rtr_pref | 是否接受 RA 中的路由器優先級信息。 | 1 | 需 accept_ra=1 |
???? 三、路由與轉發
參數 | 作用 | 推薦值 | 依賴關系 |
---|---|---|---|
forwarding | 啟用 IPv6 數據包轉發(路由器模式)。 | 0 | 需配合防火墻規則 |
ignore_routes_with_linkdown | 是否忽略鏈路狀態為 down 的路由。 | 0 | 無 |
hop_limit | 設置 IPv6 數據包的默認跳數限制(類似 IPv4 TTL)。 | 64 | 無 |
ra_defrtr_metric | 通過 RA 添加的默認路由的優先級(metric)。 | 1024 | 需 accept_ra_defrtr=1 |
???? 四、鄰居發現與安全
參數 | 作用 | 推薦值 | 依賴關系 |
---|---|---|---|
drop_unsolicited_na | 是否丟棄未經請求的鄰居通告(防止欺騙攻擊)。 | 1 | 無 |
drop_unicast_in_l2_multicast | 是否丟棄鏈路層多播中的單播鄰居通告(防攻擊)。 | 1 | 無 |
proxy_ndp | 啟用代理 NDP(為其他主機響應鄰居請求)。 | 0 | 需手動配置代理條目 |
accept_redirects | 是否接受 ICMPv6 重定向消息(安全風險高)。 | 0 | 無 |
accept_source_route | 是否接受 IPv6 源路由(易引發路由欺騙)。 | 0 | 無 |
???? 五、多播與鏈路層優化
參數 | 作用 | 推薦值 | 依賴關系 |
---|---|---|---|
force_mld_version | 強制 MLD(多播偵聽發現協議)版本:1 =MLDv12 =MLDv2。 | 2 | 需多播支持 |
mc_forwarding | 啟用 IPv6 多播數據包轉發。 | 0 | 需多播路由守護進程 |
mldv1_unsolicited_report_interval | MLDv1 未經請求的報告間隔(秒)。 | 10 | 無 |
force_tllao | 強制在 NDP 消息中包含 Target Link-Layer Address Option(TLLAO)。 | 0 | 無 |
???? 六、臨時地址與隱私
參數 | 作用 | 推薦值 | 依賴關系 |
---|---|---|---|
temp_valid_lft | 臨時地址的有效生存時間(秒)。 | 604800 | 需 use_tempaddr=1 或 2 |
temp_prefered_lft | 臨時地址的首選生存時間(秒)。 | 86400 | 需 use_tempaddr=1 或 2 |
regen_max_retry | 臨時地址生成失敗時的最大重試次數。 | 3 | 需 use_tempaddr=1 或 2 |
???? 七、高級調試與實驗性功能
參數 | 作用 | 推薦值 | 依賴關系 |
---|---|---|---|
ioam6_enabled | 啟用 IPv6 操作、管理與維護(IOAM)數據層跟蹤(實驗性)。 | 0 | 需內核 ≥ 5.10 |
rpl_seg_enabled | 啟用 RPL(IPv6 路由協議)分段支持(物聯網場景)。 | 0 | 需內核支持 RPL 協議 |
seg6_enabled | 啟用 IPv6 分段路由(SRv6)支持。 | 0 | 需內核 ≥ 4.10 |
???? 八、其他關鍵參數
參數 | 作用 | 推薦值 | 依賴關系 |
---|---|---|---|
disable_ipv6 | 完全禁用接口的 IPv6 功能。 | 0 | 無 |
mtu | 設置接口的 IPv6 MTU(最大傳輸單元)。 | 1500 | 需匹配物理鏈路 MTU |
ndisc_notify | 內核是否通過 Netlink 通知用戶空間鄰居發現事件。 | 0 | 需特定監控工具 |
/proc/sys/net/ipv6/conf/(all,default,interfaceName)/ 下的參數文件, 二分類
???? 接受路由器通告 (RA) 相關參數
- accept_ra: 是否接受路由器通告。
- accept_ra_defrtr: 是否接受作為默認路由器的路由器通告。
- accept_ra_from_local: 是否接受來自本地鏈路的路由器通告。
- accept_ra_min_hop_limit: 接受的最小跳數限制的路由器通告。
- accept_ra_min_lft: 接受的生存時間最小的路由器通告。
- accept_ra_mtu: 接受包含MTU信息的路由器通告。
- accept_ra_pinfo: 是否接受包含前綴信息的路由器通告。
- accept_ra_rt_info_max_plen: 接受的最大路由信息前綴長度。
- accept_ra_rt_info_min_plen: 接受的最小路由信息前綴長度。
- accept_ra_rtr_pref: 是否接受路由器的優先級字段。
- accept_ra_rt_info_max_plen: 接受的最大路由信息選項長度。
- accept_ra_rt_info_min_plen: 接受的最小路由信息選項長度。
- accept_ra_solicitations: 是否接受路由器請求消息。
???? 其他網絡配置參數
- accept_dad: 是否接受重復地址檢測 (DAD) 消息。
- accept_redirects: 是否接受重定向消息。
- accept_source_route: 是否接受源站選路。
- accept_untracked_na: 是否接受未經跟蹤的鄰居通告。
- drop_unsolicited_na: 是否丟棄未經請求的鄰居通告。
- drop_unicast_in_l2_multicast: 是否丟棄在L2組播中的單播數據包。
- proxy_ndp: 是否代理鄰居發現協議。
- enhanced_dad: 是否啟用增強型重復地址檢測。
- force_mld_version: 強制使用特定的MLD版本。
- force_tllao: 是否強制使用TLLAO(翻譯的鏈路層地址選項)。
- ioam6_enabled: 是否啟用IOAMv6(接口標識符分配模塊)。
- ioam6_id: 設置IOAMv6 ID。
- ioam6_id_wide: 設置寬范圍的IOAMv6 ID。
- keep_addr_on_down: 在接口關閉時是否保持地址。
- mc_forwarding: 是否啟用多播轉發。
- max_addresses: 允許的最大地址數。
- max_desync_factor: 最大去同步因子。
- mtu: 設置MTU大小。
- ndisc_evict_nocarrier: 在沒有載體時是否執行鄰居取消操作。
- ndisc_notify: 是否通知鄰居變化。
- ndisc_tclass: 設置鄰居發現的時間類。
- regen_max_retry: 最大重新生成地址嘗試次數。
- router_probe_interval: 路由器探測間隔。
- router_solicitation_delay: 路由器請求延遲。
- router_solicitation_interval: 路由器請求間隔。
- router_solicitation_max_interval: 最大路由器請求間隔。
- router_solicitations: 發送的路由器請求數量。
- rpl_seg_enabled: 是否啟用RPL(路由協議)段。
- seg6_enabled: 是否啟用SeG6(分段路由頭)。
- seg6_require_hmac: 是否需要對SeG6進行HMAC保護。
- suppress_frag_ndisc: 是否抑制碎片相關的鄰居發現消息。
- temp_prefered_lft: 臨時首選生存時間。
- temp_valid_lft: 臨時有效生存時間。
- use_oif_addrs_only: 僅使用接口地址。
- use_tempaddr: 是否使用臨時地址。
/proc/sys/net/ipv6/conf/(all,default,interfaceName)/ 下的參數文件, 七分類
以下是您列出的 IPv6 相關 sysctl
參數的詳細講解,按功能分類和重要性進行說明:
1. 路由器通告(RA)相關參數?
-
?
accept_ra
?- ?作用?:控制是否接受 IPv6 路由器通告(Router Advertisements, RA)。RA 用于 SLAAC(無狀態地址自動配置)。
- ?默認值?:
1
(啟用)。 - ?禁用場景?:若系統為純主機且不依賴 RA(如靜態配置),可設為
0
。
-
?
accept_ra_defrtr
?- ?作用?:是否將 RA 中的默認路由器信息添加到路由表。
- ?默認值?:
1
(啟用)。 - ?禁用影響?:需手動配置默認路由。
-
?
accept_ra_min_hop_limit
?- ?作用?:設置接受 RA 的最小跳數(Hop Limit)。
- ?默認值?:
0
(接受任何值)。 - ?安全建議?:可設為
64
防止攻擊者偽造低跳數的 RA。
-
?
accept_ra_mtu
?- ?作用?:是否使用 RA 中通告的 MTU 值。
- ?默認值?:
1
(啟用)。 - ?禁用場景?:若需手動控制 MTU,設為
0
。
-
?
accept_ra_pinfo
?- ?作用?:是否處理 RA 中的前綴信息(Prefix Information)。
- ?默認值?:
1
(啟用)。 - ?依賴項?:需
accept_ra=1
才能生效。
-
?
accept_ra_rt_info_max_plen
?- ?作用?:接受 RA 中路由信息選項(Route Information)的最大前綴長度。
- ?默認值?:
64
(IPv6 子網典型值)。 - ?調整場景?:限制路由表中過長的前綴。
-
?
ra_defrtr_metric
?- ?作用?:設置通過 RA 添加的默認路由的度量值(metric)。
- ?默認值?:
1024
。 - ?優化場景?:若需優先使用其他路由協議(如 BGP),可調高此值。
-
?
ra_honor_pio_life
?- ?作用?:是否遵循 RA 中前綴信息(PIO)的生命周期(valid/preferred lifetime)。
- ?默認值?:
0
(不遵循,使用內核默認值)。 - ?啟用場景?:需動態調整地址生命周期時設為
1
。
? 2. 鄰居發現(ND)和地址配置
-
?
accept_dad
?- ?作用?:是否啟用重復地址檢測(DAD)。
- ?默認值?:
1
(啟用)。 - ?禁用風險?:可能導致地址沖突,僅在受控環境禁用。
-
?
enhanced_dad
?- ?作用?:啟用增強型 DAD(RFC 7527),在 DAD 失敗后生成新地址。
- ?默認值?:
0
(禁用)。 - ?啟用場景?:需避免地址沖突時設為
1
。
-
?
proxy_ndp
?- ?作用?:允許代理 NDP 請求,使本機代為響應其他主機的鄰居請求。
- ?默認值?:
0
(禁用)。 - ?使用場景?:用于 IPv6 負載均衡或透明代理。
-
?
drop_unsolicited_na
?- ?作用?:是否丟棄未請求的鄰居通告(Unsolicited NA)。
- ?默認值?:
0
(接受)。 - ?安全建議?:設為
1
防止 NA 欺騙攻擊。
-
?
drop_unicast_in_l2_multicast
?- ?作用?:丟棄通過 L2 組播地址發送的單播幀。
- ?默認值?:
0
(不丟棄)。 - ?安全場景?:防止某些二層攻擊。
? 3. 地址生成與臨時地址?
-
?
addr_gen_mode
?- ?作用?:控制 IPv6 地址生成模式:
0
:基于 EUI-64 的傳統模式。1
:基于隨機化的穩定隱私地址(RFC 7217)。2
:完全隨機地址(臨時地址)。
- ?默認值?:
0
或1
(取決于系統配置)。
- ?作用?:控制 IPv6 地址生成模式:
-
?
use_tempaddr
?- ?作用?:是否生成臨時隱私地址(RFC 4941)。
- ?默認值?:
0
(禁用)。 - ?隱私建議?:設為
2
(優先使用臨時地址)。
-
?
temp_prefered_lft
?- ?作用?:臨時地址的優選生命周期(秒)。
- ?默認值?:
86400
(1 天)。 - ?調整場景?:縮短時間以加快地址輪換。
-
?
temp_valid_lft
?- ?作用?:臨時地址的有效生命周期(秒)。
- ?默認值?:
604800
(7 天)。
4. 轉發與路由
-
?
forwarding
?- ?作用?:啟用 IPv6 數據包轉發(路由功能)。
- ?默認值?:
0
(禁用)。 - ?副作用?:啟用后會禁用 RA 接受(
accept_ra=0
)。
-
?
ignore_routes_with_linkdown
?- ?作用?:忽略鏈路狀態為 down 的路由。
- ?默認值?:
0
(不忽略)。 - ?優化場景?:設為
1
可自動清理無效路由。
-
?
hop_limit
?- ?作用?:設置發送的 IPv6 數據包的默認跳數。
- ?默認值?:
64
。 - ?調整場景?:根據網絡拓撲調整(如廣域網設為
255
)。
? 5. 安全與過濾>
-
?
accept_redirects
?- ?作用?:是否接受 ICMPv6 重定向報文。
- ?默認值?:
1
(啟用)。 - ?安全建議?:設為
0
防止路由重定向攻擊。
-
?
accept_source_route
?- ?作用?:是否接受源路由(Source Routing)選項。
- ?默認值?:
0
(禁用)。 - ?風險提示?:始終禁用,避免繞過防火墻規則。
-
?
suppress_frag_ndisc
?- ?作用?:禁止對 ND 報文進行分片。
- ?默認值?:
0
(允許分片)。 - ?安全場景?:設為
1
防止分片攻擊。
6. 多播(Multicast)?
-
?
mc_forwarding
?- ?作用?:啟用多播數據包轉發。
- ?默認值?:
0
(禁用)。 - ?使用場景?:多播路由器或流媒體服務器啟用。
-
?
force_mld_version
?- ?作用?:強制 MLD 版本(1 或 2)。
- ?默認值?:
0
(自動協商)。 - ?兼容性?:若網絡設備僅支持 MLDv1,設為
1
。
7. 高級功能?
-
?
seg6_enabled
?- ?作用?:啟用 IPv6 分段路由(SRv6)。
- ?默認值?:
0
(禁用)。 - ?使用場景?:運營商或 SDN 網絡。
-
?
ioam6_enabled
?- ?作用?:啟用 In-situ OAM(IOAM)數據采集。
- ?默認值?:
0
(禁用)。 - ?用途?:網絡性能監控與故障排查。
/proc/sys/net/ipv6/conf/(all,default,interfaceName)/ 下的參數文件, 四分類
這些參數都與IPv6網絡配置和鄰居發現協議(NDP)有關。下面是對每個參數的簡要解釋:
???? 接受相關參數
- accept_dad:是否接受重復地址檢測(DAD)消息。
- accept_ra:是否接受路由器廣告(RA)消息。
- accept_ra_defrtr:是否接受默認路由器。
- accept_ra_from_local:是否接受來自本地接口的RA消息。
- accept_ra_min_hop_limit:接受RA消息的最小跳數限制。
- accept_ra_mtu:接受RA消息時的MTU值。
- accept_ra_pinfo:是否接受RA消息中的前綴信息。
- accept_ra_rt_info_max_plen:接受RA消息中路由信息字段的最大長度。
- accept_ra_rt_info_min_plen:接受RA消息中路由信息字段的最小長度。
- accept_redirects:是否接受重定向消息。
???? 路由器相關參數
- router_solicitation_max_interval:路由器請求的最大間隔時間。
- router_solicitation_delay:路由器請求的延遲時間。
- router_solicitation_interval:路由器請求的間隔時間。
- router_probe_interval:路由器探測的間隔時間。
???? 地址配置相關參數
- autoconf:是否啟用IPv6地址自動配置。
- addr_gen_mode:地址生成模式。
- keep_addr_on_down:接口關閉時是否保留地址。
- max_addresses:每個接口允許的最大地址數量。
- use_optimistic:是否使用樂觀DAD。
- use_tempaddr:是否使用臨時地址。
- temp_prefered_lft:臨時地址的首選生命周期。
- temp_valid_lft:臨時地址的有效生命周期。
???? 其他參數
- disable_policy:是否禁用策略路由。
- disable_ipv6:是否禁用IPv6。
- drop_unicast_in_l2_multicast:是否丟棄二層多播中的單播數據包。
- drop_unsolicited_na:是否丟棄未經請求的鄰居通告(NA)消息。
- enhanced_dad:是否啟用增強的DAD。
- force_mld_version:強制使用的MLD版本。
- force_tllao:是否強制使用目標鏈路層地址選項(TLLAO)。
- hop_limit:默認的跳數限制。
- ignore_routes_with_linkdown:是否忽略鏈路關閉的路由。
- mc_forwarding:是否啟用多播轉發。
- mldv1_unsolicited_report_interval:MLDv1未經請求的報告間隔時間。
- mldv2_unsolicited_report_interval:MLDv2未經請求的報告間隔時間。
- ndisc_notify:是否發送鄰居發現通知。
- ndisc_tclass:鄰居發現消息的流量類別。
- proxy_ndp:是否啟用代理NDP。
- regen_max_retry:地址生成時的最大重試次數。
- router_solicitations:發送路由器請求的次數。
- seg6_enabled:是否啟用Segment Routing over IPv6。
- seg6_require_hmac:是否要求Segment Routing over IPv6使用HMAC。
- stable_secret:生成穩定密鑰的種子。
- suppress_frag_ndisc:是否抑制鄰居發現中的片段消息。
這些參數可以通過sysctl
命令進行查看和修改,以適應不同的網絡環境和需求。