NAPT 스타일의 확장 가능한 MAC 변환을 위한 Nftables

NAPT 스타일의 확장 가능한 MAC 변환을 위한 Nftables

저는 지난 5년 동안 Linux 내부를 파헤치고 많은 네트워킹 기능을 마스터한 네트워킹 선배입니다. 하지만 최근에야 Netfilter 세계에 뛰어들어 지난 3~4년 동안 nftables를 배워 제가 필요한 것을 구현했습니다. 실험실. 나는 이 포털과 ServerFault 포털에서 "MAC 주소 변환/NAT"를 정직하게 검색하여 여기에 도착했습니다.

VM Linux 브리징을 수행할 때 일부 ESXI vSwitch의 부족한 VLAN 관리 기능을 해결해야 합니다.ARP-hw_addr의 MAC 주소와 실제 패킷을 Linux VM 포트에 할당된 VNIC의 MAC@과 일치하도록 변환하려고 합니다., 테마로.

전체 이야기는 다음에서 공유됩니다.https://docs.google.com/document/d/1TBFYlO-n8G-inYO6cdnMnSEeYUP2Ch9vWNO_TwIxK9M/edit?usp=sharing

참고로 뭐?내가 할 수 있는 일은 정적으로 번역하는 것뿐이다.예를 들어 Y측 호스트 IP@를 일치시키고 ARP 및 실제 Eth 헤더의 MAC@를 MAC A(X측)의 MAC@으로 변환하거나 그 반대로 변환합니다.

table netdev mpls {
 chain input {
 type filter hook ingress device "mpls" priority filter; policy accept;
 arp daddr ip 172.16.100.189 arp daddr ether set 00:50:56:01:00:61 counter
 ether daddr 00:50:56:01:02:03 ether daddr set 00:50:56:01:00:61 counter accept
 }
 chain output {
 type filter hook egress device "mpls" priority filter; policy accept;
 arp saddr ip 172.16.100.189 arp saddr ether set 00:50:56:01:02:03 counter
 ether saddr 00:50:56:01:00:61 ether saddr set 00:50:56:01:02:03 counter accept
 }
}

하지만 이 작업을 동적으로 비례적으로 수행해야 합니다., 선택한 IP 주소와 일치하고 NF가 즉시 양방향 작업을 수행할 수 있도록 합니다. 다른 네트워킹/가상화 담당자가 vSwitch의 일부 단점(주관적)을 해결하는 데 이 내용이 유용할 수 있기를 바랍니다.

질문:netdev 도메인 뒤에서 작동하는 대규모 Netfilter 캡을 사용하여 이를 동적으로 수행하려면 어떻게 해야 합니까? 그렇지 않은 경우 사용자 정의 애플리케이션을 사용하는 브리지 시리즈의 nf-queue 호출만 이를 수행할 수 있습니까?

피터 씨

관련 정보