ipv6 source address

同一インターフェイスに複数のipv6アドレスが付いている時、通常使うアドレスを指定する方法。

サービスごとにアドレスつけてたりすると、どれをソースアドレスとして接続しに行くかわからんので優先順位をつける。
何も設定しないと、大体アドレスの長い奴が優先されて、一番単純なアドレスが代表なのに使ってくれなかったりする。
例:
2001:db8::1>(代表)2001:db8::143(dovecot imapd用)2001:db8::53(bind用)があったりすると(16進ではなくてBCDなのです(言い訳))、他のPCに接続しに行くと大体2001:db8::143でログが残って、これ誰だっけ?になりやすい。本当は2001:db8::1で接続しに行って欲しい。

また、相手がv6アドレスで接続制御してたりするとソースアドレスが決められなくて困る。まあこういうやつはtransfer-source-v6とかオプションがあったりするので個別対応すればいいんではあるが。

/etc/systemd/network/interface.networkに、

[Address]
PreferredLifetime=infinit
Address=2001:db8::1

[Address]
PreferredLifetime=0
Address=2001:db8::143

[Address]
PreferredLifetime=0
Address=2001:db8::53

とすると、PreferredLifetimeがinfinitが最優先、0だとソースアドレスとして使用しない事になる。

ちなみにRAでステートレスアドレスつけると有効期限がそのままPreferredLifetimeに付く。
なので、

[Network]
IPv6Token=::1
Address=2001:db8::1/64

[Address]
PreferredLifetime=0
Address=2001:db8::143
...

とかすればステートレスとかいいつつ2001:db8::1とホスト部が指定できて、デフォルトルートも設定できて、 ソースアドレスとして使用されない追加アドレスも設定できた。


Posted

in

,

by

Tags:

Comments

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です