nftables에서 해당 인터페이스에 여러 IP 주소가 할당된 경우 패킷의 수신 IP 주소를 어떻게 얻습니까?

nftables에서 해당 인터페이스에 여러 IP 주소가 할당된 경우 패킷의 수신 IP 주소를 어떻게 얻습니까?

2022년 9월 15일에 업데이트되었습니다.

내가 달성하려고 했던 것이 별 의미가 없다는 것이 밝혀졌습니다. 따라서 실제로 이 질문은 삭제되어야 합니다. 그러나 매우 계몽적인 의견이 있으므로 현재는 그대로 두고 그 운명에 대한 결정은 커뮤니티에 맡기겠습니다.

원래 질문:

나는 현재 열심히 공부하고 nftables있으며 어느 정도 진전을 보이고 있습니다. 이제 다음과 같은 문제가 있습니다(질문이 어리석은 경우에는 참아주십시오. 그러나 모든 참조는 현재 다운된 wiki.netfilter.org에 연결되어 있습니다(내 평소 운이 좋습니다 :-)).

일부 클라이언트 PC와 실행 중인 라우터/방화벽 PC가 있는 IPv4 네트워크가 있습니다 nftables. 라우터에는 두 개의 IP 주소가 192.168.20.253있으며 192.168.20.254. 전자는 관리 라우터에만 사용되며(예: SSH 데몬은 해당 주소의 라우터에서 수신 대기함) 후자는 클라이언트가 사용해야 하는 게이트웨이 주소입니다.

라우터의 규칙 세트에서 나는 통과하는 패킷을 구별할 수 있기를 원합니다(이러한 패킷의 nftables경우 (대상 주소)가 실제로.253 로컬 네트워크 외부인 경우에만 SSH를 허용합니다).daddr.253.254daddr

.253.254와 가 서로 다른 두 인터페이스에 할당된 경우 이를 달성하는 방법을 알고 있습니다 . 그러나 이는 사실이 아닙니다. 두 라우터 IP 주소가 모두 동일한 인터페이스에 할당됩니다.

누군가 나에게 힌트를 줄 수 있습니까? 에서 힌트를 찾지 못했습니다 man nft. ipor와 같은 라우팅 표현이 언급되어 있지만 nexthop분명히 도움이 되지 않습니다. 동일한 네트워크 카드에 두 개의 인터페이스를 생성하고 이를 .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

여기서 무엇이 잘못되었는지 살펴보겠습니다.

...

한 가지 이유는 나중에 .253을 다른 것으로 쉽게 변경할 수 있기를 원하기 때문입니다(반면 .254는 "고정"되어 있음).

간단한 DNS 서버를 실행하고 클라이언트가 IP 대신 DNS 이름을 사용하여 연결하도록 합니다.

하지만 나는 이것을 일반적인 방법으로 달성할 수 없다는 것을 안다.

귀하의 시나리오에서 일반적인 접근 방식은 대상 IP를 확인하고 DNS를 설정하는 것입니다. 찾다.

두 번째 인터페이스를 만들어서 .253에 할당해 보겠습니다. 그러면 문제가 해결될 것입니다.

물리계층과 데이터링크계층에서 사용자를 분리하려면 별도의 인터페이스만 있으면 됩니다.

또한 사용 중인 IP 주소는 모두 동일한 IP 서브넷에 있으므로 두 개의 인터페이스가 있어도 의미가 없으며 두 인터페이스를 통해 동일한 서브넷에 액세스할 때 라우팅 문제도 발생합니다.

/31 접두사보다 큰 다른 서브넷에 192.168.20.253 및 192.168.20.254를 배치할 수 없습니다.

관련 정보