Fedora

添加沒有網關 nmcli 的預設路由

  • March 14, 2017

我正在嘗試將 NetworkManager 配置為對介面執行以下操作

ip route add ::/0 dev he-ipv6

he-ipv6是點對點 ipv4 坐模式隧道,直接執行上述命令即可。不幸的是,當設備重新啟動時,預設網關不會重新配置,因此網路外的所有 IPv6 流量都會被丟棄。

我嘗試通過以下方式配置手動路線:

nmcli c modify he-ipv6 ipv6.routes '::/0'

但當然 nmcli 不會讓您為預設網關配置靜態路由。

Error: failed to modify ipv6.routes: invalid prefix '0'; <1-128> allowed.

最後我發現創建一個非常簡單的networkmanager(8) dispatcher.d 腳本來在介面上線時添加路由是最乾淨的:

/etc/NetworkManager/dispatcher.d/99-he-ipv6-add-default-route

#!/bin/bash

[[ "${1}" -ne "he-ipv6" ]] && exit

if [[ "${2}" -eq "up" ]]; then 
 ip route add ::/0 dev he-ipv6
fi

實際上,您可以使用 nmcli 配置整個隧道連接,請參閱 Fedora 的 wiki 頁面

nmcli connection add type ip-tunnel con-name sit1 ifname sit1 mode sit \
remote SERVER_IPV4_ADDRESS -- ipv4.method disabled ipv6.method manual \
ipv6.address CLIENT_IPV6_ADDRESS ipv6.gateway SERVER_IPV6_ADDRESS \
ip-tunnel.ttl 64

以上不需要調度程序腳本並且可以在重新啟動後繼續存在。

引用自:https://unix.stackexchange.com/questions/320943