2개의 CentOS 7.1 서버에서 4개의 인터페이스에 대한 영구 정적 경로 설정

2개의 CentOS 7.1 서버에서 4개의 인터페이스에 대한 영구 정적 경로 설정

저는 CentOS 7.1(최소 설치는 둘 다에서 비활성화됩니다.) 일련의 문제에 부딪혔고 여기서 도움을 받고 싶습니다. 다음은 몇 가지 배경 지식과 최종 질문 목록입니다.

배경 정보

각각에는 4개의 네트워크 인터페이스가 있습니다. 서버 A는 서브넷 A에 있고 192.168.15.0/24스위치 A에 연결되어 있습니다. 서버 B는 서브넷 B에 있고 192.168.16.0/24스위치 B에 연결되어 있습니다. 두 개의 레이어 3 스위치 A와 B도 서로 연결되어 있습니다. 스위치 A에는 192.168.15.1서브넷 A에 대해 gw를 갖는 VLAN0015가 있습니다. 마찬가지로 스위치 B에는 192.168.16.1서브넷 B가 gw인 VLAN0016이 있습니다. 각 스위치에는 두 VLAN 간에 트래픽을 라우팅하는 고정 경로가 있습니다.

서버 네트워크 설정 요구 사항은 다음과 같습니다.

  • 각 서버의 인터페이스 4개 모두 독립적으로 트래픽을 전송/수신할 수 있어야 합니다(예 ping -I 192.168.15.100 -c 2 192.168.16.103:두 IP의 마지막 바이트가 서로 다릅니다.)은 쌍 사이의 ICMP 트래픽만 볼 수 있어야 합니다. 즉, 서브넷의 모든 인터페이스는 다른 서브넷의 모든 인터페이스와 통신할 수 있어야 합니다.
  • 인터페이스 접착은 의도적인 것입니다.아니요사용된
  • 4개 인터페이스 모두 해당 서브넷의 gw를 사용해야 합니다(서브넷 A의 경우 192.168.15.1: 서브넷 B의 경우:192.168.16.1)은 다른 서브넷에 있는 다른 서버의 인터페이스와 통신합니다.

내가 뭘 한거지:

  • 다음 내용을 추가하세요 /etc/iproutes/rt_tables. 4 ens1f1table 3 ens1f0table 2 ens20f1table 1 ens20f0table
  • 각 서버의 4개 인터페이스 각각을 소개 /etc/sysconfig/network-scripts/ route-*하고 대상을 지정합니다(아래 예시 참조).rule-*

예를 들어, 서버 A의 인터페이스에는 ens20f0다음이 있습니다 /etc/sysconfig/network-scripts/route-ens20f0.

192.168.15.0/24 dev ens20f0 src 192.168.15.100 table ens20f0table default via 192.168.15.1 dev ens20f0 table ens20f0table

그리고 그 안에 /etc/sysconfig/network-scripts/rule-ens20f0:

from 192.168.15.100/32 table ens20f0table to 192.168.15.100/32 table ens20f0table

"다소 효과적"으로 설정했지만시간, 한 서버에서 다른 서버의 인터페이스를 핑할 수 없습니다. 몇 가지 조사를 한 후에 tracerout일부 인터페이스가 트래픽을 올바르게 라우팅하지 않는다는 것을 깨달았습니다. 이 문제를 해결하기 위해 다음을 적용했습니다.

/sbin/route add -net 192.168.16.0/24 gw 192.168.15.1 dev ...

모두 ens20f0|ens20f1|ens1f0|ens1f1에게예를 들어, 서버 A의 커널 라우팅 테이블은 다음과 같습니다.

Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.11.3 0.0.0.0 UG 0 0 0 ens10f0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 ens20f0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 ens10f0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 ens20f1 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 ens1f0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 ens1f1 192.168.11.0 0.0.0.0 255.255.255.0 U 0 0 0 ens10f0 192.168.15.0 0.0.0.0 255.255.255.0 U 0 0 0 ens20f0 192.168.15.0 0.0.0.0 255.255.255.0 U 0 0 0 ens20f1 192.168.15.0 0.0.0.0 255.255.255.0 U 0 0 0 ens1f0 192.168.15.0 0.0.0.0 255.255.255.0 U 0 0 0 ens1f1 192.168.16.0 192.168.15.1 255.255.255.0 UG 0 0 0 ens1f1 192.168.16.0 192.168.15.1 255.255.255.0 UG 0 0 0 ens1f0 192.168.16.0 192.168.15.1 255.255.255.0 UG 0 0 0 ens20f1 192.168.16.0 192.168.15.1 255.255.255.0 UG 0 0 0 ens20f0

질문:

sbin/route왜 더 이상 사용되지 않는 /를 대신 사용하려고 합니까 ip route add? 이는 ip route add필수 라우팅 항목이 추가되지 않았기 때문입니다.

분명히 "우회" 설정은 지속되지 않습니다. 그래서,

  1. 최소한 시스템 재부팅 후에도 현재 "바이패스"가 지속되도록 하려면 어떻게 해야 합니까? 하나 있는데 /etc/sysconfig/network-scripts/ifup-post, 그곳이 맞는 걸까요? RHEL 7 문서에는 이 스크립트가 언급조차 되지 않으며 어쨌든 비구독자에게는 적합하지 않습니다.
  2. 하나의 서버 A를 .a 이후 192.168.16.0/24 via 192.168.15.1 dev ens20f0에 넣으 려고 하면 필요한 경로가 커널 라우팅 테이블에 나타나지 않습니다. 내가 뭘 잘못했나요? 여러 번 검토했지만 알 수 없습니다.route-ens20f0/sbin/ifdown ens20f0/sbin/ifup ens20f0man ip-route(8)
  3. /sbin/route명령은 커널 라우팅 테이블에 필요한 경로를 추가할 수 있지만 최신 명령은 ip route add|replaceCLI에서도 추가할 수 없는 이유는 무엇입니까?
  4. 기타 언급 man ip-route되지 않았으나 명령어에 대한 설명이 없습니다 . 어떤 용도로 사용됩니까?appendip route { add | del | change | append | replace } ROUTEappend
  5. 위에서 설명한 접근 방식이 나에게 주어진 요구 사항을 충족하기 위해 "정책 기반 라우팅"을 사용하는 올바른 방법입니까? 이는 ping -I iface다른 서버의 인터페이스를 사용하여 한 서버의 특정 인터페이스에서 ping을 수행할 수 있는 것처럼 "일종의 작업"인 것 같습니다 . 하지만 내 tracerout검사 결과에 따르면 그렇게 하는 능력은 신뢰할 수 없는 것 같습니다.

나는 무엇을 더 시도해야할지 모르겠습니다. 읽고 또 읽어라RHEL 7 네트워킹 가이드 2.4.1. ifcfg 파일을 사용하여 네트워크 인터페이스 구성도움이 안돼. 제가 놓친 부분에 대한 힌트가 있다면 감사하겠습니다.

——잭

답변1

호스트는 직접 연결된 IP 네트워크에 대해 게이트웨이를 구성해서는 안 됩니다.

이를 위해 여러 경로 테이블이 필요하지 않습니다. 그러면 상황이 매우 복잡해지며 패킷 태그를 iptables 규칙 세트에 넣는 것에 대해 아무 말도 하지 않았으므로 경로 테이블이 무시될 수 있습니다.

또한 IP와 넷마스크가 표시되도록 네트워크의 그림/지도를 그리는 것이 좋습니다. 좋은 예는 다음과 같습니다.

여기에 이미지 설명을 입력하세요.

따라서 이와 같은 맵을 사용하면 패킷의 경로를 추적하고 무슨 일이 일어나는지 확인할 수 있습니다. TCP 패킷은 앞뒤로 동일한 경로를 사용해야 하는 반면 ICMP 패킷은 더 관대합니다.


이제 구성에 따라 ens20f0, ens20f1, ens1f0 및 ens1f1 인터페이스 4개 모두에서 192.168.15.x/24 네트워크에 액세스할 수 있습니다.

커널은 마지막으로 추가된 경로를 사용합니다. 사실 스위치는 사용자의 IP 주소를 이전에 추가된 경로 중 하나와 연결하므로 스위치의 ARP 테이블에는 다른 MAC 주소가 있게 됩니다.

따라서 작동할 때는 우연이나 우연에 의해 작동합니다.

예시와 같이 세부 사항을 포함하여 계획을 세우는 것이 좋습니다. 나는 당신이 그것을 그리는 동안 전구의 순간을 가질 것이라고 생각합니다. 그게 요점입니다.

전구가 없는 경우 사진을 게시해 주시면 추가 논의해 드리겠습니다.

답변2

그래서, 당신은 기본적으로 노력하고 있습니다

  1. 동일한 VLAN에 동일한 IP-net을 가진 4개의 주소가 있습니다.
  2. 원격 네트워크에서 유사한 IP 주소를 가진 인터페이스의 트래픽을 유사한 주소를 가진 원격 인터페이스로만 라우팅하시겠습니까?

나는 당신과 같은 솔루션을 들어본 적이 없지만 오랫동안 웹 비즈니스에서 벗어났습니다. 따라서 아이디어를 제공하기 위해 15.X/16.x를 4개의 서브넷으로 나누는 것이 어떻습니까?두 기계 모두에서, 그리고 적절한 네트워크에 경로를 추가하고 서브넷 인터페이스에 def-gw를 추가하시겠습니까?

26비트 마스크(255.255.255.192)를 사용하면 16.X와 유사하게 15.0(net) - 15.63(bcast) / 15.64-15.127 / 15.128-15.191 / 15.192-15.255가 됩니다.

이것이 당신에게 도움이 되기를 바랍니다...

관련 정보