레이블이 linux인 게시물을 표시합니다. 모든 게시물 표시
레이블이 linux인 게시물을 표시합니다. 모든 게시물 표시

09. 6. 26.

Linux GDM problem(about unable authenticate messages)

어플리케이션 테스트를 위해 리눅스 시스템을 활용할 일이 많은 환경에서 가끔 새롭게 시스템을 설치하고 업데이트 한 이후 아래와 같은 문제가 발생할 수 있다.
(이 상황은 Fedora Core 10 버젼 설치 후 발생한 문제 임)

root 사용자로 GUI 화면에서 로그인을 시도하면 "Unable Authenticate users"라는 메세지가 뜨면서 로그인이 되지 않는 문제가 발생한다. 이는 보안상의 이유로 root 사용자의 로그인을 차단한 정책 때문이며, 아래와 같은 방법으로 문제를 해결할 수 있다.

  1. GUI에서 CLI 환경으로 변경한 후 root 사용자로 로그인
    일반적으로 "Ctrl+Shift+F2" 키를 누르면 GUI기반에서 CLI 기반으로 변경되며, root 사용자로 로그인할 수 있다.
  2. 로그인 후 아래의 경로의 파일을 수정
    /etc/pam.d/gdm
    (만약을 위해 gdm 파일을 백업한 후 수정 하는 것이 안정적인 방법이다.)
    cp -aR /etc/pam.d/gdm /etc/pam.d/gdm.old
    그리고 gdm 파일을 vi 편집기로 열어서 아래의 라인을 주석처리 한다.
    # auth required pam_succeed_if.so user != root quiet
  3. 수정을 다 하였으면 다시 GUI 모드로 변경 후 root로 로그인할 수 있다.
    일반적으로 "Ctrl+Shitf+F7" 키를 누르면 CLI에서 GUI 모드로 변경할 수 있다.

이 방법은 root 사용자 로그인 문제 뿐만 아니라 다른 사용자의 문제점을 해결하는 방법으로도 유용하게 사용할 수 있는 방법이니 꼭! 숙지하고 있으면 좋은 것 같다.

09. 6. 15.

L4 DSR 구성 시 ARP Issue에 대해서

일반적으로 L4 장비를 통해 내부 서버팜의 서버에 대해 균등하게 로드를 분배시키는데, 이전 게시한 게시물(DSR 구성)으로 구성하는 경우는 응답 트래픽이 L4 장비가 감당하기 어려울 경우 응답 트래픽이 L4를 경유하지 않도록 구성할 수 있다.

이렇게 동영상 또는 멀티미디어 데이터에 대한 DSR 구성 시 아래와 같은 이슈가 발생할 수 있다.

L2 Switch에서 L4 장비에 설정된 VIP의 MAC이 Announce되는게 아니라 Real Server의 Loopback에 설정된 VIP가 Announce되어 사용자의 요청 트래픽이 L4 장비의 VIP를 경유하지 않고 다이렉트로 Real Server로 전달되는 현상이 발생할 수 있다.(L2 Switch는 L2레벨 Switch)

이럴 경우 Real Server의 네트워크 설정을 약간 변경해야 하는데 아래와 같이 설정을 할 수 있다.(리눅스의 경우)

echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce

또는

만약 리눅스 시스템에 /etc/sysctl.conf 파일이 있다면 해당 파일을 열어서 아래와 같이 정보를 추가하거나 수정한다.

net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.eth0.arp_announce = 2


해당 설정 후 시스템을 재시작하면 eth0 인터페이스(현재 L2 스위치에 연결된)를 통해 Loopback VIP 정보가 Announce되거나 ARP 요청에 따른 Reply를 처리하지 않기 때문에 MAC이 중복되어 발생되는 ARP Issue를 해결할 수 있다.

참고 :
http://kb.linuxvirtualserver.org/wiki/Using_arp_announce/arp_ignore_to_disable_ARP

09. 6. 2.

linux에서의 interface bonding 설정 방법

서비스를 위한 웹서버의 구성 시 서비스의 안정성 및 지속적인 서비스의 유지 목적으로 웹서버의 인터페이스에 대해서 네트워크 이중화 구성을 한다.

이렇게 네트워크 이중화 구성 시 서버의 인터페이스는 2개 이상(최소 2개)이 필요하며, 유닉스 기반의 시스템에서는 bonding이라는 명칭을 사용하고, 윈도우 기반의 시스템에서는 teamming이라 명칭으로 사용하고 있다.

여기에서는 많이 사용하는 리눅스 기반의 시스템에서 bonding 설정을 하는 방법을 정리하고자 한다.

  1. 우선 /etc/sysconfig/network-scripts/ifcfg-eth0(기본 인터페이스를 사용)를 사용하여 동일한 위치에 ifcfg-bond0를 생성
    #cd/etc/sysconfig/network-scripts/
    #cp ifcfg-eth0 ifcfg-bond0
  2. VI편집기 등을 이용하여 ifcfg-bond0의 설정 값을 아래와 같이 변경한다.
    DEVICE=bond0
    BOOTPROTO=static
    IPADDR=111.111.111.111 (사용할 대표 IP 주소)
    NETMASK=255.255.255.0
    ONBOOT=yes
  3. 다음 bond0에 연결할 인터페이스를 아래와 같이 수정한다.(만약 eth0 및 eth1일 경우 eth0를 master로 eth1을 slave로 설정한다고 할 경우)
    ifcfg-eth0 내용 :
    DEVICE=eth0
    MASTER=bond0
    SLAVE=yes
    BOOTPROTO=no
    ONBOOT=yes
    TYPE=Ethernet


    ifcfg-eth1 내용 :
    DEVICE=eth1
    MASTER=bond0
    SLAVE=yes
    BOOTPROTO=no
    ONBOOT=yes
    TYPE=Ethernet
  4. 마지막 단계로 모듈(modprobe.conf)의 설정을 수정한다.
    alias bond0 bonding
    options bond0 mode=1 miimon=100 primary=eth0


    여기서 주의할 내용은 만약 Linux Kernel 버젼이 2.4 이하 일 경우는 /etc/modules.conf 파일에 해당 내용을 수정해야 하며, Kernel 버젼이 2.6이상일 경우 /etc/modprobe.conf 파일을 수정해야 한다.

여기에서는 단순히 리눅스 기반의 시스템에서 간단하게 구성하는 방법을 정리하기 위함이며, 보다 자세한 bonding 설정은 리눅스 메뉴얼을 참고하시기 바람!!

09. 6. 1.

웹서버의 DSR(Direct Server Return)을 위한 Interface 설정


하드웨어 또는 소프트웨어(LVS)기반의 L4 장비를 통해 내부 웹서버의 DSR(Direct Server Return)을 구성하는 경우가 현업에서 종종 볼 수 있다.

이렇게 DSR로 웹서비스를 구성하는 이유는 다양하지만 크게는 L4 장비의 Transaction 부하 감소이거나 Inbound Traffice에 비해 Outbound Traffic의 양이 현저하게 많을 경우 Outbound Traffic이 L4 장비를 경유하지 않고 직접 사용자에게 전송할 때 사용한다.

기본적인 L4 스위치 장비에서는 DSR을 아래와 같이 구성을 한다.

이렇게 구성할 때 주의할 점은 L4 장비와 실제 웹서버는 L2 통신이 가능한 네트워크 환경이어야 한다. 그래서 L2 스위치를 사용하여 구성하는게 일반적이다.(요청한 IP가 변경되지 않도록 함이 목적)


그리고 윈도우 또는 유닉스 기반의 웹서버를 많이 사용하기 때문에 해당 서버에 VIP와 동일한 IP로 Loopback Interface를 설정해야 정상적인 통신이 가능하다. 아래는 리눅스 시스템에서 Loopback Interface를 설정하는 한 예이다.(윈도우 기반은 제어판에서 Loopback 인터페이스를 추가 생성하면 구성이 가능 함)


Loopback Interface 설정(Fedora Core 기반의 리눅스)

원래 구성된 Lo 인터페이스에 새로운 Alias를 할당하여 간단하게 구성할 수 있다.

# ifconfig Lo:0 192.168.100.1 netmask 255.255.255.255 up

(관련 설정은 리눅스 man페이지나 해당 메뉴얼을 참고하시기 바람)