route 질문....

skydeux의 이미지

안녕하세요.
다름아니라 자꾸 ssh 접속이 안되는 증상이 나타나서 질문 드립니다.
centos 7.6 버전이고, 물리서버 입니다.

ifcfg-eth1
IPADDR=192.168.100.100
PREFIX=24
GATEWAY=192.168.100.1

ifcfg-eth2
IPADDR=100.100.100.50
PREFIX=24

두개의 네트워크 어댑터가 있는 상황입니다만..
ifcfg-eth2 의 경우, 다른서버와 중간 장비없이 다이렉트로 서버-서버 로 연결되어 있습니다.
내부 솔루션의 필요로 의해 양 서버간 health check 용도 입니다.

그런데 문제는 가끔씩 타 IP 대역에서 ssh로 192.168.100.100 접속시 접속이 되질 않습니다.
동시에 같은 IP 대역에서는 SSH로 접속이 잘 됩니다. 타 ip 대역에서만 안됩니다.
그리고 문제의 서버에서 GATEWAY로 PING은 잘 갑니다..
네트워크 담당자가 확인해보니, tcpdump -i eth1 명령을 실행 한 상태에서,
타 ip대역에서 해당서버로 telnet 을 시도하면
syn 은 잘 나오는데, 서버에서 ask 를 못한다고 합니다...
현재 서버에는 firewalld , selinux 는 내려가있고, 특별히 보안적인 솔루션도 없는 상태입니다..

아래는 route -rn 정보 입니다.
타 ip 대역은 따로 route 추가하지 않아도, 다른서버들은 문제가 없습니다.

destination gateway genmask flags Iface
0.0.0.0 255.255.255.0 0.0.0.0 UG eth2
0.0.0.0 192.168.100.1 0.0.0.0 UG eth1
192.168.100.0 0.0.0.0 255.255.255.0 U eth1
100.100.100.50 0.0.0.0 255.255.255.255 UH eth2
192.168.122.0 0.0.0.0 255.255.255.0 U virbr0
255.255.255.0 0.0.0.0 255.255.255.255 UH eth2

혹시 route 쪽에 문제 될 부분이 있는지 궁금합니다.
eth2 가 왜 gateway를 255.255.255.0 으로 잡는지 의심스럽긴한데 ..
아직 초보자라, 매번 질문만 하고, 도움을 드리지 못해 죄송스럽네요 ^^:
감사합니다.

chanik의 이미지

저도 CentOS7을 개발용으로 설치해 쓰고 있고 복수개의 NIC 가운데 하나는 타 서버와 직결상태인데, route table이 글쓴님과 비슷하지만 다른 점들이 좀 있네요.

우선 첫번째와 마지막 항목이 좀 이상합니다. 억지로 저런 식으로 테이블을 구성할 수는 있지만 그 목적이 뭔지 가늠이 안 되고, 기본게이트웨이를 거쳐야 하는 통신을 교란시킬 수 있을 것 같습니다. 아래의 명령 정도면 두 개의 항목을 제거할 수 있을 것입니다.

$ sudo route del default gw 255.255.255.0 dev eth2
$ sudo route del -net 255.255.255.0 netmask 255.255.255.255 dev eth2

그리고 덤으로, 문제의 원인은 아닌 것 같지만 네번째 항목도 좀 이상한데, 테이블 구성에 따로 신경쓰지 않아도 아래와 같이 자동으로 만들어지는게 자연스럽고,

100.100.100.0 0.0.0.0 255.255.255.0 U eth2

굳이 구성하자면 자기 주소인 100.100.100.50이 아니라, 아래와 같이 직결된 상대방의 주소(100.100.100.51 이라고 가정)를 특정하여 만들어야 자연스럽지 않은가 싶네요.

100.100.100.51 0.0.0.0 255.255.255.255 UH eth2

지금의 테이블 구성에 제가 헤아리지 못하는 뭔가가 있을지는 모르겠지만 제 시스템과 비교하여 차이나는 부분을 적어봤습니다.

skydeux의 이미지

route del 하여 정상으로 작동은 되는것 같습니다만
조금 지켜봐야 할것같네요.
그런데 문제는 아마도 재기동하면 다시 올라오지 않을까 싶습니다...각 nic포트별로 route 설정을 해줘야 하는건지...
답변 감사드립니다ㅎ

chanik의 이미지

제 시스템에서는 추가 라우트 항목이 재부팅시에도 반영되게 하려고 아래와 같은 파일에 설정을 넣습니다. NIC 이름에 따라 파일이름도 달라지는데, 이 파일은 꼭 존재해야 하는 것은 아니며, 기본항목들 외의 라우트 엔트리를 추가해야 할 때 작성하면 됩니다.

/etc/sysconfig/network-scripts/route-eth2

지금의 운영상황에서는 추가엔트리가 필요해보이지 않으니 이 파일을 삭제하시거나 내용물을 모두 #으로 주석처리하셔도 될 겁니다.

꼭 이 파일이 아니더라도, 망 관리자가 재부팅시 라우팅 설정유지를 위해 어딘가 관리하는 방식이 있을테니 그 방식에 맞게 수정하시면 되겠죠.

김정균의 이미지

/etc/sysconfig/network-scripts/route-eth2 파일은 CentOS/RHEL 에서 적용 가능한 설정이고, 질문 하신분의 OS 는 CentOS 가 아닌 듯 싶습니다. (route 명령에 -r 옵션이 있는 것으로 보아서는..)

아마 rc.local 이 있을테니, rc.local 에 적용 하셔도 무방하기는 할 것 같습니다.

chanik의 이미지

글쓴이는 centos 7.6 버전이라고 쓰셨으나, 저도 제 CentOS 시스템에서 route 명령 따라해보면서 -r 옵션이 안먹는걸보고 좀 의아해하며 대충 넘겼는데, 김정균님 글을 보니 CentOS/RHEL이 아니어서 그랬던 모양이네요.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.