IP alias 가 있을 때만 그 주소를 디폴트 게이트웨이에 출발지 주소로 적용하고 싶습니다.

raymundo의 이미지

안녕하세요,

어떤 서버A가 있는데 IP가 예를 들어 192.168.70.100 입니다. 그리고 서비스를 위해서는 이 IP가 중요한 역할을 하여, 바뀌면 안 됩니다.

이 서버가 장애가 났을 때를 대비해 이중화를 하려는데, 이런 저런 검토 결과

- A와 B서버에 각각 IP를 할당하고 서비스에 쓰이는 192.168.70.100은 A와 B 중 액티브 서버에 IP alias 로 부여한 후
- 평소에는 다른 서버B에 A의 내용을 rsync 로 동기화하다가
- A가 죽으면 B에 저 IP를 부여하고 서비스를 띄움 (평소에 띄울 수 없는 사정이 있음)

하는 식으로 구성을 해보고 있습니다.

그래서 지금 테스트 중인데, A가 죽고 B에 IP를 부여하여 원하는 시나리오대로 서비스는 띄울 수 있었습니다.

$ ifconfig
ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.74.200(평소 IP)  netmask 255.255.255.0  broadcast 192.168.74.255
        ...
ens192:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.74.100(서비스IP) netmask 255.255.255.0  broadcast 192.168.74.255

문제는, 이 서버에서 DB를 비롯하여 십 수 대의 다른 서버에 접속을 해야 하는데, 출발지가 ens192에 박혀 있는 74.200 으로 되어서 방화벽에 막힙니다.

물론 방화벽 작업을 요청하면 되지만 이러면 앞으로도 매번 두 개의 src 에 대해서 작업을 해야 해서, 가급적 출발지가 74.100 으로 되게 했으면 합니다.

서버는 CentOS 7.5 이고, 제가 잠깐 구글링하면서 이러저러 해보다가 다음과 같이 하였습니다.

# 원래 시스템 상태
$ ip route show
default via 192.168.74.1 dev ens192 proto static metric 102
172.16.0.0/24 dev ens224 proto kernel scope link src 172.16.0.205 metric 101
 
# 추가
$ ip route add default via 192.168.74.1 dev ens192:1 proto static metric 100 src 192.168.74.100
 
# 확인
$ ip route show
default via 192.168.74.1 dev ens192 proto static src 192.168.74.100 metric 100
default via 192.168.74.1 dev ens192 proto static metric 102
172.16.0.0/24 dev ens224 proto kernel scope link src 172.16.0.205 metric 101

출발지를 74.100 으로 하고 metric 값을 기존보다 더 작게 주어 추가를 하면 우선 순위가 더 높아서 되는 것 같습니다.

이러다가 다시 A서버 쪽에서 서비스를 하게 되면 B서버의 74.100 IP alias는 없어질 텐데, 이 때 저 항목이 어떤 영향을 미칠지 모르겠습니다.

(테스트할 예정이긴 한데 테스트 결과만으로 확신을 갖기 힘들어서)

정리하면, 특정 IP가 alias로 할당되면 그 IP를 출발지로 쓰고, alias가 삭제되면 다른 처리 없이 원래의 IP를 출발지로 하여 패킷을 보내도록 하려면 라우팅 테이블을 어떻게 구성을 해야 하는가? 입니다.

조언 부탁드리겠습니다. 감사합니다.

김정균의 이미지

VIP 를 출발지로 하는 건 좋은 방법이 아닌 듯 싶습니다. 그냥 2대의 IP를 모두 방화벽에 등록을 해 주는 것이 운영상 안전성이 더 확보될 것 같습니다.

VIP가 내려갈 때 routing table 까지 신경을 써 줘야 하는 문제가 발생하고. 이게 꼬여 버리면 문제점을 찾는데도 시간이 소요될 수 밖에 없습니다. 구성은 최대한 간단하게 하는 것이 가장 좋은 구성이니 방화벽에 2대 모두를 등록하는 방법을 권장 합니다.

raymundo의 이미지

앗 역시 그런가요… 아무래도 그렇게 해야겠습니다. 감사합니다~

VIP 가 내려갈 때의 테스트는 글 올린 후 동료 직원이 해주셨는데 추가했던 항목이 자동으로 사라졌다고 해서 오 그럼 다 해결이네라고 생각하고 있었네요

좋은 하루 되세요!

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.