2022年9月15日に更新されました。
私が達成しようとしていたことはあまり意味がないことがわかりました。したがって、実際にこの質問は削除する必要があります。しかし、非常に啓蒙的な意見があるので、現在はそのままにして、その運命に対する決定はコミュニティに任せます。
元の質問:
私は現在一生懸命勉強しており、nftables
ある程度進展しています。今、私は次の問題を抱えています(質問が愚かな場合は注意してください。しかし、すべての参照は現在ダウンしているwiki.netfilter.orgにリンクされています(私はいつも幸運です:-))。
一部のクライアントPCと実行中のルーター/ファイアウォールPCを備えたIPv4ネットワークがありますnftables
。ルーターには2つのIPアドレスが192.168.20.253
あります192.168.20.254
。前者は管理ルータにのみ使用されます(たとえば、SSHデーモンはそのアドレスのルータでリッスンします)、後者はクライアントが使用する必要があるゲートウェイアドレスです。
ルーターのルールセットでは、通過するパケットを区別できるようにしたいです(これらのパケットのnftables
場合(宛先アドレス)が実際に.253
ローカルネットワーク外の場合にのみSSHを許可します)。daddr
.253
.254
daddr
.253
.254
とが2つの異なるインターフェイスに割り当てられている場合は、これを達成する方法を知っています。しかし、これは本当ではありません。両方のルータの IP アドレスが同じインターフェイスに割り当てられます。
誰かが私にヒントを与えることができますか?でヒントが見つかりませんでしたman nft
。ip
orのようなルーティング表現が言及されていますが、nexthop
明らかに役に立ちません。同じネットワークカードに2つのインターフェイスを作成し、それらを1つ.253
ずつ割り当てる必要がありますか.254
?
答え1
ルータには2つのIPアドレス(192.168.20.253と192.168.20.254)があります。両方とも...同じインターフェイスに割り当てられます。
だから私たちは次のようなものを持っています:
# ip addr
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:f8:ed:0e brd ff:ff:ff:ff:ff:ff
inet 192.168.20.254/24 brd 192.168.20.255 scope global enp0s8
valid_lft forever preferred_lft forever
inet 192.168.20.253/24 brd 192.168.20.255 scope global secondary enp0s8
valid_lft forever preferred_lft forever
したがって、どちらも同じ物理イーサネットポート(L1)と同じMACアドレス(L2)にあります。
クライアントが.253経由でインターネットにアクセスするのを防ぎたい。
つまり、クライアントは自分のコンピュータにゲートウェイを次の192.168.20.253
ように設定できます。192.168.20.254
ルーターのnftablesルールセットからどのパケットを区別できるかを望んでいます。~を通して入る.253
ここで何が間違っているのか見てみましょう。
...
1つの理由は、後で.253を別のものに簡単に変更できるようにしたいからです(一方、.254は「固定」されています)。
単純なDNSサーバーを実行し、クライアントがIPの代わりにDNS名を使用して接続できるようにします。
しかし、私はこれを一般的な方法では達成できないことを知っています。
あなたのシナリオで一般的なアプローチは、ターゲットIPを確認してDNSを設定することです。探す。
2番目のインターフェイスを作成して.253に割り当ててみましょう。これで問題が解決します。
物理層とデータリンク層からユーザーを分離するには、別々のインターフェースが必要です。
また、使用しているIPアドレスはすべて同じIPサブネット上にあるため、2つのインターフェイスを持っていても意味がなく、両方のインターフェイスを介して同じサブネットにアクセスするとルーティングの問題も発生します。
/ 31プレフィックスより大きい他のサブネットに192.168.20.253および192.168.20.254を配置できません。