인터페이스가 두 개 있는 호스트가 있습니다. ens4는 mgmnt이고 ens3은 또 다른 네트워크입니다.
# ip -br a | sort
ens1 DOWN
ens2 DOWN
ens3 UP 172.16.10.1
ens4 UP 192.168.1.100
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.100 0.0.0.0 UG 0 0 0 ens4
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens4
172.16.10.1 0.0.0.0 255.255.255.0 U 0 0 0 ens3
ens3으로 가는 모든 트래픽을 자체 라우팅 테이블에 넣어 해당 인터페이스에 도착하는 트래픽이 로컬 라우팅 테이블에 도달하지 않도록 하고 싶습니다.
나는 다음을 시도했다:
- 새 테이블을 만들었습니다.
echo "100 custom" > /etc/iproute2/rt_table
- 트래픽과 일치하도록 경로와 규칙을 추가합니다.
# ip route add 172.16.10.0/24 dev ens3 table custom
# ip rule add from 172.16.10.0/24 table custom
# ip route show table custom
172.16.10.0/24 dev ens3 scope link
# ip rule list
0: from all lookup local
32765: from 172.16.10.0/24 lookup custom
32766: from all lookup main
32767: from all lookup default
하지만 방송 및 로컬 트래픽이 여전히 메인 테이블에 있는 것을 확인했습니다.
# ip route show table all | grep 172.16.10
172.16.10.0/24 dev ens3 scope link
broadcast 172.16.10.0 dev ens3 table local proto kernel scope link src 172.16.10.1
local 172.16.10.1 dev ens3 table local proto kernel scope host src 172.16.10.1
broadcast 172.16.10.255 dev ens3 table local proto kernel scope link src 172.16.10.1
따라서 직접 연결된 경로를 라우팅할 수 없습니다. 해결책은 인터페이스와 라우팅 테이블을 네임스페이스에 넣는 것입니다. 브로드캐스트 및 로컬 경로를 다른 라우팅 테이블로 이동할 수 있습니까? 문제는 ip address
및 문을 추가하는 방법이라고 생각 ip rule
하지만 확실하지 않습니다.
내가하려는 일이 가능한지 아는 사람이 있습니까?
답변1
알아냈어요. 추가된 라우팅 규칙을 삭제하고 라우팅을 통해 다시 추가해야 합니다.
#ip route del 172.16.10.0/24 dev ens3 table custom
#ip route add 172.16.10.0/24 dev ens3 table custom via 172.16.10.1
# ip route show table custom
172.16.10.0/24 dev ens3 scope link
172.16.10.0/24 via 172.16.1 dev ens3