잠시만 기다려 주세요

     '입만 나불거리고 행동하지 않는 야당을 규탄한다.'
전체검색 :  
이번주 로또 및 연금번호 발생!!   |  HOME   |  여기는?   |  바다물때표   |  알림 (16)  |  여러가지 팁 (1059)  |  추천 및 재미 (156)  |  자료실 (22)  |  
시사, 이슈, 칼럼, 평론, 비평 (613)  |  끄적거림 (136)  |  문예 창작 (716)  |  바람 따라 (75)  |  시나리오 (760)  |  드라마 대본 (248)  |  
살인!


    리눅스 서버

리눅스 서버 - Linux 리눅스로 Router 공유기 만들기
이 름 : 바다아이   |   조회수 : 9746         짧은 주소 : https://www.bada-ie.com/su/?561591816124
인터넷 공유기가 흔하지 않은 시절엔 리눅스로 라우터를 구성한 후 여러대의 PC를 리눅스 머신에 연결하여 사용했었다. 공유기가 흔해빠진 시대에 일반인이 리눅스로 라우터를 만들어 사용하는 것은 불필요한 시간 낭비일 것이다. 근래 클라우드에 여러개의 가상 네트워크를 생성하여 가상 머신들을 연결하는 작업을 하다보니 서로 다른 가상네트워크를 연결하기 위해서 L3 라우팅이 필요해 관련된 내용들 정리차 적어본다.

먼저 리눅스 PC는 2개 이상의 인터페이스를 가지고 있어야 한다. 인터페이스의 주소를 각각 10.0.0.1, 10.0.1.1이라고 하자. 편의상 10.0.0.1와 10.0.1.1의 인터페이스 이름을 각각 eth0, eth1로 하자. 인터페이스에 대한 주소 지정은 ifconfig 명령을 통해서나 /etc/network/interfaces(Ubuntu 경우만 해당) 파일의 수정을 통해서 가능하다.
ifconfig를 통해 IP를 지정하는 방법은 다음과 같다.

    ifconfig eth0 10.0.0.1 netmask 255.255.255.0
    ifconfig eth1 10.0.1.1 netmask 255.255.255.0


또는 /etc/network/interfaces를 다음과 같이 편집한다.

    auto eth0
    iface eth0 inet static
    address 10.0.0.1
    netmask 255.255.255.0
    auto eth1
    iface eth1 inet static
    address 10.0.1.1
    netmask 255.255.255.0


interfaces의 내용을 위와같이 편집한 후 /etc/init.d/networking restart를 실행한다.
networking 서비스를 재 실행한 후 ifconfig eth0 또는 ifconfig eth1을 통해 해당 인터페이스에 IP 주소가 정상적으로 설정되었는지 확인한다.

기본적인 연결을 위한 네트워크 설정을 완료했으며 이제는 라우터로 동작하기 위한 설정들을 해주어야 한다. 라우터를 간단히 설명하면 특정 인터페이스로 들어온 패킷에 대해서 목적지 주소에 따라 출력 인터페이스를 결정하여 패킷을 출력하는 시스템이라고 할 수 있다. 즉 eth0로 들어온 패킷에 대해 목적지 주소가 10.0.1.x인 경우 eth1으로 패킷을 출력하도록 한다. 목적지 주소별로 인터페이스를 미리 정해놓은 것을 라이팅 테이블이라고 하며 리눅스 상에서 라우팅 테이블 확인은 route 명령을 통해서 할 수 있다. route 명령을 통해 라우팅 테이블을 작성하기 전 먼저 해야될 작업은 라우터로 동작하기 위해 특정 인터페이스로 수신한 패킷을 다른 인터페이스로 전달할 수 있도록 해야한다. 패킷을 전달할 수 있도록 하기 위해서는 ip_forward를 활성화 해야 하면 방법은 다음과 같다.

    sysctl -w net.ipv4.ip_forward=1

또는

    echo 1 > /proc/sys/net/ipv4/ip_forward

/etc/sysctl.conf 파일에서
#net.ipv4.ip_forward=1
을 찾아 앞의 주석(#)을 삭제해주면 된다.

이제 인터페이스로부터 수신된 패킷을 다른 인터페이스로 전달할 수 있게 되었지만 어떤 인터페이스로 전달하여야 하는가에 대해서는 시스템은 전혀 모르는 상태로 앞서 언급한 라우팅 테이블을 지정해 주어야한다. 라우팅 테이블 지정은 route add <-net 또는 -host> <IP 주소 대역 또는 주소> gateway < gateway IP 주소> dev 인터페이스 이름순으로 지정한다.

    route add -net 10.0.0.0/24 gateway 10.0.1.254 dev eth0
    route add -net 10.0.1.0/24 gateway 10.0.1.254 dev eth1


위의 명령을 풀어쓰면 10.0.0.1~255의 IP 주소에 대해서는 인터페이스 eth0로 내보내며 게이트 웨이 주소는 10.0.0.254이다. 만약 게이트웨이가 없다면 게이트 웨이 주소를 생략해도 무방하다. 마찬가지로 10.0.1.1~255의 IP 주소에 대해서는 인터페이스 eth1로 지정하였다.

마지막으로 한가지 작업을 더 해주어야 하는데 그것은 iptables를 통해 리눅스에서 방화벽 규칙을 만들어 주어야한다.

    iptables -A FORWARD -i eth0 -o eth1 -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -i eth1 -o eth0 -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT


위의 규칙은 인터페이스간 데이터를 전달하는 것으로 만약 여러분들이 집에서 인터넷과 내부 네트워크로 분리하여 내부 네트워크는 사설 IP 대역을 사용한다면 masqurade를 해주어야 하며 이는 사설 IP 주소를 공인 IP 주소로 변환해주는 역할을 한다.

    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


출처: http://netstroy.blogspot.kr/2014/07/linux-router.html
| |





      1 page / 5 page
번 호 카테고리 제 목 이름 조회수
148 리눅스 서버 samba ... , ... 바다아이 509
147 리눅스 서버 postfix main.cf ... 바다아이 3573
146 리눅스 서버 /etc/crontab ... 바다아이 2287
145 리눅스 서버 - MEMTEST, , 바다아이 3450
144 리눅스 서버 top , top 바다아이 4281
143 리눅스 서버 , systemd-networkd, archlinux network setting 바다아이 5389
142 리눅스 서버 mirror .. ... 바다아이 5866
141 리눅스 서버 [Ubuntu] (swapfile) , ... 바다아이 5691
140 리눅스 서버 ufw , iptables 바다아이 6990
139 리눅스 서버 ... grub . submenu, grub-mkconfig 바다아이 5778
138 리눅스 서버 CentOS 7 Upgrade Kernel, centos 바다아이 7637
137 리눅스 서버 , dd , 바다아이 5702
136 리눅스 서버 ... ntp .. ... 바다아이 6742
135 리눅스 서버 archlinux netstat , netstat ... 바다아이 6476
134 리눅스 서버 ps , ps option 바다아이 6232
133 리눅스 서버 , swap , ... swap . 바다아이 6448
132 리눅스 서버 crontab , .... 바다아이 6405
131 리눅스 서버 ssh , ssh 바다아이 7480
130 리눅스 서버 SSH SSH , ssh-keygen rsa 바다아이 7059
129 리눅스 서버 , date : () , () , 바다아이 7241
128 리눅스 서버 aws lightsail, ssh .. .pem 바다아이 12271
127 리눅스 서버 , ubuntu generic kernel 바다아이 7627
126 리눅스 서버 .. apt ... 바다아이 7515
125 리눅스 서버 ... ubuntu kernel compile 바다아이 10159
124 리눅스 서버 nginx http2 , . 바다아이 8975
123 리눅스 서버 psql libreadline.so.7: cannot open shared object file: No such file or directory 바다아이 9337
122 리눅스 서버 ssh .bashrc , bash .. .bash_profile 바다아이 8664
121 리눅스 서버 , , 바다아이 7876
120 리눅스 서버 rc.local ... , 바다아이 8623
119 리눅스 서버 ? - IPv4 Subnetting, (Subnet Mask) 바다아이 8340
| |









Copyright ⓒ 2001.12. bada-ie.com. All rights reserved.
이 사이트는 리눅스에서 firefox 기준으로 작성되었습니다. 기타 브라우저에서는 다르게 보일 수 있습니다.
[ Ubuntu + GoLang + PostgreSQL + Mariadb ]
서버위치 : 오라클 클라우드 춘천  실행시간 : 0.0935
to webmaster... gogo sea. gogo sea.