리눅스 Netmask 관련

jungsuk0247의 이미지

안녕하세요.

리눅스 netmask에 대한 궁금한게 있어서 글을 적어 봅니다.

증상.)

/etc/sysconfig/network-scripts/ifcfg-eth0
ip:192.168.1.78
netmask:255.255.252.0
이하 생략
NIC 이렇게 등록이 되어 있습니다.

#route -n
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

라우팅 테이블은 Genmask 가 255.255.0.0 으로 나옵니다.
위같은 테이블로는 해당 같은 대역대 FTP 등 접속이 안되는 상태 입니다.
이 증상 임시 해결은

#route del -net 192.168.1.0 netmask 255.255.0.0 dev eth0
#route add -net 192.168.1.0 netmask 255.255.252.0 dev eth0

#route -n
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.252.0 U 0 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

Genmask 변경 하게 되면 해당 대역대 FTP 등 어플리케이션 접속이 가능합니다.

이렇게 사용하다가 시간이 지나면 다시 Genmask 255.255.0.0 으로 원복되는 상황이 발생 합니다.
조치1) network restart = phygical NIC 드라이브 재 시작 원복 되는 현상

혹시 여기에 대해서 해결 방법이나 이런 증상을 격어 보신분 계시면 조언 부탁드립니다.

읽어 주셔서 감사합니다.

academic의 이미지

192.168. IP는 netmask가 255.255.255.0 이어야 하는 것 아닌가요?

C 클래스를 쓰려면 192.168. B 클래스를 쓰려면 172.16.

전 그렇게 알고 있었는데요.

----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.

jungsuk0247의 이미지

네 맞아요 192.168.0.0 255.255.255.0 C클래스 맞는데 실제 내부망 아이피 10.111.0.0 B클레스 대역때 쓰구있거든요 아직 원인을 모르겠습니다.
똑같이 설치한 서버는 정상인데... 계속 수동으로 라우팅 테이블 수정하면서 하고있네요;;; 라우팅 테이블 255.255.252.0 이 되야 정상인데 자꾸 255.255.0.0 으로 대버리니 쩝.... 라우팅 테이블 Genmask 값이 자동으로 바뀌는 경우가 있나요? 255.255.252.0 에서 255.255.0.0 으로 바껴버림... 언제 바뀌는지는 정확한 시간 측정은 안해봤는데 서비스가 안될 때 가서 확인해보면 바껴있음....OTL

1

academic의 이미지

혹시 NetworkManager 데몬 같이 자동으로 네트웍 설정을 컨트롤하는 데몬이 띄워져 있지는 않은지요?

----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.

kohran의 이미지

192.168.1.78/255.255.252.0 은 192.168.1.76~79 가 같은 동네로 묶이는 것 아닌가요?(64개의 동네로 쪼개겠단 말이니..;;)
192.168.1.0~255 가 같은 동네로 사용되기 위해선 넷마스크가 255.255.255.0 가 되어야 할 것 같습니다.
네트워크는 저도 잘 몰라서 아는 한도에서 작성해봤어요

익명 사용자의 이미지

그냥 255.0 인줄 알고 봤더니 252 였군요 ㅎㅎ

먼저 클래스 관계없이 넷마스크는 마음대로 붙일 수 있습니다.(수퍼넷을 잘 못 설정할 경우 그 인터페이스 하위의 특정 주소범위 인터넷이 안된다는 것만 주의하면 - 이건 오류가 아니라 많은 예상치 못한 실수를 유발합니다.)
따라서 이 경우

ip:192.168.1.78
netmask:255.255.252.0

192.168.0.0 - 192.168.3.255 이므로
문제가 없는 값입니다.

제가 일단 리눅스를 안한지 십몇년 되었으니 요즘 뭐 어떤 설정 스크립트나 그런걸 모르는 관계로 추측컨데

1. 위 명령어가 문제의 소지가 있다.

#route add -net 192.168.1.0 netmask 255.255.252.0 dev eth0
이 문장은 192.168.1.0 와 255.255.252.0 가 연산이 일어나는데 연산은 현재 기억나지 않습니다만
원래
#route add -net 192.168.0.0 netmask 255.255.252.0 dev eth0
처럼 1.0 을 0.0 으로 바꾸면 아무 문제가 없는 것인데 명령어를 저렇게 주었으므로 설정 스크립트는 라우팅 테이블에 값을 강제로 쓰는 것이니 동작한다 치지만 어떤 라우팅 테이블 모니터 데몬같은게 있기라도 하다면 이를 다음처럼 볼 수도 있는 헷갈리는 문장입니다.

'마스크를 252.0 로 줬으면 첫 넷주소 시작블록이 0.0 이고 끝블록이 3.0 인데 그 안에 세부블록 1.0 을 주는건 뭐지...모르겠다 원래 C 클래스이니까 C 클래스 표준설정으로 복구하자...'

이렇게 맘먹을지도(?) 모른다는 생각을 합니다. ㅋㅋㅋ

2. 대표적으로 리눅스에서는 routed gated 라는 RIP OSPF 라우팅 데몬이 있습니다.

만약 이게 있다면 다른데서 긁어오고 죽이고 복구하고 지지고 볶고 합니다....

3. 위 경우도 수퍼넷인데
수퍼넷은 충분히 의도하여 잘 사용하여야 하고 나중에 알고보면 아주 어이없는 실수를 자주 남기는 겁니다.
어렵게 하는 것보다 쉽게 하는게 낫겠죠....
그리고 라우팅 테이블이 틀려도 아무 문제가 되지 않습니다.
커널 전역변수라면 전역변수랄 수 있는 단순 데이타가 틀린다고 뭐가 어케 되지는 않습니다.
모든 i/o 시 각 데이타그램의 경로를 결정하므로 드랍될건 드랍되고 계산해보고 값이 나오면 그 데이타그램은 넷트웍이 되는 것이지요. 위 경우도 문제없이 동작한다고 말씀하셨는데 수퍼넷이기 때문에 '문제가없어 보일 수' 있습니다.

익명 사용자의 이미지

'문제의 소지가 있다'
는 애매한 표현을 쓴 이유는 저도 우선 머리 혼란스럽습니다.

ip:192.168.1.78
netmask:255.255.252.0
설정에 의해
인터페이스는 C 클래스 4개를 묶은 수퍼넷 192.168.0.0 - 192.168.3.255 으로
설정파일과 설정 스크립트의 차이를 확신하진 못하겠습니다만...
여기선 eth0 만 보여주셨지만 만약 그것만 가정하면

  1. (아마도)자동으로 생성된 라우팅 테이블 Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
  2. 강제로 수정한 라우팅 테이블 Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 0.0.0.0 255.255.252.0 U 0 0 0 eth0 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
  3. 수퍼넷 이론에 맞는 합당한 테이블 Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 0.0.0.0 255.255.252.0 U 0 0 0 eth0 192.168.4.0 0.0.0.0 255.255.252.0 U 0 0 0 eth1 192.168.8.0 0.0.0.0 255.255.252.0 U 0 0 0 eth2 192.168.12.0 0.0.0.0 255.255.252.0 U 0 0 0 eth3 .................
다른건 무시하고 1,2만 보면 둘 다 1.0 보다 큰 수퍼넷이기 때문에 결국 192.168.1.0 ~ 1.255 까지의 목적지주소를 가진 패킷에 대해 eth0 로 라우팅하기는 매한가지입니다. 어떤 명령이나 설정을 통해 이런 라우팅 테이블이 생성되었다고 해도 동작은 같아야 한다는 말이지요. 그런데 하나는 되고 하나는 안되므로 결국 맨 마지막 디폴트테이블 윗줄에 귀하가 설명하지 않은 0.0 ~ 0.255 2.0 ~ 2.255 3.0 ~ 3.255 에 관한 추가의 라우팅 테이블이 있고 거기서 동작이 갈리는 것이라 짐작이 됩니다.

하다보니 겁나 헷갈리네요

#route add -net 192.168.1.0 netmask 255.255.252.0 dev eth0
이 문장을 말로 하면
'1.0 ~ 1.255 까지를 목적지로 한 데이타그램은 252.0 넷마스크 연산을 하여 넷주소를 구하여 eth0 로 가는 테이블을 추가한다...'
정도가 되는데 뭔가 이상하죠.
목적지 주소에 해당되는 각각의 패킷마다 넷마스크 연산해서
0.0 ~ 3.255 사이 목적지주소만 eth0 로 간다
라는 뜻이 되어 구로전화국으로 가는 모든 패킷을 넷마스크연산해서 서울로 가는 것이면 eth0 로 가라...는 것과 같은 당연하여 쓸데없는 문장이 됩니다.
이 쓸데없는 문장을 테이블 모니터링(관리?) 데몬이 본다면 어떻게 처리할 것인가...아리송하죠.

아래와 비교해보면

#route add -net 192.168.0.0 netmask 255.255.252.0 dev eth0
'0.0 ~ 255.255 까지를 목적지로 한 데이타그램은 252.0 넷마스크 연산을 하여 넷주소를 구하여 eth0 로 가는 테이블을 추가한다...'
가 되어
목적지 주소에 해당되는 각각의 패킷마다 넷마스크 연산해서
0.0 ~ 3.255 사이 목적지주소만 eth0 로 간다
라는 뜻이 됩니다.
여기에 속하지 않은 목적지 주소는 다음 라우팅 테이블로 건너뛰거나 디폴트로 갑니다. 이게 합당하죠.

가끔 할래면 골아프네;;;

익명 사용자의 이미지

리스트에서는 엔터가 안먹는군요
은 먹나....

1.(아마도)자동으로 생성된 라우팅 테이블
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

2.강제로 수정한 라우팅 테이블
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.252.0 U 0 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

3.수퍼넷 이론에 맞는 합당한 테이블
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.252.0 U 0 0 0 eth0
192.168.4.0 0.0.0.0 255.255.252.0 U 0 0 0 eth1
192.168.8.0 0.0.0.0 255.255.252.0 U 0 0 0 eth2
192.168.12.0 0.0.0.0 255.255.252.0 U 0 0 0 eth3 .................

죄송합니다.html 도 오래되어서

댓글 달기

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