나의 믿음직한 Slackware 상자가 파손되어 이미 구축된 Linux Mint v18로 교체해야 했습니다. 나는 원래 이것이 드롭인 교체가 되기를 바랐지만 iproute2의 라우팅은 수년에 걸쳐 변경되었습니다. 나는 "route add default gw 192.168.1.1 eth1"을 추가하는 것만으로도 효과가 있기를 바랐습니다. 실제로 작동합니다. 그러나 문제는 내 게이트웨이 시스템이 eth0의 어떤 것에도 연결할 수 없다는 것입니다.
단순화된 레이아웃:
|192.168.0.0/24|---|게이트웨이|---|192.168.1.0/24| | ---|Router192.168.1.1|---|인터넷|
게이트웨이에는 eth0과 eth1이 있으며 192.168.0.0/24의 모든 것에 대한 방화벽입니다. 라우터는 일반적으로 192.168.1.0/24에서 WiFi 장치를 처리합니다.
현재 구성의 경우 KDE 네트워크 관리자가 인터페이스를 불러오도록 한 다음 위와 같이 gw 명령을 추가했습니다.
# 경로 -n 커널 IP 라우팅 테이블 Iface를 사용하는 대상 게이트웨이 Genmask 마크 메트릭 참조 0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth1 192.168.0.0 0.0.0.0 255.255.255.0 유 1 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 유 1 0 0 eth1
이것은 작동합니다. 192.168.0.0/24의 모든 장치가 올바르게 라우팅되고 192.168.1.0/24에서 아무런 문제 없이 게이트웨이와 인터넷에 연결할 수 있습니다.
그러나 게이트웨이에서 192.168.0.0/24의 어떤 항목으로든 ping을 시작할 수 없습니다. tcpdump를 실행해 보니 소스 IP가 192.168.1.2(eth1)로 변경된 것을 발견했습니다. 따라서 이는 게이트웨이 회선의 메트릭을 다른 회선보다 높게 설정하여 먼저 고려하지 않았음에도 불구하고 패킷이 잘못된 인터페이스에서 나온다는 것을 알려줍니다.
나는 많은 stackexchange 게시물과 다음과 같은 일부 웹 사이트를 읽었습니다.정책 라우팅, 그리고리눅스-IP, 하지만 해결책을 찾을 수 없는 것 같습니다.
나는 iproute2에 대해 잘 알지 못하지만 192.168.0.0/24를 작동시키기 위해 내가 할 수 있는 일은 다음과 같습니다.
echo "관리자 1명" >> /etc/iproute2/rt_tables 우선 순위 1 테이블 관리로 192.168.0.0/24에서 IP 규칙이 추가됩니다. 192.168.0.0/24 우선순위 1 테이블 관리에 IP 규칙이 추가되었습니다. IP 경로 192.168.0.0/24 table admin dev eth0 추가 IP 라우팅 캐시 새로 고침
이는 기본보다 우선순위가 높은 테이블을 생성하고 시작/끝으로 규칙을 생성한 다음 동일한 테이블에 경로를 추가하여 eth0을 통해 전송하는 것입니다. 그러나 이것은 작동하지 않습니다.
제가 놓친 것이 있는 것 같은데 찾을 수 없습니다.
# uname -a Linux neXuss2 3.13.0-37-generic #64-Ubuntu SMP 월 9월 22일 21:28:38 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
답변1
iproute2
이렇게 간단한 케이스는 필요하지 않습니다 .
그러나 IP 라우팅을 위한 기본 스위치가 켜져 있는지 확인해야 합니다. /etc/sysctl.conf
포함 라인을 확인하세요.
net.ipv4.ip_forward=1
그런 다음 실행 sudo sysctl -p
하면 즉시 적용됩니다.
sysctl의 기본값은 net.ipv4.ip_forward
0이며, 이는 모든 IPv4 라우팅 기능을 완전히 비활성화합니다.
또한 기본 사항을 확인해야 합니다. 즉, eth0 인터페이스에 실제로 링크가 있고 오류가 발생하지 않는지 확인해야 합니다. NIC 드라이버의 ethtool eth0
링크 상태를 확인하고 통계 카운터를 봅니다.ethtool -S eth0