2つのイーサネットインターフェイスを備えたK3OSを実行しているPCがあります。一方(eth0)は固定IPアドレスを使用してDHCPサーバーなしでネットワークに接続され、もう一方(eth1)はデフォルトゲートウェイを返すDHCPを使用してネットワークに接続されます。 K3OSはconnmanをネットワーク管理者として使用します。
2つのconnmanサービスcとdを設定しました。
/net/connman/service/ethernet_00606561750c_cable
Type = ethernet
Security = [ ]
State = ready
Favorite = True
Immutable = False
AutoConnect = True
Name = Wired
Ethernet = [ Method=auto, Interface=eth0, Address=xx:xx:xx:xx:xx:xx, MTU=1500 ]
IPv4 = [ Method=dhcp, Address=10.4.144.15, Netmask=255.255.255.0, Gateway=10.4.144.254 ]
IPv4.Configuration = [ Method=dhcp ]
IPv6 = [ ]
IPv6.Configuration = [ Method=auto, Privacy=disabled ]
Nameservers = [ 10.1.1.60 ]
Nameservers.Configuration = [ ]
Timeservers = [ 10.1.1.60 ]
Timeservers.Configuration = [ ]
Domains = [ domain.com ]
Domains.Configuration = [ ]
Proxy = [ ]
Proxy.Configuration = [ ]
mDNS = False
mDNS.Configuration = False
Provider = [ ]
/net/connman/service/ethernet_00606561750d_cable
Type = ethernet
Security = [ ]
State = ready
Favorite = True
Immutable = False
AutoConnect = True
Name = Wired
Ethernet = [ Method=auto, Interface=eth1, Address=xx:xx:xx:xx:xx:xx, MTU=1500 ]
IPv4 = [ Method=manual, Address=192.168.10.3, Netmask=255.255.255.0 ]
IPv4.Configuration = [ Method=manual, Address=192.168.10.3, Netmask=255.255.255.0 ]
IPv6 = [ ]
IPv6.Configuration = [ Method=off ]
Nameservers = [ 8.8.8.8 ]
Nameservers.Configuration = [ ]
Timeservers = [ ]
Timeservers.Configuration = [ ]
Domains = [ ]
Domains.Configuration = [ ]
Proxy = [ ]
Proxy.Configuration = [ ]
mDNS = False
mDNS.Configuration = False
Provider = [ ]
これで、PCを再起動するか、サービスを再起動した後、connmanが設定したeth1を介してデフォルトパスを取得します。ただし、eth1にはゲートウェイアドレスがないため、他のネットワークへのすべての要求は失敗します。私の理解は、connmanが内部サービス注文を持っているということです。ソートはPreferredTechnologies
の設定を尊重することによって行われます/etc/connman/main.config
。同じテクノロジの2つのサービスが利用可能な場合は、準備された最初のサービスの優先順位を指定します(ソース:文書)。しかし、私が理解していないのは、connmanがデフォルトゲートウェイのないネットワークにデフォルトパスを追加する理由です。特定のサービスにデフォルトゲートウェイがないことをconnmanに通知する方法はありますか?
ありがとうございます。
答え1
connmanがブラックリストに触れないようにしたいインターフェースを追加できます/etc/connman/main.conf
。
NetworkInterfaceBlacklist=eth1
これはパスを追加しようとしません。