![두 개의 서로 다른 공용 네트워크 IP에서 우분투 서버에 액세스하는 방법](https://linux55.com/image/201748/%EB%91%90%20%EA%B0%9C%EC%9D%98%20%EC%84%9C%EB%A1%9C%20%EB%8B%A4%EB%A5%B8%20%EA%B3%B5%EC%9A%A9%20%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%20IP%EC%97%90%EC%84%9C%20%EC%9A%B0%EB%B6%84%ED%88%AC%20%EC%84%9C%EB%B2%84%EC%97%90%20%EC%95%A1%EC%84%B8%EC%8A%A4%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
현재 문제를 해결하려고 합니다.
배경 정보:
Dell R710 서버의 Ubuntu 20.04 ISP에서 제공하는 2개의 라우터와 2개의 서로 다른 인터넷 연결이 있습니다. eno2를 isp1 라우터에 연결했고 영구 DHCP 임대를 통해 192.168.2.100 IP를 얻었습니다. eno3를 isp2 라우터에 연결했고 영구 DHCP 임대를 통해 192.168.88.254 IP를 얻었습니다.
IP 하나
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether d4:be:d9:ee:7b:75 brd ff:ff:ff:ff:ff:ff
3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether d4:be:d9:ee:7b:77 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.102/24 brd 192.168.2.255 scope global dynamic noprefixroute eno2
valid_lft 41588sec preferred_lft 41588sec
inet6 fe80::d6be:d9ff:feee:7b77/64 scope link
valid_lft forever preferred_lft forever
4: eno3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether d4:be:d9:ee:7b:79 brd ff:ff:ff:ff:ff:ff
inet 192.168.88.254/24 brd 192.168.88.255 scope global dynamic noprefixroute eno3
valid_lft 486sec preferred_lft 486sec
inet6 fe80::d6be:d9ff:feee:7b79/64 scope link
valid_lft forever preferred_lft forever
5: eno4: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether d4:be:d9:ee:7b:7b brd ff:ff:ff:ff:ff:ff
...
네트워크 통계-rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.88.1 0.0.0.0 UG 0 0 0 eno3
0.0.0.0 192.168.2.1 0.0.0.0 UG 0 0 0 eno2
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eno2
192.168.88.0 0.0.0.0 255.255.255.0 U 0 0 0 eno3
문제는 LAN 외부에 있는 경우 한 번에 1개의 (임의) 공용 IP를 통해서만 서버에 액세스할 수 있다는 것입니다. 77.xx.xx.158(isp 2)에 액세스할 수 있으면 부팅할 때마다 무작위로 5.xx.xx.55(isp 1)에 액세스할 수 없으며 그 반대의 경우도 마찬가지입니다.
언제든지 공개 IP의 서버에 액세스할 수 있어야 합니다.
가능한 해결책에 대해 미리 감사드립니다.
답변1
당신이 이것을 할 수 있을지 모르겠습니다.
패킷이 하나의 인터페이스로 들어오고 반환되는 패킷이 다른 인터페이스로 나가기를 원하는 문제가 있습니다. 사실, 아마도 지금 당신이 보고 있는 것이 바로 그것이었을 것입니다. 첫 번째 라우터가 DHCP 요청에 응답하면 해당 요청을 통해 기본 경로를 설정하고, 두 번째 라우터가 응답하면(응답 순서에 따라 무작위성이 나타날 수 있음) 기본 경로도 설정됩니다. 이 경우 Linux가 어떤 경로를 사용할지는 기억나지 않지만 중요하지 않으므로 두 번째 경로가 승리한다고 가정합니다. (그 반대인 경우 아래에서 첫 번째/두 번째를 전환하면 됩니다.) 이 경우 라우터 1을 통해 들어오는 트래픽을 수신하고 서버로 전달한 다음 라우터 2를 통해 응답을 다시 보냅니다. 이는 연결 테이블을 확인하고 이 트래픽의 대상에 연결이 설정되어 있지 않다고 결론을 내린 다음(다른 라우터를 통해 들어왔으므로 라우터가 이를 알 수 있음) 패킷을 삭제합니다. 두 개의 라우터가 이러한 검사를 수행하지 않도록 설득하는 경우 다른 검사나 ISP 라우터(중 하나)에서 실패할 수 있습니다.