![FreePBX를 듀얼 NIC로 라우팅할 수 없습니다.](https://rvso.com/image/192232/FreePBX%EB%A5%BC%20%EB%93%80%EC%96%BC%20NIC%EB%A1%9C%20%EB%9D%BC%EC%9A%B0%ED%8C%85%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
두 번째 실제 인터페이스를 추가해야 하는 FreePBX 서버가 있습니다. 마찬가지로 eth0과 eth1 모두 라우팅 가능한 IP 주소를 가지고 있습니다. 두 번째 주소 설정은 빠른 Google 검색에 따라 비교적 간단했습니다.
https://www.thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System
/etc/iproute2/rt_tables를 편집하고 "200초" 항목을 추가했습니다.
"두 번째"라는 테이블에 경로를 추가했습니다.
ip route add ip.subnet.on.eth1/27 dev eth1 src ip.address.on.eth1 table second ip route add default via router.ip.for.eth1 dev eth1 table second
(여기서 "ip.subnet.on.eth1" "ip.address.on.eth1" 및 "router.ip.for.eth1"은 필요한 주소입니다.)
소스 라우팅을 통해 올바른 인터페이스를 통해 트래픽을 보내는 규칙을 추가했습니다.
ip rule add from ip.address.on.eth1/32 table second ip rule add to ip.address.on.eth1/32 table second
어느 정도 부분적인 성공을 거두었습니다. 이제 서버의 두 번째 IP 주소로 라우팅할 수 있어 일반 요청(예: icmp, sshd, apache 등)에 즉시 응답할 수 있습니다.
그러나 Asterisk에 필요한 UDP 서비스와 작동하는 데 완전히 실패했습니다. 모든 클라이언트는 eth0의 "일반" IP 주소에 정상적으로 연결할 수 있습니다. 그러나 eth1의 IP에 연결하려고 하면 클라이언트가 시간 초과됩니다.
나는 심지어 sip에 대해 tcp를 허용하도록 서버를 설정하려고 시도했는데, 그 후 로그인이 가능해졌습니다. 그러나 rtp(음성) 트래픽도 udp이기 때문에 결국 실패했습니다.
이제 두 번째 eth1 장치가 전역적으로 라우팅될 필요가 없는 경우와 같이 유사한 설정이 작동합니다. 내부 LAN의 경우. 따라서 pbx의 eth0에 하나의 실제 IP가 있고 eth1에 개인 IP가 있는 경우 단일 통합 라우팅 테이블만 사용하고 모든 것이 제대로 작동합니다.
Sip 서버와의 트래픽을 차단하는 방화벽이 없음을 확실하게 확인할 수 있습니다. 실제로 나는 모든 sip 클라이언트의 서브넷에 대한 모든 tcp 및 udp 트래픽을 허용하여 모든 Fail2ban 및 기타 헛소리를 우회하는 명시적인 항목 세트도 가지고 있습니다.
추신. 내가 명확하게 설명하지 않았다면 최종 목표는 완전히 라우팅 가능한 실제 IP 주소를 가진 두 인터페이스 eth0 및 eth1 모두에서 Freepbx/별표가 작동하도록 하는 것입니다. 현재로서는 eth0만 작동합니다.