차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
multiple_gateway_설정 [2024/04/19 06:16] – [NetworkManager 사용시] koovmultiple_gateway_설정 [2024/04/19 12:06] (현재) – [NetworkManager 사용시] koov
줄 39: 줄 39:
 동일한 환경에서 ''SERVER-A''의 두번째 NIC인 ''eth1''의 ''10.33.0.117''로 핑을 시도하면 핑이 되지 않는것을 확인할 수 있다. 동일한 환경에서 ''SERVER-A''의 두번째 NIC인 ''eth1''의 ''10.33.0.117''로 핑을 시도하면 핑이 되지 않는것을 확인할 수 있다.
  
-이때 ''tcpdump''를 살펴보면 아래와 같다.+이때 ''SERVER-A''에서 ''tcpdump''를 살펴보면 아래와 같다.
 <WRAP prewrap> <WRAP prewrap>
 <code bash> <code bash>
줄 72: 줄 72:
 </WRAP> </WRAP>
  
-이렇게 하면 ''PING''통신이 동작하는데 SERVER-A에서 ''tcpdump''로 패킷을 확인해보면+이렇게 하면 ''PING''통신이 동작하는데 ''SERVER-A''에서 ''tcpdump''로 패킷을 확인해보면
  
 <WRAP prewrap> <WRAP prewrap>
줄 169: 줄 169:
 ''/etc/NetworkManager/dispatcher.d/10-multiple-gw'' ''/etc/NetworkManager/dispatcher.d/10-multiple-gw''
 <WRAP prewrap> <WRAP prewrap>
-<code bash>+<code vim>
 #!/bin/bash #!/bin/bash
  
줄 177: 줄 177:
 if [ "$INTERFACE" == "eth0" ]; then if [ "$INTERFACE" == "eth0" ]; then
     if [ "$ACTION" == "up" ]; then     if [ "$ACTION" == "up" ]; then
-        ip route add 192.168.0.0/24 dev enp1s0 table 1 +        ip route add 192.168.0.0/24 dev eth0 table 1 
-        ip route add default via 192.168.0.1 dev enp1s0 table 1+        ip route add default via 192.168.0.1 dev eth0 table 1
  ip rule add iif eth0 priority 100 table 1  ip rule add iif eth0 priority 100 table 1
  ip rule add from 192.168.0.117 priority 100 table 1  ip rule add from 192.168.0.117 priority 100 table 1
줄 186: 줄 186:
 if [ "$INTERFACE" == "eth1" ]; then if [ "$INTERFACE" == "eth1" ]; then
     if [ "$ACTION" == "up" ]; then     if [ "$ACTION" == "up" ]; then
- ip route add 10.33.0.0/24 dev enp2s0 table 2 + ip route add 10.33.0.0/24 dev eth1 table 2 
- ip route add default via 10.33.0.1 dev enp2s0 table 2+ ip route add default via 10.33.0.1 dev eth1 table 2
  ip rule add iif eth1 priority 100 table 2  ip rule add iif eth1 priority 100 table 2
         ip rule add from 10.33.0.117 priority 100 table 2         ip rule add from 10.33.0.117 priority 100 table 2
줄 195: 줄 195:
 </WRAP> </WRAP>
  
 +그리고 **해당파일에 반드시 실행권한(+x)을 부여**해줘야 한다. 각 스크립트는 ''root''가 소유한 **일반 실행 파일**이어야 합니다. 또한 그룹이나 다른 사람이 쓸 수 없어야 하며 ''setuid''가 아니어야 합니다.
 +참조링크 : https://networkmanager.dev/docs/api/latest/NetworkManager-dispatcher.html
 +
 +한방에 하려면 아래 ''chmod''명령어 참고
 +<WRAP prewrap>
 +<code bash>
 +chmod +x,g-w,o-w,-s,-t /etc/NetworkManager/dispatcher.d/10-multiple-gw
 +</code>
 +</WRAP>
  
  
줄 230: 줄 239:
   * 커널 공식 문서에는 이 값이 기본적으로 ''0''으로 설정되어 있다고 하지만 리눅스 배포판마다 기본값을 다르게 설정하고 있습니다.   * 커널 공식 문서에는 이 값이 기본적으로 ''0''으로 설정되어 있다고 하지만 리눅스 배포판마다 기본값을 다르게 설정하고 있습니다.
  
-  * RHEL 6 이상은 기본적으로 [[http://tools.ietf.org/html/rfc3704]]에 권장되는 엄격한 역방향 전달 필터링을 적용하도록 구성됩니다. 기본값 ''1''+  * ''RHEL 6'' 이상은 기본적으로 [[http://tools.ietf.org/html/rfc3704]]에 권장되는 엄격한 역방향 전달 필터링을 적용하도록 구성됩니다. 기본값 ''1''
  
-  * Strict mode(엄격한 필터링)는 __패킷이 시스템에 도착하면 커널이 패킷의 소스 IP를 가져와 라우팅 테이블을 조회하여 패킷이 도착한 인터페이스가 커널이 해당 IP에 패킷을 보내는 데 사용하는 것과 동일한 인터페이스인지 확인__합니다. 인터페이스가 동일하면 패킷이 엄격한 필터링 테스트를 통과하고 정상적으로 처리됩니다. **인터페이스가 동일하지 않으면 패킷은 추가 처리 없이 폐기**되고 RHEL 7+에서는 ''IPReversePathFilter''카운터가 증가됩니다.+  * ''Strict mode(엄격한 필터링)''는 __패킷이 시스템에 도착하면 커널이 패킷의 소스 IP를 가져와 라우팅 테이블을 조회하여 패킷이 도착한 인터페이스가 커널이 해당 IP에 패킷을 보내는 데 사용하는 것과 동일한 인터페이스인지 확인__합니다. 인터페이스가 동일하면 패킷이 ''엄격한 필터링 테스트''를 통과하고 정상적으로 처리됩니다. **인터페이스가 동일하지 않으면 패킷은 추가 처리 없이 폐기**되고 ''RHEL 7+''에서는 ''IPReversePathFilter''카운터가 증가됩니다.
  
   * 엄격한 필터링의 주요 효과는 **지정된 원격 IP의 경우 시스템이 특정 인터페이스를 통해서만 통신한다**는 것입니다. 지정된 원격 IP 또는 네트워크에 응답하는 인터페이스를 제어하도록 정적 경로를 설정합니다.   * 엄격한 필터링의 주요 효과는 **지정된 원격 IP의 경우 시스템이 특정 인터페이스를 통해서만 통신한다**는 것입니다. 지정된 원격 IP 또는 네트워크에 응답하는 인터페이스를 제어하도록 정적 경로를 설정합니다.
  
-  * ''RHEL 5'' 이전버전에서 커널은 엄격한 필터링을 지원하지 않았습니다. 따라서 이러한 이전 릴리스에서 매개 변수에는 0(비활성화) 및 1(느슨한) 두 가지 가능한 값만 있습니다. 기본값은 1(느슨한)입니다.+  * ''RHEL 5'' 이전버전에서 커널은 엄격한 필터링을 지원하지 않았습니다. 따라서 이러한 이전 릴리스에서 매개 변수에는 ''0(비활성화)'' 및 ''1(느슨한)'' 두 가지 가능한 값만 있습니다. 기본값은 ''1(느슨한)''입니다.
  
 <WRAP prewrap> <WRAP prewrap>
  • multiple_gateway_설정.1713507385.txt.gz
  • 마지막으로 수정됨: 2024/04/19 06:16
  • 저자 koov