多くのLinuxディストリビューションがデフォルトでiptablesからnftablesに移行されることを考慮して、iptablesルールを移行したいと思います。
2つのブリッジを持つUbuntuサーバーがあります(主にサーバーで実行されているVMおよびLXDコンテナを収容するため)。どちらもネットプランで生成されます。
物理NIC eth0(タグなしVLAN10)はbr0にブリッジされます。 br0 は VLAN10 から IP を取得します。 eth0がIPを取得できませんでした。
VLAN66(タグ付き)はeth0で個別に設定され、br66でブリッジされます。 br66(またはVLAN66)にIPは設定されていません。
現在(怠惰な)すべてのフィルタリングがiptables、stdin、フィルタテーブルの転送、および出力チェーンで実行されるようにbr_netfilterモジュールをロードします。これにより、ebtableを個別に構成することを回避できます。
nftablesを見ると、ブリッジフィルタリングは別々のシリーズを介して行われるため、これらの怠惰なアプローチは機能しないことがわかります。
私の質問は:サーバーのインターフェイスがすべてブリッジされている場合、私のnftablesルールの主な焦点はブリッジファミリにあるべきですか?では、現在iptablesのフィルタテーブルに設定されているすべてのルールをip / ip6 / inetシリーズではなくBridgeシリーズに複製する必要がありますか?それとも混ぜて使うべきか、それならどうすれば分けなければなりませんか?
愚かな質問ならすみません。
編集:設定情報を追加しました。これらのveth
インターフェイスはLXDコンテナに使用できます。
ネットワーク計画:
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: false
dhcp6: false
bridges:
br0:
interfaces: [ eth0 ]
macaddress: xx:xx:xx:xx:xx:94
dhcp4: true
dhcp6: true
parameters:
forward-delay: 0
stp: false
br66:
interfaces: [ vlan66 ]
macaddress: xx:xx:xx:xx:xx:8d
dhcp4: false
dhcp6: false
link-local: [ ]
accept-ra: false
parameters:
forward-delay: 0
stp: false
vlans:
vlan66:
id: 66
link: eth0
dhcp4: false
dhcp6: false
IPアドレス:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
link/ether xx:xx:xx:xx:xx:ee brd ff:ff:ff:ff:ff:ff
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether xx:xx:xx:xx:xx:94 brd ff:ff:ff:ff:ff:ff
inet 10.10.10.10/24 brd 10.10.10.255 scope global dynamic br0
valid_lft 5022sec preferred_lft 5022sec
inet6 fdfd:2553:8868:10:xxxx:xxxx:xxxx:xx94/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 86361sec preferred_lft 14361sec
inet6 2403:xxxx:xxxx:xx10:xxxx:xxxx:xxxx:xx94/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 86361sec preferred_lft 14361sec
inet6 fe80::xxxx:xxxx:xxxx:xx94/64 scope link
valid_lft forever preferred_lft forever
4: br66: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether xx:xx:xx:xx:xx:8d brd ff:ff:ff:ff:ff:ff
5: vlan66@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br66 state UP group default qlen 1000
link/ether 2c:4d:54:d2:84:ee brd ff:ff:ff:ff:ff:ff
7: veth940fee62@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br66 state UP group default qlen 1000
link/ether e6:40:d8:1f:7b:93 brd ff:ff:ff:ff:ff:ff link-netnsid 0
9: vethff4da3d7@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br66 state UP group default qlen 1000
link/ether 3a:ba:7e:c8:49:20 brd ff:ff:ff:ff:ff:ff link-netnsid 1
11: veth0d67113a@if10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br66 state UP group default qlen 1000
link/ether 86:65:7f:bc:a0:c6 brd ff:ff:ff:ff:ff:ff link-netnsid 2
13: veth22f981e6@if12: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br66 state UP group default qlen 1000
link/ether 92:93:15:f6:ed:09 brd ff:ff:ff:ff:ff:ff link-netnsid 3
15: veth1d23d0ca@if14: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br66 state UP group default qlen 1000
link/ether 6e:8a:7d:48:0a:08 brd ff:ff:ff:ff:ff:ff link-netnsid 4
brctlは以下を示しています:
bridge name bridge id STP enabled interfaces
br0 8000.xxxxxxxxxx94 no eth0
br66 8000.xxxxxxxxxx8d no veth0d67113a
veth1d23d0ca
veth22f981e6
veth940fee62
vethff4da3d7
vlan66
答え1
他のフォーラムの誰かが私に次の非常に便利なnftablesパケットフロー図を教えてくれました。
これは私の考えを整理するのに多くの助けになります。まだルールを確定していませんが、メンバーインターフェイス間のブリッジを通過するパケットのルールは、ブリッジファミリーの転送チェーンに移動し、ブリッジインターフェイスからローカルホストに移動するパケットのルールは次のとおりです。 inetシリーズの入力チェーンに移動し、ブリッジ間のパケットルールはinetシリーズの順方向チェーンに移動します。