저는 Arch에서 Shorewall을 사용하여 2개의 로컬 네트워크와 2개의 ISP 연결로 설정을 관리하려고 합니다. 궁극적으로 로컬 네트워크 1(192.168.1.0/24 인터페이스 enp5s0)의 트래픽은 ISP 1(76.... 인터페이스 enp6s0)을 사용하고 로컬 네트워크 2(192.168.0.0/24 인터페이스 enp7s0)의 트래픽은 ISP 2를 사용하기를 원합니다. (99...인터페이스 enp3s0). 현재는 어느 기본 경로가 먼저 나오는지에 따라 둘 중 하나만 작동하도록 할 수 있습니다.
output of `ip route ls` with sensitive information redacted:
default via 76.[rd].1 dev enp6s0 src 76.[rd].78 metric 203 mtu 576
default via 99.[rd].1 dev enp3s0 src 99.[rd].190 metric 205
76.[rd].0/24 dev enp6s0 proto kernel scope link src 76.[rd].78 metric 203 mtu 576
76.[rd].78 dev enp6s0 scope link src 76.[rd].78
99.194.48.0/21 dev enp3s0 proto kernel scope link src 99.[rd].190 metric 205
99.[rd].190 dev enp3s0 scope link src 99.[rd].190
192.168.0.0/24 dev enp7s0 proto kernel scope link src 192.168.0.1 metric 204
192.168.1.0/24 dev enp5s0 proto kernel scope link src 192.168.1.1 metric 202
위의 출력으로 로컬 1은 외부에 도달할 수 있지만 로컬 2는 그렇지 않습니다. 첫 번째 줄이 사라지면 그 반대도 마찬가지입니다. ISP가 여러 개인 경우에도 여러 기본 경로를 사용하는 것은 불가능하다고 확신합니다. 하지만 이것이 Shorewall이 하는 일입니다.
이에 대한 예는 어디에도 없기 때문에 해안벽의 3개 인터페이스 예를 기반으로 하겠습니다. 이 기사가 너무 길어지는 것을 방지하기 위해 각 관련 해안 벽 구성에 대한 링크를 붙여넣었습니다.
- 상호 작용:http://pastebin.com/u7w3YJdx
- 으깨다:http://pastebin.com/1X2hrLCZ
- 얼굴 마스크:http://pastebin.com/bi9EEtwD
- 정책:http://pastebin.com/mBBZQ0wg
- 규칙:http://pastebin.com/ySSLpMWd
- 공급자:http://pastebin.com/YjDfKZzg
- 영역:http://pastebin.com/XVgYz3dn
이 문제에 대한 Shorewall의 페이지는 예제의 목표가 내 목표와 매우 다르기 때문에 도움이 되지 않습니다. 올바른 방향에 대한 조언을 주시면 감사하겠습니다.
답변1
netctl 파일이나 다른 파일에서 기본 게이트웨이를 설정하지 마십시오. IP 주소를 얻기 위해 DHCP를 사용하는 경우 기본 게이트웨이 얻기(dhcpcd -G)를 비활성화해야 합니다. "ip Route ls"를 실행하면기본 게이트웨이가 표시되지 않습니다.. "ip Route show table all"만 각 ISP 테이블의 기본 게이트웨이를 나열할 수 있습니다. 이 같은:
default via 10.1.1.1 dev enp3s0 table ITC1 src 10.1.1.10
10.1.1.1 dev enp3s0 table ITC1 scope link src 10.1.1.10
default via 10.1.2.1 dev enp4s0 table ITC2 src 10.1.2.10
10.1.2.1 dev enp4s0 table ITC2 scope link src 10.1.2.10
default via X.X.X.X dev enp5s0 table MPLS src X.X.X.X
X.X.X.X dev enp5s0 table MPLS scope link src X.X.X.X
default table balance
nexthop via X.X.X.X dev enp5s0 weight 1
nexthop via 10.1.1.1 dev enp3s0 weight 2
nexthop via 10.1.2.1 dev enp4s0 weight 2
rrules 항목이 필요에 충분하므로 mangle 파일에서 해당 항목을 제거할 수도 있습니다.