IPv4 では、ホストに LAN 上の静的ローカル IP アドレスを割り当て、ファイアウォール/ルーターのファイアウォール ルールを使用して、ネットワークで使用される (動的な場合もある) インターネット接続 IP のポートを特定のホストのポートに転送し、ファイアウォール ルールでホストを識別する安定した方法としてホストの静的 LAN IPv4 アドレスを使用することができました。
しかし、IPv6 では、すべてのホストが実際にルーティング可能なインターネット IP を使用しているため、ホストへの着信トラフィックはすでにそのホストにアドレス指定されており、NAT は必要ありません。ただし、特定のホストとポートへの着信トラフィックを許可し、他のホストまたはポートへのトラフィックをブロックするようにファイアウォール ルールを記述できる必要があります。
しかし、ネットワークが IPv6 アドレスを割り当てるプレフィックスが動的である場合、ファイアウォール ルールで特定のホストを参照してそのホストへのトラフィックを許可するにはどうすればよいでしょうか。 ISP がネットワークに別のプレフィックスを割り当てているため、来週にはプレフィックスが異なる IPv6 アドレスになるため、その IPv6 アドレスへのトラフィックを単に許可することはできません。
では、実際にファイアウォールを設定して、そのホストのポートへの着信トラフィックを許可するにはどうすればよいでしょうか。宛先で一致させるオプションip6tables
があるようです--dest
が、アドレス全体を入力できるだけで、たとえば、ホストに対して静的に保持できるアドレスのサフィックスを入力することはできないようです。man ページから:
[!] -s, --source address[/mask][,...]
Source specification. Address can be either a network name, a
hostname, a network IP address (with /mask), or a plain IP ad‐
dress. Hostnames will be resolved once only, before the rule is
submitted to the kernel. Please note that specifying any name
to be resolved with a remote query such as DNS is a really bad
idea. The mask can be either an ipv4 network mask (for ipta‐
bles) or a plain number, specifying the number of 1's at the
left side of the network mask. Thus, an iptables mask of 24 is
equivalent to 255.255.255.0. A "!" argument before the address
specification inverts the sense of the address. The flag --src
is an alias for this option. Multiple addresses can be speci‐
fied, but this will expand to multiple rules (when adding with
-A), or will cause multiple rules to be deleted (with -D).
[!] -d, --destination address[/mask][,...]
Destination specification. See the description of the -s
(source) flag for a detailed description of the syntax. The
flag --dst is an alias for this option.
これを で処理する方法はありますかip6tables
?ip6tables
ネットワークの番号が変更されると、実際に全員が使用しているルールを生成する別のレイヤーはありますか? ネットワークip6tables
番号が変更されても、特定のホストに送信されるトラフィックを一致させることができるプラグインはありますか? 他の OS ファイアウォールでは、これを異なる方法で処理しますか?
答え1
ip6tables
アドレスのビットマスクを受け入れます。iptables
および IPv4 とは異なり、これらのビットは必ずしもアドレスの先頭にある必要はありません。そのため、次のようなものでも問題なく動作します。
ip6tables -A INPUT -d ::1234:56ff:fe78:90ab/::ffff:ffff:ffff:ffff -j ACCEPT
::1234:56ff:fe78:90ab
これにより、ip6tables はプレフィックスに関係なく、で終わる IPv6 アドレスに送信されるすべてのパケットを受け入れるようになります。